Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

AWS App2Container を使用したオンプレミスの Java プリケーションの AWS への移行 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 サーバー上で実行されている Java アプリケーション

ターゲットテクノロジースタック

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodeDeploy

  • AWS CodePipeline

  • Amazon Elastic Container Registry

  • AWS Fargate

ターゲット アーキテクチャ

AWS でのオンプレミス Java アプリケーションのアーキテクチャ。

ツール

ツール

  • 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、開発者

認証情報の設定

タスク説明必要なスキル

アプリケーションサーバーにアクセスするためのシークレットを作成します。

ワーカーマシンからリモートでアプリケーションサーバーにアクセスするには、AWS Secrets Manager でシークレットを作成します。シークレットには、SSH プライベートキー、または証明書と SSH プライベートキーを使用できます。詳細については、「AWS App2Container シークレットの管理」を参照してください。

DevOps、開発者
タスク説明必要なスキル

tar ファイルをインストールします。

sudo yum install -y tar を実行します。

DevOps、開発者

AWS CLI をインストールします。

Amazon コマンドラインインターフェイス (CLI) をインストールするには、curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" を実行します。 

awscliv2.zip を解凍します。

sudo ./aws/install を実行します。

DevOps、開発者

App2 コンテナをインストールします。

以下の コマンドを実行します。

curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz

sudo tar xvf AWSApp2Container-installer-linux.tar.gz

sudo ./install.sh

DevOps、開発者

プロファイルを設定します。

AWS のデフォルトプロファイルを設定するには、sudo aws configure を実行します。

名前付きの AWS デフォルトプロファイルを設定するには、sudo aws configure --profile <profile name> を実行します。

DevOps、開発者

Docker をインストールします。

以下のコマンドを実行します。

sudo yum install -y docker

sudo systemctl enable docker & sudo systemctl restart docker

App2 コンテナを初期化します。

App2Container を初期化するには、次の情報が必要です。

  • workspace:アプリケーションのコンテナ化アーティファクトを保存します。少なくとも 20 GB の空きディスク容量があるディレクトリパスを指定することをお勧めします。

  • awsProfile:サーバに設定されている AWS プロファイル。これは、Amazon S3 にアーティファクトをアップロードし、containerize コマンドを実行し、Amazon ECS または Amazon EKS にデプロイするための AWS アーティファクトを生成するために必要です。

  • s3Bucket: AWS Artifact を抽出して保存する方法。

  • metricsReportPermission:報告されたメトリックスを収集して保存する。

  • dockerContentTrust: Docker イメージに署名します。

sudo app2container init を実行します。

DevOps、開発者

ワーカーマシンのセットアップ

タスク説明必要なスキル

tar ファイルをインストールします。

sudo yum install -y tar を実行します。

DevOps、開発者

AWS CLI をインストールします。

Amazon コマンドラインインターフェイス (CLI) をインストールするには、curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" を実行します。 

awscliv2.zip を解凍します。

sudo ./aws/install を実行します。

DevOps、開発者

App2 コンテナをインストールします。

以下の コマンドを実行します。

curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz

sudo tar xvf AWSApp2Container-installer-linux.tar.gz

sudo ./install.sh

DevOps、開発者

プロファイルを設定します。

AWS のデフォルトプロファイルを設定するには、sudo aws configure を実行します。

名前付きの AWS デフォルトプロファイルを設定するには、sudo aws configure --profile <profile name> を実行します。

DevOps、開発者

Docker をインストールします。

以下のコマンドを実行します。

sudo yum install -y docker

sudo systemctl enable docker & sudo systemctl restart docker

App2 コンテナを初期化します。

App2Container を初期化するには、次の情報が必要です。

  • workspace:アプリケーションのコンテナ化アーティファクトを保存します。少なくとも 20 GB の空きディスク容量があるディレクトリパスを指定することをお勧めします。

  • awsProfile:サーバに設定されている AWS プロファイル。これは、Amazon S3 にアーティファクトをアップロードし、containerize コマンドを実行し、Amazon ECS または Amazon EKS にデプロイするための AWS アーティファクトを生成するために必要です。

  • s3Bucket: AWS Artifact を抽出して保存する方法。

  • metricsReportPermission:報告されたメトリックスを収集して保存する。

  • dockerContentTrust: Docker イメージに署名します。

sudo app2container init を実行します。

DevOps、開発者
タスク説明必要なスキル

アプリケーションサーバーに App2Container コマンドをリモート接続して実行するようにワーカーマシンを設定します。

ワーカーマシンを設定するには、以下の情報が必要です。

  • Server FQDN :アプリケーションサーバーの完全修飾ドメイン名。

  • Server IP address :アプリケーションサーバーの IP アドレス。FQDN または IP アドレスのどちらかで十分です。

  • SecretARN: Secrets Manager に保存されている、アプリケーションサーバーへの接続に使用されるシークレットの Amazon リソースネーム (ARN)。

  • AuthMethod: key または cert 認証方法。

sudo app2container remote configure を実行します。

DevOps、開発者

ワーカーマシンの設定

タスク説明必要なスキル

アプリケーションサーバーに App2Container コマンドをリモート接続して実行するようにワーカーマシンを設定します。

ワーカーマシンを設定するには、以下の情報が必要です。

  • Server FQDN :アプリケーションサーバーの完全修飾ドメイン名。

  • Server IP address :アプリケーションサーバーの IP アドレス。FQDN または IP アドレスのどちらかで十分です。

  • SecretARN: Secrets Manager に保存されている、アプリケーションサーバーへの接続に使用されるシークレットの Amazon リソースネーム (ARN)。

  • AuthMethod: key または cert 認証方法。

sudo app2container remote configure を実行します。

DevOps、開発者
タスク説明必要なスキル

オンプレミスの Java アプリケーションをご覧ください。

アプリケーションサーバーで実行されているすべてのアプリケーションをリモートで検出するには、次のコマンドを実行します。

sudo app2container remote inventory --target <FQDN/IP of App server>

このコマンドは、inventory.json にデプロイされたアプリケーションのリストを生成します。

開発者、DevOps

検出されたアプリケーションを分析します。

インベントリ段階で取得した application-id を使用して各アプリケーションをリモート分析するには、以下のコマンドを実行します。

sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>

これにより、ワークスペースの場所に analysis.json ファイルが生成されます。このファイルが生成されたら、必要に応じてコンテナ化パラメータを変更できます。

開発者、DevOps

分析したアプリケーションを抽出します。

分析したアプリケーションのアプリケーションアーカイブを生成するには、次のコマンドをリモートで実行します。これにより、ワークスペースの場所に tar バンドルを生成します。

sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>

抽出されたアーティファクトはローカルワーカーマシン上で生成できます。

開発者、DevOps

ワーカーマシン上のアプリケーションの検出、分析、抽出

タスク説明必要なスキル

オンプレミスの Java アプリケーションをご覧ください。

アプリケーションサーバーで実行されているすべてのアプリケーションをリモートで検出するには、次のコマンドを実行します。

sudo app2container remote inventory --target <FQDN/IP of App server>

このコマンドは、inventory.json にデプロイされたアプリケーションのリストを生成します。

開発者、DevOps

検出されたアプリケーションを分析します。

インベントリ段階で取得した application-id を使用して各アプリケーションをリモート分析するには、以下のコマンドを実行します。

sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>

これにより、ワークスペースの場所に analysis.json ファイルが生成されます。このファイルが生成されたら、必要に応じてコンテナ化パラメータを変更できます。

開発者、DevOps

分析したアプリケーションを抽出します。

分析したアプリケーションのアプリケーションアーカイブを生成するには、次のコマンドをリモートで実行します。これにより、ワークスペースの場所に tar バンドルを生成します。

sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>

抽出されたアーティファクトはローカルワーカーマシン上で生成できます。

開発者、DevOps
タスク説明必要なスキル

抽出したアーティファクトをコンテナ化する。

次のコマンドを実行して、前のステップで抽出したアーティファクトをコンテナ化します。

sudo app2container containerize --input-archive <tar bundle location on worker machine>

開発者、DevOps

ターゲットを確定する。

ターゲットを確定するには、containerize コマンドの実行時に作成される deployment.json を開きます。AWS Fargate をターゲットとして指定するには、createEcsArtifactstrue に設定します。Amazon EKS をターゲットとして設定するには、createEksArtifacts を true に設定します。

開発者、DevOps

抽出したアーティファクトをワーカーマシンにコンテナ化します。

タスク説明必要なスキル

抽出したアーティファクトをコンテナ化する。

次のコマンドを実行して、前のステップで抽出したアーティファクトをコンテナ化します。

sudo app2container containerize --input-archive <tar bundle location on worker machine>

開発者、DevOps

ターゲットを確定する。

ターゲットを確定するには、containerize コマンドの実行時に作成される deployment.json を開きます。AWS Fargate をターゲットとして指定するには、createEcsArtifactstrue に設定します。Amazon EKS をターゲットとして設定するには、createEksArtifacts を true に設定します。

開発者、DevOps
タスク説明必要なスキル

ワーカーマシンに AWS デプロイアーティファクトを生成します。

デプロイメントアーティファクトを生成するには、以下のコマンドを実行します。

sudo app2container generate app-deployment --application-id <application id>

これにより、ワークスペースに ecs-master.yml AWS CloudFormation テンプレートが生成されます。

DevOps

アーティファクトをプロビジョニングします。

生成されたアーティファクトをさらにプロビジョニングするには、次のコマンドを実行して AWS CloudFormation テンプレートをデプロイします。

aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS

DevOps

パイプラインを生成する。

前のストーリーで作成した pipeline.json を、必要に応じて変更します。次に、generate pipeline コマンドを実行してパイプラインデプロイアーティファクトを生成します。

DevOps

AWS Artifact の生成とプロビジョニング

タスク説明必要なスキル

ワーカーマシンに AWS デプロイアーティファクトを生成します。

デプロイメントアーティファクトを生成するには、以下のコマンドを実行します。

sudo app2container generate app-deployment --application-id <application id>

これにより、ワークスペースに ecs-master.yml AWS CloudFormation テンプレートが生成されます。

DevOps

アーティファクトをプロビジョニングします。

生成されたアーティファクトをさらにプロビジョニングするには、次のコマンドを実行して AWS CloudFormation テンプレートをデプロイします。

aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS

DevOps

パイプラインを生成する。

前のストーリーで作成した pipeline.json を、必要に応じて変更します。次に、generate pipeline コマンドを実行してパイプラインデプロイアーティファクトを生成します。

DevOps

関連リソース

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.