kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Terraform

Terraform AWS Provider で Amazon Inspector 抑制ルールを設定しよう

Amazon Inspector で特定の CVE を一時的に検出対象から除外したいときに「抑制ルール」を活用できる docs.aws.amazon.com Terraform AWS Provider 以外の選択肢 しかし最近までは Terraform AWS Provider で「Amazon Inspector 抑制ルール」を設定すること…

Branch Deploy Action で複数環境に Terraform をデプロイする

Branch Deploy Action (branch-deploy) を使って Terraform をデプロイする仕組みを以下の記事にまとめたプルリクエストに .plan や .apply とコメントするとデプロイできるという IssueOps を実現できる kakakakakku.hatenablog.com 前に書いた記事では「1…

Branch Deploy Action で Terraform をデプロイする (Apply-Before-Merge)

IssueOps でブランチデプロイを実現できる GitHub 公式アクション Branch Deploy Action (branch-deploy) を使って,Terraform の Apply-Before-Merge デプロイ (plan / apply) を自動化してみた❗️ github.com ちなみに Branch Deploy Action に関しては2023…

Terraform で aws_instances データソースと for_each を組み合わせて CloudWatch アラームを設定する

複数ある Amazon EC2 インスタンス(Auto Scaling グループ未使用)に対して Terraform で Amazon CloudWatch アラームを設定するコードを実装してみた 実装方針としては aws_instances データソースで Amazon EC2 インスタンスを取得して(今回はタグでフィ…

tfcmt: GitHub Actions から terraform plan / apply の出力結果をプルリクエストにコメントしよう

GitHub Actions で terraform plan / terraform apply を実行するときに出力結果をイイ感じにプルリクエストにコメントしたいという場面があった 自前でゴニョゴニョと実装するのではなく tfcmt を試してみたらとても便利だったので,検証ログも兼ねてまとめ…

AWS Diagram MCP Server: Terraform コードからアーキテクチャ図を生成しよう

AWS Diagram MCP Server を使うと Diagrams を使ってアーキテクチャ図を生成できる 今回は VS Code + Cline を使う(セットアップなどは割愛). github.com Terraform コードからアーキテクチャ図を生成しよう Zenn Book「LocalStack 実践入門 | AWS x Terr…

Digger で複数の AWS アカウントに terraform apply を実行する

Digger で複数の AWS アカウント(たとえば stg 環境と prd 環境)にデプロイする仕組みを作ってみたので簡単にまとめておこうと思う.基本的にはドキュメントに載っている通りに設定すれば OK だった docs.digger.dev 動作イメージ まず,適当に Terraform …

Digger で terraform apply 後に自動的にプルリクエストをマージする

Digger で digger.yml に auto_merge: true を設定すると,terraform apply 後に自動的にプルリクエストがマージできる.プルリクエストのマージを忘れることなく Apply-Before-Merge 戦略を実現できてイイ❗️ docs.digger.dev digger.yml 検証用プロジェク…

Zenn Book で「LocalStack 実践入門 | AWS x Terraform 入門ワークショップ」を公開しました

2025年2月26日に Zenn Book で完全無料の学習コンテンツ「LocalStack 実践入門 | AWS x Terraform 入門ワークショップ」を公開しましたー AWS エミュレーターの LocalStack に実践的に入門しつつ「Terraform の基礎」を学べるワークショップです❗️ zenn.dev …

tenv: Terraform のバージョン管理をしよう

普段 Terraform のバージョン管理ツールとして tfenv を使っている.機能面で困ることはないけど,tfenv の GitHub リポジトリを確認すると,直近数年は特にアップデートがなく,メンテナンスの観点で少し不安を感じていた github.com 念のため tfenv の代替…

tflocal を使って Terraform から LocalStack にデプロイしよう

Terraform から LocalStack にデプロイする場合,以下のように provider.tf の provider 設定で LocalStack のエンドポイントを参照するように実装する必要がある provider "aws" { region = "ap-northeast-1" access_key = "DUMMY" secret_key = "DUMMY" s3…

Terraform S3 Backend でステートロックのための DynamoDB が不要になる use_lockfile = true

Terraform v1.10.0 で導入された S3 Backend の use_lockfile オプションを使うと,Amazon S3 バケットで tfstate を管理しつつ,Amazon S3 のネイティブ機能 (conditional writes) でステートロックも実現できる今までステートロックのために使っていた Ama…

Terraform で Service-Linked Role(サービスにリンクされたロール)を作る

マネジメントコンソールを使ってリソースを設定していると自動的に「Service-Linked Role(サービスにリンクされたロール)」が作られていることがある実は AWS CloudFormation や Terraform を使って Service-Linked Role を IaC (Infrastructure as Code) …

Terraform で Service Quotas のクォータリクエストを管理する

特にプロダクション環境でウェブサービスを稼働させるときにトラフィックの多さから AWS サービスのクォータ(サービス制限)に該当する可能性がある AWS Well-Architected Framework (Reliability Pillar) でも REL01-BP01 ~ REL01-BP06 にクォータ関連のベ…

Vercel Terraform Provider: Vercel の設定を Terraform で管理しよう

最近 Vercel を使っていて,Vercel コンソールでプロジェクト設定をしてしまったけど,継続的なプロダクション運用を考えたらコンソール操作は避けたいな〜と思って,Vercel Terraform Provider を試してみた❗️結論から言うと,期待した通りに Vercel の設定…

Auth0 Terraform Provider: Auth0 の設定を Terraform で管理しよう

Auth0 Terraform Provider を使うと Auth0 の設定を Terraform で宣言的に管理できる.もちろん Terraform の仕組みに沿って terraform plan コマンドで確認してから terraform apply コマンドでデプロイできる❗️Auth0 Terraform Provider を試したログをま…

Terraform AWS Provider で AWS Chatbot を構築する

2024年8月2日にリリースされた Terraform AWS Provider v5.61.0 で AWS Chatbot の「Slack 設定 (SlackChannelConfiguration)」と「Teams 設定 (MicrosoftTeamsChannelConfiguration)」を設定できるようになった❗️ github.com 背景 今までは AWS Provider を…

Terraform の AWS Cloud Control Provider (awscc) で Amazon Inspector「抑制ルール」を設定しよう

現時点(2024年5月)だと Terraform AWS Provider では Amazon Inspector の「抑制ルール」を設定できないという制約がある github.com Terraform AWS Provider 以外だと マネジメントコンソール AWS CLI(参考: AWS CLI で Amazon Inspector「抑制ルール」…

Terraform で Amazon ECS の fargateTaskRetirementWaitPeriod を設定する

2024年5月17日にリリースされた Terraform AWS Provider v5.50.0 で Amazon ECS の「Fargate タスクリタイア待機時間 (fargateTaskRetirementWaitPeriod)」を設定できるようになった. github.com デフォルトでは「7日間」に設定されていて,選択肢としては …

「Terraform の教科書 - Forkwell Library #51」で Q&A セッションのモデレーターを担当した

2024年5月9日に開催されたオンラインイベント「Terraform の教科書 - Forkwell Library #51」で Q&A セッションのモデレーター(司会者)を担当させて頂いたので,イベント開催前の準備などを簡単にまとめておこうと思う \( 'ω')/ 今回は貴重な機会を頂き…

認定資格 HashiCorp Certified: Terraform Associate の対策にも使える「Terraform の教科書」を読んだ

2024年3月21日に出版された「Terraform の教科書」を読んだ 本書は「これから Terraform に入門したいと思っている初学者」に特におすすめできる一冊だった.また本書では原著と違って,2024年1月にリリースされた Terraform v1.7.0 をベースに修正されてい…

Terraform で無料利用枠の VPC IP Address Manager (IPAM) を設定する

2023年11月から VPC IP Address Manager (IPAM) に「無料枠利用枠」が追加されて Public IP Insights などの機能が無料で使えるようになったそして,2024年2月から課金対象になった IPv4 の最適化のために Public IP Insights を使いたいという場面もあると…

Dependabot で Terraform Provider を自動的にアップデートしよう

Dependabot version updates を使うと Terraform Provider のアップデートを自動化できる❗️設定は比較的簡単で package-ecosystem に terraform を設定して,あとは必須の directory と schedule.interval でアップデートの対象ディレクトリとスケジュールを…

Terraform で「最新の」Amazon ECS タスク定義を追跡できる aws_ecs_task_definition の track_latest オプション

Terraform で Amazon ECS タスク定義を作りつつ,アプリケーションのライフサイクルとして GitHub Actions などの「Terraform 以外で」イメージタグを差し替えて Amazon ECS タスク定義を更新(正確には更新ではなくリビジョン追加)する運用を選択すること…

Terraform の count で制御したリソースを one 関数で output する

Terraform で count Meta-Argument を if のように使ってリソースを作るかどうかを制御できるという Tips がある.リソース間で参照するときは,同じく count で制御しつつ,例えば aws_iam_user.kakakakakku[0].name のようにインデックスを指定できるけど…

Terraform で default セキュリティグループのルールを削除する

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 の「Run Tasks 機能」を使うと Terraform Cloud のワークフローと外部サービスと統合できて,プラン取得前・プラン取得後などのタイミングにセキュリティスキャンなど「任意の処理」を実行できる 例えば取得したプラン結果を外部サービスに…

Terraform の基本的な仕組みから実践まで深く学べる一冊「詳解 Terraform 第3版」を読んだ

2023年11月21日(明日)に出版される新著「詳解 Terraform 第3版」を読んだ 本書では Terraform の基本的な仕組みを学べるだけではなく,Terraform を実践的に使うときに必要になるステート管理・モジュール・シークレット管理・テストなど幅広いトピックま…

Terraform で実装した IAM ポリシーを IAM Access Analyzer で検証できる tf-policy-validator コマンド

Terraform で AWS IAM ポリシーや Amazon S3 バケットポリシーを実装するときに terraform plan は通るのに terraform apply で失敗したり,terraform apply は通るのにポリシー自体に誤りがあって期待通りに動かなかったり,無駄にハマってしまった経験って…

Terraform Plugin Framework を使ったカスタムプロバイダの実装に入門できる Terraform チュートリアル「Custom Framework Providers」

Terraform チュートリアル「Custom Framework Providers」を試した❗️ Terraform から RESTful API を操作するカスタムプロバイダを実装しながら Terraform Plugin Framework の仕組みを学べて非常に良かったチュートリアルは計11種類から構成されていて一歩…