Terraform Plan 差分をパースする GitHub Actions を作った

こんにちは。jedipunkz🚀 です。 Terraform を運用しているとたまに Plan 結果がどうしても出てしまう事があります。また Terraform を GitHub で実行する環境を運用していると Plan 結果をうまく扱って自動化したいモチベーションも湧いてきます。この場合に Plan の差分をうまく処理してくれる GitHub Action があればなと思って作ってみました。 GitHub Actions 作成した GitHub Action は下記のレポジトリで公開しています。 https://github.com/jedipunkz/tf-plan-parser 入力・オプション設定 この GitHub Action では2つの入力オプションが利用可能です: terraform-plan (必須) パース対象となる Terraform Plan の出力結果を指定します。通常は前のステップで実行した terraform plan コマンドの標準出力を渡します。 ignore-resources (オプション) 無視したいリソースタイプや特定のリソースを配列形式で指定します。デフォルトは空の配列 [] です。 指定方法の例: リソースタイプ全体を無視: ignore-resources: '["null_resource", "local_file"]' 特定のリソースインスタンスを無視: ignore-resources: '["null_resource.temporary", "local_file.cache"]' リソースタイプとインスタンスの混在: ignore-resources: '["null_resource", "aws_s3_bucket.temp", "local_file"]' 出力される情報 この Action は以下の出力を提供します。また下記は ignore-resources オプションの指定に沿って結果を出力してくれます。 diff-bool: 変更があるかどうかの真偽値(true または false) diff-count: 変更されるリソースの数 diff-resources: 変更されるリソースのアドレス一覧(カンマ区切り) diff-raw: 生の差分データ diff-json: s分データの JSON 形式 これらの出力を使って、後続のステップで条件分岐や通知の制御が可能です。 ...

VPC Lattice + ECS 構成を Terraform を通して理解

jedipunkz です。VPC Lattice が ECS に対応したという情報が https://aws.amazon.com/jp/about-aws/whats-new/2024/11/amazon-vpc-lattice-elastic-container-service/ にあがりました。この対応を Terraform を使って構成して検証してみるのが今回の目的になります。 今回検証で用いたコード 検証コードは下記に置いておきました。 https://github.com/jedipunkz/vpclattice-ecs-playground 概要 構成の概要としては下記です。(Mermaid 記表でうまく描けていませんが) VPC1, VPC2 に跨る形で VPC Lattice Service Network が配置 VPC2 上の何者か (例で EC2) が VPC1 上の ECS に接続可能 その際は VPC Service Network を介して VPC Lattice Service がエンドポイントとして受ける (うまく描けてない) という事は今まで複数の VPC 間で ECS のエンドポイントを共有しようとすると VPC1, VPC2 とで VPC Peering を張る VPC1 上の Private Subnets 上で ALB を構築して ECS Service に接続する という構成が必要でしたが、VPC Lattice を使えばそれらが不要になる、という事です。 今回検証した構成 今回使った Terraform コードで構築した構成は下記です。各 AWS リソースの関係図になっています。 特徴としては ...