Terraform
2023年11月から VPC IP Address Manager (IPAM) に「無料枠利用枠」が追加されて Public IP Insights などの機能が無料で使えるようになったそして,2024年2月から課金対象になった IPv4 の最適化のために Public IP Insights を使いたいという場面もあると…
Dependabot version updates を使うと Terraform Provider のアップデートを自動化できる❗️設定は比較的簡単で package-ecosystem に terraform を設定して,あとは必須の directory と schedule.interval でアップデートの対象ディレクトリとスケジュールを…
Terraform で Amazon ECS タスク定義を作りつつ,アプリケーションのライフサイクルとして GitHub Actions などの「Terraform 以外で」イメージタグを差し替えて Amazon ECS タスク定義を更新(正確には更新ではなくリビジョン追加)する運用を選択すること…
Terraform で count Meta-Argument を if のように使ってリソースを作るかどうかを制御できるという Tips がある.リソース間で参照するときは,同じく count で制御しつつ,例えば aws_iam_user.kakakakakku[0].name のようにインデックスを指定できるけど…
AWS Security Hub を導入して AWS Foundational Security Best Practices (FSBP) などを有効化すると VPC default security groups should not allow inbound or outbound traffic という警告が検出されることがある [EC2.2] VPC default security groups sh…
Terraform Cloud の「Run Tasks 機能」を使うと Terraform Cloud のワークフローと外部サービスと統合できて,プラン取得前・プラン取得後などのタイミングにセキュリティスキャンなど「任意の処理」を実行できる 例えば取得したプラン結果を外部サービスに…
2023年11月21日(明日)に出版される新著「詳解 Terraform 第3版」を読んだ 本書では Terraform の基本的な仕組みを学べるだけではなく,Terraform を実践的に使うときに必要になるステート管理・モジュール・シークレット管理・テストなど幅広いトピックま…
Terraform で AWS IAM ポリシーや Amazon S3 バケットポリシーを実装するときに terraform plan は通るのに terraform apply で失敗したり,terraform apply は通るのにポリシー自体に誤りがあって期待通りに動かなかったり,無駄にハマってしまった経験って…
Terraform チュートリアル「Custom Framework Providers」を試した❗️ Terraform から RESTful API を操作するカスタムプロバイダを実装しながら Terraform Plugin Framework の仕組みを学べて非常に良かったチュートリアルは計11種類から構成されていて一歩…
Application Load Balancer (ALB) のリスナー設定で「固定レスポンス」を使うと ALB から直接 HTML を返せる❗️ docs.aws.amazon.com 「固定レスポンス」は2018年7月頃にリリースされていて,さらに2019年3月頃にリリースされた「高度なリクエストルーティン…
Terraform で AWS Chatbot を構築したくても AWS SDK for Go との関係によって AWS Provider でサポートされていないという課題がある以下のような関連する issue もある github.com github.com ちなみに AWS CloudFormation では AWS::Chatbot::SlackChanne…
AWS Systems Manager Inventory の有効化(AWS Systems Manager State Manager の関連付け)を Terraform で構築する場合 aws_ssm_association リソースを使って設定できる aws_ssm_association | hashicorp/aws aws_ssm_association の parameters に関して…
2023年9月5日に AWS SAM CLI の Terraform サポート機能が GA (正式リリース)になった Amazon API Gateway や AWS Lambda 関数などサーバーレス関連のコンポーネントは Terraform で統一的に管理しつつも,AWS SAM CLI の開発支援機能(sam local invoke …
Amazon ECR で Basic scanning(基本スキャン)を使う場合に「リポジトリレベル」の設定は現在推奨されてなく,マネジメントコンソール上だと リポジトリレベルの ScanOnPush 設定は非推奨となり、レジストリレベルのスキャンフィルターが優先されます。 の…
AWS Backup で Amazon EC2 インスタンスをバックアップする構成を Terraform で構築する検証をしたので簡単にまとめておこうと思う 設定によっても異なるけど今回は大きく以下のリソースを使って構築した. aws_backup_vault | hashicorp/aws aws_backup_pla…
Trivy の「Misconfiguration Scanning」は Terraform をサポートしていて(AWS CloudFormation もサポートしている),Terraform コードのセキュリティ課題や設定ミスを検出できる❗️Trivy を活用した Terraform のスキャンを試した作業ログをまとめる aquase…
Amazon CloudWatch Alarm で検出したアラームを PagerDuty に通知する仕組みを Terraform で構築する機会があって,検証用に実装した Terraform コードをまとめておく.設定自体は難しくなくて Amazon CloudWatch Alarm → Amazon SNS Topic → PagerDuty のよ…
Terraform コードを書きながらセキュリティ観点の警告を把握できるため tfsec を導入すると便利❗️ tfsec では AWS, Microsoft Azure, Google Cloud などさまざまなプロバイダをサポートしている 最近 AWS プロバイダを前提に tfsec を導入する機会があって,…
Terraform を使うときに記法やお作法を共通化してベストプラクティスに近付けるために TFLint を導入すると便利❗️ 最近 TFLint を導入する機会があったので作業ログをまとめる github.com TFLint をセットアップする TFLint のセットアップは macOS だと Hom…
Terraform で Amazon ECR リポジトリのライフサイクルポリシーを設定するときに aws_ecr_lifecycle_policy リソースのドキュメントを読むとヒアドキュメントを使った例が載っている 個人的にはヒアドキュメントを使いたくなく,他の実装案を考えながら試して…
Terraform の理解を証明できる HashiCorp 公式の認定試験「HashiCorp Certified: Terraform Associate (003)」に合格した❗️やったー 試験問題に関係する内容は NDA を厳守するため書かず,今回は「試験紹介(普及のため!)」と「勉強方法」をまとめたいと思…
Terraform Cloud で管理してるステート (.tfstate) に terraform import コマンドで既存リソースを追加する機会があったので小ネタだけどまとめておく❗️流れとしては以下のブログ記事にもまとまっていて参考になる support.hashicorp.com 今回は Terraform v…
2023年6月17日(3日前✨)にリリースされた AWS EventBridge Terraform module の最新バージョン v2.3.0 で Amazon EventBridge Scheduler がサポートされた モジュールを使えば多少ではあるけど記述量を抑えることができて,特に IAM Role まわりは楽になる…
Amazon EventBridge Scheduler から Amazon ECS Task を定期的に実行する構成を Terraform で構築する機会があったのでまとめておく❗️Amazon EventBridge Scheduler とても便利 \( 'ω')/ tf ファイル 最初に完成形の tf ファイルを載せておく❗️今回は Amaz…
Terraform で ALB (Application Load Balancer) を構築するときに「アクセスログ」を Amazon S3 に流す設定をすると,以下のように InvalidConfigurationRequest というエラーが出る場合がある⚡️エラーをよく読むと Please check S3bucket permission と書い…
AWS Modernization Workshop の「AWS Modernization Workshop with HashiCorp Terraform Cloud」を実施した❗️Terraform Cloud を使って AWS を操作する流れを一通り学べるので,特に Terraform や Terraform Cloud 入門者におすすめ.例えば "今までは AWS C…
Terraform Cloud で AWS を操作するときにアクセスキー(AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY)を使いたくなく,Terraform Cloud の「Dynamic Provider Credentials」を使って OpenID Connect (OIDC) と連携する仕組みを構築したので,ポイントをま…