Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era

Avatar for アキキー | Akihisa Ikeda

アキキー | Akihisa Ikeda

October 29, 2026

More Decks by アキキー | Akihisa Ikeda

Other Decks in Programming

Transcript

  1. AWS Cloud A社 WAF B社 C社 お客さんの会社 許可した会社だけ通す アクセスする IPセット

    IPセット A社 B社 C社 203.▪.▪.12/32 203.▪.▪.128/28 192.▪.▪.10/32 リクエストを渡す ALB A社のIPアドレスを変更する お客様であるA社がオフィス移転したので、 業務システムのWAFのIPセットを変更します 業務システム (ECS)
  2. マネジメントコンソール IP セットを編集 IP アドレス (CIDR 表記) 198.▪.▪.7/32 203.▪.▪.80/32 192.▪.▪.24/32

    192.▪.▪.10/32 203.▪.▪.12/32 198.▪.▪.45/32 198.▪.▪.200/32 削除 削除 削除 削除 削除 削除 削除 IP アドレスの追加 設定変更完了しました! おや?B社から苦情が来てますね… A社 B社 接続できるようになりました! 急に接続できなくなった!
  3. マネジメントコンソール IP セットを編集 IP アドレス (CIDR 表記) 198.▪.▪.7/32 203.▪.▪.80/32 192.▪.▪.24/32

    192.▪.▪.10/32 203.▪.▪.12/32 198.▪.▪.45/32 削除 削除 削除 削除 削除 削除 198.▪.▪.200/32 削除 IP アドレスの追加 A社(旧) B社(削除) A社(新) 改めて設定を見ると、A社のIPアドレスが新旧どちらも残っていて、B社のIPアドレスが消えてました 元の値ってどこに載ってたかな……
  4. AWSリソースをデプロイする主な選択肢 マネジメントコンソールから画面操作 マネジメント コンソール アプリケーションからSDKを呼び出し SDK CLIでコマンド操作 CLI $ aws

    s3api create-bucket \ --bucket my-bucket await s3.send(new CreateBucketCommand({ Bucket: "my-bucket", })); IaCでデプロイ IaC MyBucket: Type: AWS::S3::Bucket Properties: BucketName: my-bucket
  5. 手続き型 vs 宣言型のデプロイ手段 手続き型 宣言型 「どうやるか」の設定手順を1つずつ指 示するデプロイ方法 現在のリソースに対して、作成・変更・ 削除の操作を都度実行する 例:マネコンからLambda関数のメモリ

    サイズを変更して、環境変数を追加した リソースの「あるべき姿」を宣言するデ プロイ方法 作成・変更・削除の操作は書かず、最終 的な設定だけを書く 例:コードにメモリサイズと環境変数を 書いてデプロイした マネコン、CLI、SDK IaC
  6. IaCの特徴 ③ 構造を把握しやすい 構成はコードに全部書かれているので、コードを見れば全体像と関連が分かる リソース同士の関連を追える AWS WAF ALB Amazon ECS

    コード(AWS CDK) const alb = new ApplicationLoadBalancer(this, 'Alb', { vpc, internetFacing: true, }); // 取引先のシステムがHTTPでしか連携できないため、HTTPを許可する alb.addListener('Http', { port: 80, protocol: ApplicationProtocol.HTTP, });
  7. IaCのツールとは? Terraform HashiCorp社のIaCツール HCLという独自の言語で リソースを定義できる AWS以外のクラウドやSaaSも まとめて管理できる AWS CDK AWS公式のOSSツール

    CloudFormationを プログラミング言語で書ける CloudFormation AWSのマネージドなIaCツール リソースのデプロイの安定性が高い よく使う構成が部品として 用意されていて、 少ないコードで書ける
  8. IaCがAIに向いている理由 ① コンテキストを渡しやすい ソースコードにインフラ設定・設計意図が含まれているため、 AIにとっても必要な情報が揃っている コード(AWS CDK) const alb =

    new ApplicationLoadBalancer(this, 'Alb', { vpc, internetFacing: true, }); // 取引先のシステムがHTTPでしか連携できないため、HTTPを許可する alb.addListener('Http', { port: 80, protocol: ApplicationProtocol.HTTP, }); コードを渡す AI MCPやCLIでAWSを読み取ると 時間もトークンもかかる 現状と意図が伝わる AWSのリソース
  9. IaCがAIに向いている理由 ④ インフラの安全性を検証できる ソースコードをスキャン(静的解析)することでセキュリティホールを見つけられる コード(AWS CDK) const sg = new

    ec2.SecurityGroup(this, 'BastionSg', { vpc, allowAllOutbound: true, }); sg.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(22)); 実装中 cdk synth のときにルールでチェック cdk-nag 全世界からのSSHを許可しています 受信元 0.0.0.0/0 → TCP 22 セキュリティスキャン リポジトリ全体をまとめてスキャン Continuumコードレビューなど → インフラ設定がソースコードに載っているため、 アプリのコードと同時にセキュリティスキャンできる
  10. IaCツールもAI向けに進化している AIが自分で書いたコードを、自分で検証できる範囲が広がってきている 2025-11 2025-11 2025-11 2026-04 2026-06 2026-06 2026-07 CloudFormation

    早期バリデーション CloudFormation Language Server AWS IaC MCP Server cdk diagnose(プレビュー) cdk validate(プレビュー) Terraform MCP Server GA cdk lsp(プレビュー) cdk diagnose(プレビュー) デプロイに失敗した理由が確認できるコマンド 理由をもとにAIが修正しやすくなった