AWS App2Container

オンプレミスの Java/.NET アプリケーションを分析し、コンテナイメージと ECS/EKS デプロイ用のアーティファクトを自動生成するコマンドラインツール

概要

AWS App2Container (A2C) は、オンプレミスや EC2 上で稼働する Java および .NET アプリケーションを分析し、Docker コンテナイメージの生成、ECS タスク定義や EKS マニフェストの作成、CI/CD パイプラインの構築までを自動化するコマンドラインツールです。アプリケーションの依存関係、ネットワーク接続、ファイルシステムの使用状況を自動検出し、最小限の手動作業でコンテナ化を完了させます。

アプリケーション分析とコンテナ化プロセス

App2Container のワークフローは、inventory (検出)、analyze (分析)、containerize (コンテナ化)、generate (デプロイアーティファクト生成) の 4 ステップで構成されます。inventory コマンドは、サーバー上で稼働する Java (Tomcat、JBoss、Spring Boot) および .NET (IIS) アプリケーションを自動検出し、一覧を表示します。analyze コマンドは選択したアプリケーションの依存関係 (ライブラリ、設定ファイル、環境変数、ネットワークポート) を詳細に分析し、コンテナ化に必要な情報を JSON レポートとして出力します。containerize コマンドは分析結果に基づいて Dockerfile を自動生成し、Docker イメージをビルドします。生成される Dockerfile はベストプラクティスに沿った多段ビルド構成で、不要なファイルを含まない最小限のイメージを生成します。

ECS/EKS デプロイアーティファクトの自動生成

generate コマンドは、コンテナ化されたアプリケーションを ECS または EKS にデプロイするために必要なすべてのアーティファクトを自動生成します。ECS 向けには、タスク定義、サービス定義、ALB の設定、セキュリティグループ、CloudFormation テンプレートが生成されます。EKS 向けには、Deployment、Service、Ingress の Kubernetes マニフェストと Helm チャートが生成されます。ECR リポジトリの作成とイメージのプッシュも自動的に行われます。さらに、CodeCommit リポジトリ、CodeBuild プロジェクト、CodePipeline パイプラインを含む CI/CD 環境も自動構築でき、コンテナ化後の継続的デリバリーを即座に開始できます。生成されたアーティファクトはすべてカスタマイズ可能で、リソースサイズ、レプリカ数、ヘルスチェック設定などを要件に合わせて調整できます。

移行戦略とリファクタリングの段階的アプローチ

App2Container は「リフト & シフト」のコンテナ化を自動化するツールですが、これを出発点として段階的なリファクタリングを進める戦略が効果的です。第 1 段階では A2C でモノリシックアプリケーションをそのままコンテナ化し、ECS/EKS 上で稼働させます。この時点でコンテナオーケストレーション、オートスケーリング、ローリングデプロイの恩恵を受けられます。第 2 段階では、モノリス内の独立性の高いモジュールを個別のコンテナサービスに分離し、マイクロサービス化を進めます。App2Container の分析レポートに含まれるネットワーク接続情報は、モジュール間の依存関係を把握してサービス分割の境界を決定する際の重要な入力データになります。Windows コンテナにも対応しているため、.NET Framework アプリケーションを Windows コンテナとして ECS に移行し、将来的に .NET Core への移植を進めるロードマップも現実的です。

共有するXB!