𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
Google Antigravity × Infrastructure as Code実践ガイド|Terraform・Pulumi自動化テクニック

Google Antigravity × Infrastructure as Code実践ガイド|Terraform・Pulumi自動化テクニック

Google AntigravityTerraformIaCインフラSES
目次
⚡ 3秒でわかる!この記事のポイント
  • Google AntigravityはTerraform/Pulumi/CDKのコード生成・レビュー・最適化を自然言語で効率化できる
  • 既存インフラのIaC化(逆引きインポート)やドリフト検知もAIで自動化可能
  • マルチクラウド対応のモジュール設計でSES案件の対応力が大幅に向上する

Infrastructure as Code(IaC)はクラウド運用の必須スキルですが、Terraform HCLやPulumiのコード記述は学習コストが高く、SES現場で苦戦するエンジニアも少なくありません。結論から言うと、Google Antigravityを活用すれば、IaCの記述・レビュー・最適化を劇的に効率化できます。

この記事はGoogle Antigravity活用シリーズの第34回として、IaCに特化したAntigravityの実践テクニックを解説します。

この記事でわかること
  • AntigravityでTerraformコードを効率的に生成する方法
  • 既存インフラのIaC化(terraform import)を自動化するテクニック
  • Pulumiを使ったプログラマティックIaCの実装方法
  • IaCコードのセキュリティレビュー・コスト最適化
  • SES案件で即活用できるIaCテンプレート集

なぜGoogle Antigravity × IaCが強力なのか

Gemini の大規模コンテキスト能力

Google AntigravityはGeminiモデルの大規模コンテキストウィンドウを活用し、数千行規模のTerraformコードベース全体を把握した上で、適切なモジュール設計やリファクタリングを提案できます。

Antigravityが得意なIaCタスク:

  1. コード生成: 自然言語でインフラ要件を伝えるだけでHCL/Pulumiコードを生成
  2. レビュー: セキュリティ・コスト・パフォーマンス観点でのコードレビュー
  3. リファクタリング: DRY原則に基づくモジュール分割と再利用性の向上
  4. ドキュメント: 変数・出力の説明やアーキテクチャ図の自動生成
  5. トラブルシューティング: terraform plan/applyのエラー解析と修正

プロジェクトコンテキストの活用

Antigravityの設定ファイルにIaCプロジェクトの情報を定義することで、より精度の高いコード生成が可能です。

# .antigravity/context.md

## IaCプロジェクト情報
- ツール: Terraform 1.7 + OpenTofu
- プロバイダ: AWS (primary), Google Cloud (secondary)
- 状態管理: S3 + DynamoDB ロッキング
- モジュールレジストリ: Terraform Registry + 社内プライベートレジストリ
- CI/CD: GitHub Actions + Atlantis
- ポリシー: OPA/Conftest + tfsec
- 命名規約: {env}-{service}-{resource}

Terraformコード生成の実践テクニック

VPCとネットワーク構成の生成

Antigravityプロンプト例:
「AWS VPCを構築するTerraformコードを生成して。
要件:
- CIDR: 10.0.0.0/16
- AZ: 3つ(ap-northeast-1a/c/d)
- パブリックサブネット: 3つ(/24)
- プライベートサブネット: 3つ(/24)
- NAT Gateway: シングル(コスト重視)
- VPCフローログ: CloudWatch Logs出力
- タグ: terraform管理タグ付与
モジュールとして再利用可能な設計にして。」
# Antigravityが生成するVPCモジュールの例
module "vpc" {
  source = "./modules/vpc"

  name_prefix          = "${var.environment}-${var.service_name}"
  vpc_cidr             = "10.0.0.0/16"
  availability_zones   = ["ap-northeast-1a", "ap-northeast-1c", "ap-northeast-1d"]

  public_subnet_cidrs  = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
  private_subnet_cidrs = ["10.0.11.0/24", "10.0.12.0/24", "10.0.13.0/24"]

  enable_nat_gateway   = true
  single_nat_gateway   = true

  enable_flow_logs     = true
  flow_log_destination = "cloud-watch-logs"

  tags = merge(var.common_tags, {
    ManagedBy = "terraform"
    Module    = "vpc"
  })
}

ECS Fargateサービスの構成

Antigravityプロンプト例:
「ECS FargateでWebアプリをデプロイするTerraformを書いて。
コンポーネント:
- ECSクラスター
- タスク定義(CPU: 256, Memory: 512)
- サービス(desired_count: 2)
- ALB + ターゲットグループ
- CloudWatchログ
- IAMロール(最小権限)
- Security Group(ALB→ECSのみ許可)
変数化してモジュールとして使えるようにして。」

Google Antigravity × IaCワークフロー全体像

既存インフラのIaC化

マネジメントコンソールで手動作成されたリソースをTerraformに取り込む作業は、SES案件で頻繁に発生します。

Antigravityプロンプト例:
「以下のAWSリソースをterraform importでIaC化して。
リソース一覧:
- VPC: vpc-0abc123def456
- EC2: i-0abc123def456(t3.medium)
- RDS: mydb-instance(PostgreSQL 15)
- S3: my-app-bucket
各リソースのimportコマンドと対応するTerraformコードを生成して。
terraform state list → terraform import → terraform planの
手順も含めて。」

Pulumiによるプログラマティック IaC

TypeScript/PythonでのIaC

Pulumiを使えば、汎用プログラミング言語でインフラを定義できます。AntigravityはPulumiコードの生成にも対応しています。

Antigravityプロンプト例:
「PulumiのTypeScriptでAWS ECSサービスを構築するコードを書いて。
awsx(Crosswalk)パッケージを使ってシンプルに。
ALB + ECS Fargate + RDS の3層構成で。」
// Antigravityが生成するPulumiコードの例
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";

const config = new pulumi.Config();
const environment = config.require("environment");

// VPC
const vpc = new awsx.ec2.Vpc(`${environment}-vpc`, {
  cidrBlock: "10.0.0.0/16",
  numberOfAvailabilityZones: 3,
  natGateways: { strategy: "Single" },
  tags: { Environment: environment, ManagedBy: "pulumi" },
});

// ECS Cluster
const cluster = new aws.ecs.Cluster(`${environment}-cluster`, {
  settings: [{ name: "containerInsights", value: "enabled" }],
});

// ALB
const alb = new awsx.lb.ApplicationLoadBalancer(`${environment}-alb`, {
  subnetIds: vpc.publicSubnetIds,
  securityGroups: [],
});

// Fargate Service
const service = new awsx.ecs.FargateService(`${environment}-api`, {
  cluster: cluster.arn,
  networkConfiguration: {
    subnets: vpc.privateSubnetIds,
    securityGroups: [],
  },
  taskDefinitionArgs: {
    container: {
      name: "api",
      image: "registry.example.com/api:latest",
      cpu: 256,
      memory: 512,
      portMappings: [{ containerPort: 8080, targetGroup: alb.defaultTargetGroup }],
      environment: [
        { name: "NODE_ENV", value: environment },
      ],
    },
  },
  desiredCount: 2,
});

export const url = alb.loadBalancer.dnsName;

IaCコードのセキュリティレビュー

tfsecとの統合

Antigravityを使ってtfsecの警告を分析し、修正案を自動生成できます。

Antigravityプロンプト例:
「tfsecの結果を分析して修正して。
WARNING: aws-s3-enable-bucket-encryption
WARNING: aws-s3-enable-bucket-logging
WARNING: aws-ec2-no-public-ingress-sgr
CRITICAL: aws-iam-no-policy-wildcards
各警告の修正コードを生成して。
理由もコメントで記載して。」

コスト最適化分析

Antigravityプロンプト例:
「このTerraformコードのコストを分析して。
infracostのような見積もりと、コスト削減の提案を出して。
特に以下をチェック:
- 過剰プロビジョニングされたインスタンス
- リザーブドインスタンス/Savings Plans適用の余地
- 不要なNAT Gatewayやデータ転送コスト
- S3ストレージクラスの最適化
月額の概算とともに代替案を提示して。」

Terraformモジュール設計のベストプラクティス

モジュール構成の標準化

Antigravityはモジュール設計のベストプラクティスに基づいたリファクタリングを提案します。

Antigravityプロンプト例:
「このTerraformコードをモジュールに分割してリファクタリングして。
基準:
- 1モジュール1責務(ネットワーク、コンピュート、DB、監視)
- variables.tf / outputs.tf / main.tf の分離
- README.md自動生成
- examples/ディレクトリにサンプル構成
- validation blockで入力値検証」

ステート管理の設計

# Antigravityが生成するバックエンド設定の例
terraform {
  backend "s3" {
    bucket         = "company-terraform-state"
    key            = "services/api-server/terraform.tfstate"
    region         = "ap-northeast-1"
    dynamodb_table = "terraform-state-lock"
    encrypt        = true
  }

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }

  required_version = ">= 1.7"
}

CI/CDパイプラインでのIaC自動化

Atlantisとの連携

Antigravityプロンプト例:
「Atlantis用のatlantis.yamlを生成して。
プロジェクト構成:
- modules/vpc → 全環境で共有
- environments/dev → devアカウント
- environments/staging → stagingアカウント
- environments/prod → prodアカウント(plan自動、apply手動承認)
ワークフロー: tfsec → terraform plan → コスト見積もり → PR通知」
# Antigravityが生成するAtlantis設定の例
version: 3
automerge: false
parallel_plan: true
parallel_apply: false

projects:
  - name: dev
    dir: environments/dev
    workflow: standard
    autoplan:
      when_modified: ["**/*.tf", "../modules/**/*.tf"]
      enabled: true

  - name: staging
    dir: environments/staging
    workflow: standard
    autoplan:
      when_modified: ["**/*.tf", "../modules/**/*.tf"]
      enabled: true

  - name: prod
    dir: environments/prod
    workflow: production
    autoplan:
      when_modified: ["**/*.tf", "../modules/**/*.tf"]
      enabled: true
    apply_requirements: [approved, mergeable]

workflows:
  standard:
    plan:
      steps:
        - run: tfsec . --format json || true
        - init
        - plan
    apply:
      steps:
        - apply

  production:
    plan:
      steps:
        - run: tfsec . --minimum-severity HIGH
        - init
        - plan
        - run: infracost breakdown --path .
    apply:
      steps:
        - run: echo "Production apply requires manual approval"
        - apply

IaCの基本的なCI/CD統合についてはGoogle Antigravity × CI/CD自動化ガイドも参照してください。

SES現場で使えるIaCテンプレート集

テンプレート1: 3層Webアプリケーション

以下の3層Webアプリケーションインフラを構築するTerraformを書いて。
構成:
- フロントエンド: CloudFront + S3(静的サイトホスティング)
- バックエンド: ECS Fargate + ALB
- データベース: RDS Aurora PostgreSQL(マルチAZ)
- キャッシュ: ElastiCache Redis
- モニタリング: CloudWatch + SNSアラート
セキュリティ要件:
- WAF(ALB前段)
- VPC内にプライベートサブネットのみ
- Secrets Managerで認証情報管理

テンプレート2: マルチアカウント管理

AWS Organizationsでマルチアカウント管理するTerraformを書いて。
アカウント構成:
- Management Account(請求統合)
- Security Account(GuardDuty, SecurityHub)
- Shared Services(Transit Gateway, DNS)
- Dev / Staging / Prod(各ワークロード)
SCPで最低限のガードレールも設定して。

テンプレート3: Google Cloud基本構成

Google CloudのTerraformでWebアプリ基盤を構築して。
構成:
- Cloud Run(バックエンドAPI)
- Cloud SQL PostgreSQL(プライベートIP)
- Cloud Storage(静的ファイル)
- Cloud CDN + Load Balancer
- Cloud Armor(WAF)
- VPC + Cloud NAT
Google Cloud固有のベストプラクティスに沿って。

Google Cloudの各サービスについてはGoogle Cloud完全攻略シリーズも参照してください。

まとめ

Google AntigravityはInfrastructure as Codeの全フェーズで威力を発揮します。コード生成だけでなく、レビュー・最適化・トラブルシューティングまで一貫してサポートします。

IaC開発でAntigravityを活用する際のポイント:

  • コンテキストファイルにプロジェクトの技術スタック・命名規約を定義して精度を最大化
  • モジュール設計はDRY原則に基づきAntigravityにリファクタリングを提案させる
  • セキュリティレビュー(tfsec連携)とコスト分析を自動化する
  • CI/CDパイプライン(Atlantis/GitHub Actions)にIaCを統合する
  • マルチクラウド対応のスキルでSES案件の対応力を高める

IaCスキルはSES案件の単価を大きく左右する重要なスキルです。Antigravityを活用して効率的にスキルアップしましょう。

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修