翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECRと AWS Fargate ECSを使用して Amazon に Java マイクロサービスをデプロイする
作成者: Vijay Thompson (AWS) と Sandeep Bondugula (AWS)
環境:PoC またはパイロット | ソース: コンテナ | ターゲット: Amazon ECS |
R タイプ:該当なし | テクノロジー: コンテナとマイクロサービス、ウェブとモバイルアプリ | AWS サービス: Amazon ECS |
[概要]
このパターンは、Amazon Elastic Container Service (Amazon ) でコンテナ化されたアプリケーションとして Java マイクロサービスをデプロイするステップをガイドしますECS。このパターンでは、Amazon Elastic Container Registry (Amazon ECR) を使用してコンテナを管理し、AWSFargate を使用してコンテナを実行します。
前提条件と制限
前提条件
Docker のオンプレミスで実行する既存の Java マイクロサービス アプリケーション
アクティブなAWSアカウント
Amazon ECR、Amazon ECS、AWSFargate、および AWS コマンドラインインターフェイス (AWS CLI) に精通していること
Java および Docker ソフトウェアに熟知していること
製品バージョン
AWS CLI バージョン 1.7 以降
アーキテクチャ
ソーステクノロジースタック
Java マイクロサービス (たとえば、pring Boot を使用して開発され)、オンプレミスでデプロイされたもの
Docker
ソースアーキテクチャ
ターゲットテクノロジースタック
Amazon ECR
Amazon ECS
AWS Fargate
ターゲット アーキテクチャ
ツール
ツール
Amazon Elastic Container Registry (Amazon ECR) は、開発者が Docker コンテナイメージを簡単に保存、管理、デプロイできるフルマネージドレジストリです。Amazon ECRは Amazon と統合されておりECS、ワークフローを簡素化します development-to-production。Amazon は、高可用性でスケーラブルなアーキテクチャでイメージをECRホストするため、アプリケーションにコンテナを確実にデプロイできます。AWS Identity and Access Management (IAM) との統合により、各リポジトリのリソースレベルの制御が可能になります。
Amazon Elastic Container Service (Amazon ECS) は、Docker コンテナをサポートし、コンテナ化されたアプリケーションを で簡単に実行およびスケーリングできる、高度にスケーラブルで高性能なコンテナオーケストレーションサービスですAWS。Amazon ECS では、独自のコンテナオーケストレーションソフトウェアをインストールして運用したり、仮想マシンのクラスターを管理してスケーリングしたり、それらの仮想マシンでコンテナをスケジュールしたりする必要はありません。
AWS Fargate は Amazon のコンピューティングエンジンECSであり、サーバーやクラスターを管理することなくコンテナを実行できます。AWS Fargate を使用すると、コンテナを実行するために仮想マシンのクラスターをプロビジョニング、設定、スケーリングする必要がなくなります。これにより、サーバータイプの選択、クラスターをスケールするタイミングの決定、クラスターのパッキングの最適化を行う必要がなくなります。
Docker
は、コンテナと呼ばれるパッケージでアプリケーションを構築、テスト、配信できるプラットフォームです。
コード
以下は、使用される Java Development Kit (JDK) バージョン、Java アーカイブ (JAR) ファイルが存在する場所、公開されるポート番号、およびアプリケーションのエントリポイント DockerFile を指定します。
FROM openjdk:8 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
リポジトリを作成します。 | AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/ecr/リポジトリ で Amazon | 開発者、システム管理者 |
プロジェクトをアップロードします。 | リポジトリを開き、[プッシュコマンドの表示] を選択します。表示された手順に従って、プロジェクトをアップロードします。(これらのステップは、AWSCLIバージョン 1.7 以降を使用する場合にのみ機能します。) アップロードが完了したら、 リポジトリにビルドURLの をコピーします。これは、Amazon でコンテナを作成するURLときに使用しますECS。 | 開発者、システム管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
タスク定義を作成します。 | Amazon で Docker コンテナを実行するには、タスク定義ECSが必要です。で Amazon ECSコンソールを開きhttps://console.aws.amazon.com/ecs/ | 開発者、システム管理者 |
起動タイプを選択する | 起動タイプとして Fargate を選択します。 | 開発者、システム管理者 |
タスクを設定します。 | タスク名を定義し、適切な量のタスクメモリと を使用してアプリケーションを設定しますCPU。 | 開発者、システム管理者 |
コンテナを定義します。 | コンテナを追加し、名前、Amazon ECRリポジトリURLの 、メモリ制限、ポートマッピングを指定します。ポート 8080 と 80 はポートマッピング用に設定されています。アプリケーションの要件に応じて、残りの設定を行います。 | 開発者、システム管理者 |
タスクを作成します。 | タスクとコンテナの設定が完了したら、タスクを作成します。詳細な手順については、[関連リソース] セクションのリンクを参照してください。 | 開発者、システム管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
クラスターを作成または選択します。 | Amazon ECSクラスターは、タスクまたはサービスの論理グループを提供します。既存のクラスターを使用することも、新しいクラスターを作成することもできます。新しいクラスターを作成する場合は、必要に応じてクラスターのタイプを選択します。この例では、ネットワーキングクラスターを選択ています。クラスターの名前を指定し、Fargate タスクに使用する新しい仮想プライベートクラウド (VPC) を作成するかどうかを選択します。 | 開発者、システム管理者 |
サービスを作成します。 | クラスター内で、[サービスを作成] を選択します。 | 開発者、システム管理者 |
起動タイプを選択する | 起動タイプとして Fargate を選択します。 | 開発者、システム管理者 |
タスク定義、リビジョン、プラットフォームバージョンを選択する | 実行するタスク、タスク定義のリビジョン、プラットフォームバージョンを順に選択します。 | 開発者、システム管理者 |
クラスターを選択します。 | ドロップダウンリストから、サービスを作成するクラスターを選択します。 | 開発者、システム管理者 |
サービス名を指定する | 作成するサービスに一意の名前を付けます。 | 開発者、システム管理者 |
タスクの数を指定する | 実行するタスクの数を設定します。2 つ以上のタスクを開始する場合は、ロードバランサーを使用してタスクのバランスを取る必要があります。設定するタスクの最小数は 1 です。 | 開発者、システム管理者 |
正常なパーセンテージの最小値と最大値を設定します。 | アプリケーションの正常パーセンテージの最小値と最大値を設定するか、デフォルトのオプションを受け入れます。 | 開発者、システム管理者 |
デプロイ設定を指定する | 要件に基づいて、デプロイのタイプを選択します。ローリング更新またはブルー/グリーンデプロイを選択できます。 | 開発者、システム管理者 |
クラスター VPC、サブネット、セキュリティグループを設定します。 | クラスター VPC、アプリケーションをデプロイするサブネット、およびセキュリティグループ (HTTP、HTTPS、およびポート 8080) を設定して、インバウンド/アウトバウンド接続へのアクセスを提供します。 | 開発者、システム管理者 |
パブリック IP 設定を設定する | Fargate タスクにパブリック IP アドレスを使用するかどうかに応じて、パブリック IP を有効または無効にします。 | 開発者、システム管理者 |
ロードバランシングを設定します。 | 複数のタスクでサービスを起動する場合は、ロードバランサーを設定します。サービスを起動する前に、ロードバランサーとそのターゲットグループを作成する必要があります。 | 開発者、システム管理者 |
自動スケーリングを設定する | Amazon ECS Service Auto Scaling を使用して、要件に応じて目的のタスク数を増減するようにサービスを設定します。 | 開発者、システム管理者 |
設定を確認し、サービスを作成します。 | サービス設定を確認してから、[サービスの作成] を選択します。 | 開発者、システム管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーションをテストする | タスクのデプロイ時にDNS作成されたパブリックを使用してアプリケーションをテストします。アプリケーションにロードバランサーがある場合は、それを使用してアプリケーションをテストしてから、カットオーバーします。 | 開発者、システム管理者 |
関連リソース
Amazon の Docker の基本 ECS (Amazon ECSドキュメント)
Amazon ECS on AWS Fargate (Amazon ECSドキュメント)
プライベートリポジトリの作成 (Amazon ECRドキュメント)
タスク定義の作成 (Amazon ECSドキュメント)
コンテナ定義 (Amazon ECSドキュメント)
クラスターの作成 (Amazon ECSドキュメント)
基本的なサービスパラメータの設定 (Amazon ECSドキュメント)
ネットワークの設定 (Amazon ECSドキュメント)
ロードバランサーを使用するようにサービスを設定する (Amazon ECSドキュメント)
Service Auto Scaling を使用するようにサービスを設定する (Amazon ECSドキュメント)