翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS App2Container を使用したオンプレミスの Java プリケーションの AWS への移行
作成者:Dhananjay Karanjkar (AWS)
概要
注意: AWS CodeCommit は、新規のお客様では利用できなくなりました。AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
AWS App2Container (A2C) は、コードを変更することなく、仮想マシンで実行されている既存のアプリケーションをコンテナに変換するのに役立つコマンドラインツールです。A2Cは、サーバーで実行されているアプリケーションを発見し、依存関係を特定し、Amazon Elastic Container Service (Amazon ECS) および Amazon Elastic Kubernetes Service (Amazon EKS) にシームレスにデプロイするための関連アーティファクトを生成する。
このパターンは、アプリケーションサーバーにデプロイされたオンプレミスの Java アプリケーションを、ワーカーマシンから App2Container を使用して AWS Fargate または Amazon EKS にリモート移行する手順を示しています。
ワーカーマシンは、以下のユースケースにご使用いただけます。
Java アプリケーションが実行されているアプリケーションサーバーでは Docker のインストールは許可されていないか、使用できません。
異なる物理サーバーまたは仮想サーバーにデプロイされた複数のアプリケーションの移行を管理する必要があります。
このパターンでは、AWS CodeCommit、 AWS CodePipeline、および を使用します AWS CodeBuild。
前提条件と制限
前提条件
Linux サーバー上で Java アプリケーションを実行しているアプリケーションサーバー
Linux オペレーティングシステムを搭載したワーカーマシン
20 GB 以上の空きディスク容量があるワーカーマシン
機能制限
すべてのアプリケーションに対応しているわけではありません。詳細については、「Linux でサポートされるアプリケーション」を参照してください。
アーキテクチャ
ソーステクノロジースタック
Linux サーバー上で実行されている Java アプリケーション
ターゲットテクノロジースタック
AWS CodeBuild
AWS CodeCommit
AWS CodeDeploy
AWS CodePipeline
Amazon Elastic Container Registry
AWS Fargate
ターゲット アーキテクチャ

ツール
ツール
「AWS App2Container」— AWS App2Container (A2C) は、オンプレミスのデータセンターや仮想マシン上で動作するアプリケーションを、Amazon ECS や Amazon EKS で管理されるコンテナ内で動作するようにリフトとシフトするためのコマンドラインツールです。
「AWS CodeBuild」— AWS CodeBuild はクラウドの完全マネージド型のビルドサービスです。CodeBuild はソースコードをコンパイルし、ユニットテストを実行して、すぐにデプロイできるアーティファクトを作成します。
「AWS CodeCommit」— AWS CodeCommit は、Amazon Web Services がホスティングするバージョン管理サービスで、アセット(ドキュメント、ソースコード、バイナリファイルなど)をクラウド上に非公開で保存と管理するために使用できます。
「AWS CodePipeline」— AWS CodePipeline は、ソフトウェアのリリースに必要な手順のモデル化、可視化、および自動化に使用できる継続的な配信サービスです。
「Amazon ECS」— Amazon Elastic Container Service (Amazon ECS) は、クラスターでコンテナの実行、停止、管理に使用される、高度にスケーラブルで高速のコンテナ管理サービスです。
「Amazon ECR」— Amazon Elastic Container Registry (Amazon ECR) は、セキュリティ、スケーラビリティ、信頼性を備えた AWS マネージドコンテナイメージレジストリサービスです。
「Amazon EKS」— Amazon Elastic Kubernetes Service (Amazon EKS) は、独自の Kubernetes コントロールプレーンやノードをインストール、運用、保守することなく、AWS 上で Kubernetes を実行するために使用できるマネージドサービスです。
「AWS Fargate」— AWS Fargate は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのサーバーやクラスタを管理することなくコンテナを実行するために、Amazon ECS で使用できる技術です。Fargateを使用すると、コンテナを実行するために仮想マシンのクラスターをプロビジョニング、設定、スケールする必要がありません。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーションサーバーにアクセスするためのシークレットを作成します。 | ワーカーマシンからリモートでアプリケーションサーバーにアクセスするには、AWS Secrets Manager でシークレットを作成します。シークレットには、SSH プライベートキー、または証明書と SSH プライベートキーを使用できます。詳細については、「AWS App2Container シークレットの管理」を参照してください。 | DevOps、開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
tar ファイルをインストールします。 |
| DevOps、開発者 |
AWS CLI をインストールします。 | Amazon コマンドラインインターフェイス (CLI) をインストールするには、
| DevOps、開発者 |
App2 コンテナをインストールします。 | 以下の コマンドを実行します。
| DevOps、開発者 |
プロファイルを設定します。 | AWS のデフォルトプロファイルを設定するには、 名前付きの AWS デフォルトプロファイルを設定するには、 | DevOps、開発者 |
Docker をインストールします。 | 以下のコマンドを実行します。
| |
App2 コンテナを初期化します。 | App2Container を初期化するには、次の情報が必要です。
| DevOps、開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーションサーバーに App2Container コマンドをリモート接続して実行するようにワーカーマシンを設定します。 | ワーカーマシンを設定するには、以下の情報が必要です。
| DevOps、開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
オンプレミスの Java アプリケーションをご覧ください。 | アプリケーションサーバーで実行されているすべてのアプリケーションをリモートで検出するには、次のコマンドを実行します。
このコマンドは、 | 開発者、DevOps |
検出されたアプリケーションを分析します。 | インベントリ段階で取得した application-id を使用して各アプリケーションをリモート分析するには、以下のコマンドを実行します。
これにより、ワークスペースの場所に | 開発者、DevOps |
分析したアプリケーションを抽出します。 | 分析したアプリケーションのアプリケーションアーカイブを生成するには、次のコマンドをリモートで実行します。これにより、ワークスペースの場所に tar バンドルを生成します。
抽出されたアーティファクトはローカルワーカーマシン上で生成できます。 | 開発者、DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
抽出したアーティファクトをコンテナ化する。 | 次のコマンドを実行して、前のステップで抽出したアーティファクトをコンテナ化します。
| 開発者、DevOps |
ターゲットを確定する。 | ターゲットを確定するには、 | 開発者、DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
ワーカーマシンに AWS デプロイアーティファクトを生成します。 | デプロイメントアーティファクトを生成するには、以下のコマンドを実行します。
これにより、ワークスペースに | DevOps |
アーティファクトをプロビジョニングします。 | 生成されたアーティファクトをさらにプロビジョニングするには、次のコマンドを実行して AWS CloudFormation テンプレートをデプロイします。
| DevOps |
パイプラインを生成する。 | 前のストーリーで作成した | DevOps |