terraform
この間ようやくDevOps環境構築キットEponaというものをOSSとしてリリースしました。 DevOps DevOpsという言葉は様々な場所で聞きますが、理解するのがとても難しいです。 ずっと頑張って学んでいますが、まだまだ奥深く、いくらでも掘り下げるところがありま…
Terraform 0.12 系から重い腰をあげて 0.13 系にあげる作業を進めていましたが、いくつかエラーが発生したので、その対応の顛末について。 terraform の version constraint でエラーになる terraform init で Failed to decode current backend config エラ…
Terraform で State を分割すると、たくさんの root module ができます。 ある root module が別 module の remote state 参照を持つとき、module 間に依存関係が生じます。 僕たちはこの依存順に terraform を apply しなければなりませんし、その逆順に de…
Cointaner Image の CD 用に ECR へ PUSH するための最低限の IAM Policy がどうなるのかを検証してまいりました。おそらくは以下が最低限の IAM Policy になりそうです。 このうちのどの action を許可しない場合であっても、イメージの PUSH はエラーにな…
CodePipeline + CodeDeploy で ECS へのデプロイメントパイプラインを組んでいたんですが、このパイプラインが様々な理由で失敗します。 マネジメントコンソールで確認しても、Internal error 的な文言しか表示されず、とにかくデバッグがしんどいです。 つ…
CodePipeline から別アカウント上の ECR を Source Action から指定したい。 これはそれなりに存在するユースケースではないでしょうか。 この実現にマジで苦しんだので、葛藤の記録を残しておきます。 概観 バケットポリシー CodePipelie からクロスアカウ…
以下のエントリで記載したように、AWS 上においてはマルチアカウントで環境を構成することがベストプラクティスとされています。 このエントリでは、Custodian アカウントという概念が登場しました。これは結局 IAM ユーザやグループを 1 つのアカウントにの…
GitLab CI/CD を使い、自作の AWS 用 terraform モジュールに対して terraform validate をかけようとすると、以下のエラーメッセージが出て失敗しました。 Error: Missing required argument The argument "region" is required, but was not set. 原因 対…
Terraform のスクリプトにも lint を自動で実行できるようにします。 lint ツール TFlint 設定の渡し方 GitLab CI/CD への組み込み 今後 lint ツール Terraform には terraform validate コマンドがあり、設定上のかなりの問題を検知してくれます。 一方で t…
AWS においてはマルチアカウント戦略が重要とされています。 たとえば、開発環境/ステージング環境/本番環境といった各環境は、セキュリティ、ガバナンス面で分離すべきです。 メンバーの権限管理がすっきりする 特定の環境の作業が他環境に影響しない この…
前提 その前に state とは何か state の S3 管理 backend となる S3 を Terraform 管理のインフラと一緒に管理して良いのか backend の構築 backend の適用 (locking なし) backend の適用 (locking あり) 前提 Terraform によってインフラをチームで管理し…
Terraform の型 Primitive Types Complex Types Collection Types Structural Types null 興味深い機能 map の key に参照が使える パスの参照 Python の内包表記的な for splat expression String Template: if 文/for 文 Terraform の型 全部で 7 種類あり…
ぼくは新しい技術を学ぶときは、たいてい以下の戦略を取ります。 公式ドキュメントを読む 当該技術に対する書籍を読む 仕様があれば、その仕様 (RFC 等)に目を通す。ただし心が折れない程度に。 目的は以下 2 つの要素の獲得です。 体系だった技術知識の獲得…
Terraform については 2 年前に触ってから完全に放置してしまいました。 いろいろあって、まずは AWS 上で色々構築していくことになるので、今日から頑張っていきたいです…。 aws-cli terraform とにかくローカル PC に aws-cli、terraform を入れたくない。…