Amazon ECRと AWS Fargate ECSを使用して Amazon に Java マイクロサービスをデプロイする - AWS 規範ガイダンス

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

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 に Java マイクロサービスをデプロイするためのソースアーキテクチャ ECS

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

  • Amazon ECR

  • Amazon ECS

  • AWS Fargate

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

Amazon に Java マイクロサービスをデプロイするためのターゲットアーキテクチャ ECS

ツール

ツール

  • 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 ECRコンソールを開きます。プライベートリポジトリを作成します。手順については、Amazon ECRドキュメントの「プライベートリポジトリの作成」を参照してください。

開発者、システム管理者

プロジェクトをアップロードします。

リポジトリを開き、[プッシュコマンドの表示] を選択します。表示された手順に従って、プロジェクトをアップロードします。(これらのステップは、AWSCLIバージョン 1.7 以降を使用する場合にのみ機能します。) アップロードが完了したら、 リポジトリにビルドURLの をコピーします。これは、Amazon でコンテナを作成するURLときに使用しますECS。

開発者、システム管理者
タスク説明必要なスキル

タスク定義を作成します。

Amazon で Docker コンテナを実行するには、タスク定義ECSが必要です。で Amazon ECSコンソールを開きhttps://console.aws.amazon.com/ecs/タスク定義 を選択し、新しいタスク定義を作成します。詳細については、Amazon 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作成されたパブリックを使用してアプリケーションをテストします。アプリケーションにロードバランサーがある場合は、それを使用してアプリケーションをテストしてから、カットオーバーします。

開発者、システム管理者

関連リソース