AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

Terraform

ClientException: Too many concurrent attempts to create a new revision of the specified family. が出たら、再実行すればいい

タイトルがすべてシリーズ rails db:create を実行するためだけに null_resource (aws_ecs_task_definition.initialize_db という target) を採用しているんだけど、偶然こんなエラーに遭遇した。 ╷ │ Error: failed creating ECS Task Definition (example-…

managed_policy_arns と aws_iam_role_policy_attachment を利用すると apply 毎にアタッチとデタッチを繰り返す

タイトルがすべてシリーズ。 とりあえず 僕の用途では、aws_iam_role_policy_attachment に全部そろえよう、となった。

ECS (fargate) からパブリック IP を剥奪したら SSM とか ECR に接続できずに起動しなくなった

タイトルがすべてシリーズ。 Terraform で管理している ECS (fargate) の 1.4.0 で特定の RAILS_ENV だけ問題が起きる、という現象の調査をしていて、それはほぼ解決したんだけど、なぜか ECS Cluster をデプロイしなおしたら以下のエラーが出るようになった…

Error: adding LB Listener Certificate: UnsupportedCertificate

Terraform を複数環境に対応させる作業をしていたタイミングで、apply 時に「ALB に証明書を追加する動作」が失敗するようになった。 エラーは以下。 Error: adding LB Listener Certificate: UnsupportedCertificate: The certificate 'arn:aws:acm:ap-nort…

Terraform で import した resource を tfstate から削除する

terraform state rm ${リソース名} で消せる。

terraform import 実行時に変数読み込みファイル (var-file) を指定する

追記: これルートドメインを管理しようとしているけど、ルートドメインのホストゾーンは Terraform で管理しないほうが良いらしい (結果として管理やめたので救われた感 -var-file を指定してから terraform の各種第 2 引数にあたるコマンドを書くのだと思…

Terraform を書く時に気をつけること

忘れがちなので、気付いたタイミングで書いておく。 backend に変数 (Variables) は利用できない こんな感じで怒られる。 起動時に引数に渡すか、backend 用に別ファイルを作れとのこと。 │ Error: Variables not allowed │ │ on main.tf line 11, in terraf…

Terraform の backend を S3 にする

ロケ地 Terraform 1.3.6 hashicorp/aws 4.45.0 Error loading state state がローカルやんけ! と気づいて、 backend "s3" を書いて、リモートに手動でバケットを作成 (設定は名前以外、全部変更なしのアクセスきつきつでオッケー)。 後に terraform init -m…

terraform の provider バージョンの確認

一旦 terraform init してあれば terraform providers -version で確認できる。 terraform providers -version Terraform v1.3.6 on darwin_arm64 + provider registry.terraform.io/hashicorp/aws v4.45.0 事前に探したい場合は以下あたりから。 registry.t…

Terraform リソース作成時にデフォルトで付与するタグを管理する

作成したリソースが Terraform 由来であること 複数の企業が単一アカウント ID に AdministratorAccess 持っている という状態のインフラを管理しているので、それぞれ AWS のリソース作成時のタグに Build: Terrafrom Company: 会社名 を付与する運用にして…

terraform plan を保存する

通常 terraform を利用する際は、以下三段構えだと思われる。 terraform init terraform plan terraform apply (-auto-approve) AWS とか Azure、 GCP などのパブリッククラウドであれば「tfstate の管理はリモートでやれ」というのがベストプラクティスなの…