Terraform
Terraform で EC2 を作成する ときには、 AMI 参照をパラメータストア経由で行うと良い。 このように。 aws_instance resource "aws_instance" "ec2"{ ami = data.aws_ssm_parameter.amazonlinux2.value ... } aws_ssm_parameter # Parameter Store のパブリ…
以下のようなコードの状態で terraform plan terraform destroy など、 state を参照する動作をするとエラーが出ていた。 resource "aws_lb_listener" "alb_https" { ... certificate_arn = module.certificates.certificate_arns[var.lb_certificates["alb"…
terraform init 時に掲題のエラーが出て困っていた。 どうやら AppleSillicon 系列に由来するエラーらしい (対象のモジュールが AppleSillicon 対応されずにアーカイブされた?)。 どうする 以下の書き込みの通り tfenv でのインストール時に TFENV_ARCH=amd…
タイトルがすべてのシリーズ。 performance_insights_ 系の記述がエラーになる db.m5.large から db.t4g.medium などにインスタンスサイズをスケールダウンした際に、 Terraform から「パフォーマンスインサイトは使えないよ!」と怒られるなどした。 エラー…
www.ritolab.com dev.classmethod.jp このあたりを参考にしてシュッと導入した。 感謝感謝。 しかしこれめんどくさいなー、という印象。 コンテナ化するなら cron も外出しするし ecs 系リソースかと思ったら CloudWatch Events だしでもう何がなんだか。 と…
いっつも忘れるんだよな、これもうちょっと楽にならんかな。 docs.aws.amazon.com
タイトルがすべてシリーズ。 missing required field シークレットマネージャから読み出す環境変数を追加したので、ECS のタスク定義を更新したらエラーになった。 │ Error: failed creating ECS Task Definition (stg-example-ecs-task-definition-backend)…
タイトルがすべてシリーズ rails db:create を実行するためだけに null_resource (aws_ecs_task_definition.initialize_db という target) を採用しているんだけど、偶然こんなエラーに遭遇した。 ╷ │ Error: failed creating ECS Task Definition (example-…
タイトルがすべてシリーズ。 とりあえず 僕の用途では、aws_iam_role_policy_attachment に全部そろえよう、となった。
タイトルがすべてシリーズ。 Terraform で管理している ECS (fargate) の 1.4.0 で特定の RAILS_ENV だけ問題が起きる、という現象の調査をしていて、それはほぼ解決したんだけど、なぜか ECS Cluster をデプロイしなおしたら以下のエラーが出るようになった…
Terraform を複数環境に対応させる作業をしていたタイミングで、apply 時に「ALB に証明書を追加する動作」が失敗するようになった。 エラーは以下。 Error: adding LB Listener Certificate: UnsupportedCertificate: The certificate 'arn:aws:acm:ap-nort…
terraform state rm ${リソース名} で消せる。
追記: これルートドメインを管理しようとしているけど、ルートドメインのホストゾーンは Terraform で管理しないほうが良いらしい (結果として管理やめたので救われた感 -var-file を指定してから terraform の各種第 2 引数にあたるコマンドを書くのだと思…
忘れがちなので、気付いたタイミングで書いておく。 backend に変数 (Variables) は利用できない こんな感じで怒られる。 起動時に引数に渡すか、backend 用に別ファイルを作れとのこと。 │ Error: Variables not allowed │ │ on main.tf line 11, in terraf…
ロケ地 Terraform 1.3.6 hashicorp/aws 4.45.0 Error loading state state がローカルやんけ! と気づいて、 backend "s3" を書いて、リモートに手動でバケットを作成 (設定は名前以外、全部変更なしのアクセスきつきつでオッケー)。 後に terraform init -m…
一旦 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 由来であること 複数の企業が単一アカウント ID に AdministratorAccess 持っている という状態のインフラを管理しているので、それぞれ AWS のリソース作成時のタグに Build: Terrafrom Company: 会社名 を付与する運用にして…
通常 terraform を利用する際は、以下三段構えだと思われる。 terraform init terraform plan terraform apply (-auto-approve) AWS とか Azure、 GCP などのパブリッククラウドであれば「tfstate の管理はリモートでやれ」というのがベストプラクティスなの…