· · 1 分で読めます

Agentic Platform Engineering で移行の繰り返し作業をなくす

Git-Ape が実際の AWS Terraform デプロイメントを Azure Bicep に移行する過程を紹介します — 1:1 の構文変換ではなく、デプロイメントの意図を抽出してアーキテクチャを再マッピングします。

.NET Azure Migration Platform Engineering
この記事は他の言語でも読めます:English, Español, Català, Deutsch, Français, Português, Italiano, 中文, 한국어, Русский, हिन्दी, Polski, Türkçe, العربية, Bahasa Indonesia, Nederlands

この投稿は自動翻訳されました。元のバージョンはこちら

Removing the Monkey Work of Migration with Agentic Platform Engineering — Git-Ape(git アジェンティック・プラットフォーム・エンジニアリングツール)が実際の AWS Terraform リポジトリを Azure に移行するウォークスルーで、行単位の変換ではなくデプロイメントの意図抽出に焦点を当てています。

入力: contoso-migration

ソースは、AWS 上に Next.js アプリをデプロイする実際の Terraform プロジェクト(contoso-migration)です — コンピュートに EC2、ロードバランシングに ALB、アーティファクトに S3、アイデンティティに IAM キー。コスト: 月額約 34 ドル。目標は Azure で同じインフラを再現することではなく、デプロイメントが実際に何をしようとしているのかを把握し、Azure ネイティブサービス上でそれを再構築することです。

ステップ 1: 検証と認証

Git-Ape は、何かに触れる前にすべての必要な CLI ツール — azawsghjqgit — を検証し、アクティブな認証セッションを確認することから始めます。部分的な実行はありません。

ステップ 2: 意図の抽出

エージェントは GitHub API を通じてソースリポジトリ全体を読み込み、デプロイメントの意図を抽出します: ランタイム (Node.js)、コンピュートタイプ、イングレスパターン、アーティファクト処理、アイデンティティモデル、ネットワーキング、そしてモニタリング。これが重要なステップです — Terraform のキーワードではなく、デプロイメントが何をするかのセマンティックモデルを構築しています。

ステップ 3: サービスマッピング

AWS サービスが Azure の同等物にマッピングされます:

  • EC2 → App Service (Linux, Node 20 LTS)
  • ALB → App Service 組み込みロードバランシング
  • IAM ロール/キー → Managed Identity
  • Terraform → Bicep + GitHub Actions

ステップ 4: 批評エージェント

出力を生成する前に、批評エージェントが実行され、2 つのブロッキング問題を検出します:

  1. 起動時ビルドのアンチパターン — 元の Terraform は EC2 の起動時に npm install && npm run build を実行していました。修正: CI でビルドし、準備済みアーティファクトをデプロイする。
  2. 不要な Blob Storage — S3 は適切な CI/CD で排除できるアーティファクトステージングに使用されていました。批評エージェントがそれを完全に削除しました。

ステップ 5: 生成された出力

結果は元の 200 行以上の Terraform の代わりに約 80 行の Bicep です。エージェントは infra/main.bicep.github/workflows/deploy.yml を含む新しい GitHub リポジトリを作成し、すべての AWS 固有ファイルを削除しました。

セキュリティ体制の比較

移行により、セキュリティも大幅に改善されました:

AWS オリジナルAzure 出力
HTTP のみHTTPS のみ、TLS 1.2
SSH が 0.0.0.0/0 に開放SSH 露出なし
IAM アクセスキーOIDC + Managed Identity
モニタリングなしApplication Insights

コスト: 元の 34 ドル/月に対して約 13 ドル/月。

構文コンバーターとの違い

批評エージェントのステップが、これを機械的な変換と区別するものです。AWS では機能するが Azure では誤りとなるパターンを検出し、それを複製する代わりに修正しました。出力は「Azure 構文の AWS」ではなく、同じ目標をよりクリーンに達成する Azure ネイティブのデプロイメントです。

完全なエージェントトレースと生成されたファイルについては、完全なウォークスルーをご覧ください。

共有:
この記事のソースコードをGitHubで見る ↗
← Microsoft Agent Framework パート3:ツールからワークフローへ — ビルディングブロックがカチッとはまる
.NETのComposable StackでAI搭載カンファレンスアプリを構築する →