翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイする
作成者: Vijay Thompson (AWS)、Sandeep Bondugula (AWS)
概要
このパターンは、AWS Fargate を使用して Amazon Elastic Container Service (Amazon ECS) 上にコンテナ化された Java マイクロサービスをデプロイするためのガイダンスを提供します。このパターンでは、コンテナ管理に Amazon Elastic Container Registry (Amazon ECR) は使用せず、代わりに、Docker イメージは Docker ハブからプルされます。
前提条件と制限
前提条件
Docker ハブにある既存の Java マイクロサービスアプリケーション
パブリック Docker リポジトリ
アクティブなAWS アカウント
Amazon ECS や Fargate などの AWS サービスに精通していること
Docker、Java、Spring Boot フレームワーク
Amazon Relational Database Service (Amazon RDS) が実行中 (オプション)
アプリケーションで Amazon RDS が必要な場合の仮想プライベートクラウド (VPC) (オプション)
アーキテクチャ
ソーステクノロジースタック
Java マイクロサービス (たとえば、Spring Boot で実装されたもの) と Docker にデプロイされたもの
ソースアーキテクチャ

ターゲットテクノロジースタック
Fargate を使用して各マイクロサービスをホストする Amazon ECS クラスター
Amazon ECS クラスターと関連するセキュリティグループをホストする VPC ネットワーク
Fargate を使用してコンテナを起動する各マイクロサービスのクラスター/タスク定義
ターゲットアーキテクチャ

ツール
ツール
Amazon ECSでは、独自のコンテナオーケストレーションソフトウェアのインストールと運用、仮想マシンのクラスターの管理とスケーリング、またはそれらの仮想マシン上でコンテナをスケジュールする必要がなくなります。
AWS Fargate を使用すると、サーバーまたは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを管理しないでコンテナを実行する上で役立ちます。Amazon Elastic Container Service (Amazon ECS) と合わせて使用されます。
Docker
は、アプリケーションを素早くビルド、テスト、およびデプロイできるソフトウェアプラットフォームです。Docker は、ライブラリ、システムツール、コード、ランタイムなど、ソフトウェアの実行に必要なものがすべて揃ったコンテナと呼ばれる標準化されたユニットにソフトウェアをパッケージ化します。
Docker コード
次の Dockerfile では、使用する Java 開発キット (JDK) のバージョン、Java アーカイブ (JAR) ファイルが存在する場所、公開されるポート番号、およびアプリケーションのエントリポイントを指定します。
FROM openjdk:11 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
タスク定義を作成します。 | Amazon ECSで Docker コンテナを実行するには、タスク定義が必要です。Amazon ECS コンソール(https://console.aws.amazon.com/ecs/ | AWS システム管理者、アプリ開発者 |
[Launch type(起動タイプ)] を選択します。 | 起動タイプとして、[Fargate] を選択します。 | AWS システム管理者、アプリ開発者 |
タスクを設定します。 | タスク名を定義し、適切な量のタスクメモリと CPU でアプリケーションを設定します。 | AWS システム管理者、アプリ開発者 |
コンテナを定義します。 | コンテナ名を指定します。イメージには、Docker サイト名、リポジトリ名、および Docker イメージのタグ名 ( | AWS システム管理者、アプリ開発者 |
タスクを作成します。 | タスクとコンテナの設定が完了したら、タスクを作成します。詳細な手順については、関連リソースセクションのリンクを参照してください。 | AWS システム管理者、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
クラスターを作成および設定します。 | クラスタータイプとして [Networking only(ネットワーキングのみ)] を選択し、名前を設定してからクラスターを作成、または可能な場合は既存のクラスターを使用します。詳細については、Amazon ECS ドキュメントを参照してください。 | AWS システム管理者、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
タスクを作成します。 | クラスター内で、[Run new task(新しいタスクを実行)] を選択します。 | AWS システム管理者、アプリ開発者 |
[Launch type(起動タイプ)] を選択します。 | 起動タイプとして、[Fargate] を選択します。 | AWS システム管理者、アプリ開発者 |
タスク定義、リビジョン、プラットフォームバージョンを選択します。 | 実行するタスク、タスク定義のリビジョン、プラットフォームバージョンを選択します。 | AWS システム管理者、アプリ開発者 |
クラスターを選択します。 | タスクを実行するクラスターを選択します。 | AWS システム管理者、アプリ開発者 |
タスクの数を指定します。 | 実行するタスクの数を設定します。2 つ以上のタスクで起動する場合、タスク間でトラフィックを分散するロードバランサーが必要です。 | AWS システム管理者、アプリ開発者 |
タスクグループを指定します。 | (オプション) 一連の関連するタスクをタスクグループとして特定するタスクグループ名を指定します。 | AWS システム管理者、アプリ開発者 |
クラスター VPC、サブネット、セキュリティグループを設定します。 | アプリケーションをデプロイする、クラスター VPC とサブネットを設定します。セキュリティグループ (HTTP、HTTPS、ポート 8080) を作成または更新して、インバウンド接続とアウトバウンド接続にアクセスします。 | AWS システム管理者、アプリ開発者 |
パブリック IP 設定を設定します。 | Fargate タスクにパブリック IP アドレスを使用するかどうかに応じて、パブリック IP を有効または無効にします。デフォルトの推奨オプションは、有効です。 | AWS システム管理者、アプリ開発者 |
設定を確認してタスクを作成する | 設定を確認してから、[Run Task(タスク実行)] を選択します。 | AWS システム管理者、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーション URL をコピーします。 | タスクステータスが実行中に更新されたら、タスクを選択します。ネットワーキングセクションで、パブリック IP をコピーします。 | AWS システム管理者、アプリ開発者 |
アプリケーションをテストします。 | ブラウザにパブリック IP を入力してアプリケーションをテストします。 | AWS システム管理者、アプリ開発者 |
関連リソース
Amazon ECS 用 Docker の基本(Amazon ECS ドキュメント)
AWS Fargate 上の Amazon ECS(Amazon ECS ドキュメント)
タスク定義の作成(Amazon ECS ドキュメント)
クラスターの作成(Amazon ECS ドキュメント)
基本的なサービスパラメータの設定(Amazon ECS ドキュメント)
ネットワークの設定(Amazon ECS ドキュメント)