翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Fargate ECSを使用して Amazon に Java マイクロサービスをデプロイする
作成者: Vijay Thompson (AWS) と Sandeep Bondugula (AWS)
環境:PoC またはパイロット | ソース: コンテナ | ターゲット: Amazon ECS |
R タイプ:該当なし | テクノロジー: コンテナとマイクロサービス、ウェブとモバイルアプリ | AWS サービス: Amazon ECS |
[概要]
このパターンは、AWSFargate を使用して 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 が必要な場合は、仮想プライベートクラウド (VPC) RDS (オプション)
アーキテクチャ
ソーステクノロジースタック
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 Development Kit (JDK) バージョン、Java アーカイブ (JAR) ファイルが存在する場所、公開されるポート番号、およびアプリケーションのエントリポイントを指定します。
FROM openjdk:11 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
タスク定義を作成します。 | Amazon で Docker コンテナを実行するには、タスク定義ECSが必要です。で 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 システム管理者、アプリケーション開発者 |
関連リソース
Docker Basics for Amazon ECS (Amazon ECSドキュメント)
Amazon ECS on AWS Fargate (Amazon ECSドキュメント)
タスク定義の作成 (Amazon ECSドキュメント)
クラスターの作成 (Amazon ECSドキュメント)
基本サービスパラメータの設定 (Amazon ECSドキュメント)
ネットワークの設定 (Amazon ECSドキュメント)
Amazon での Java マイクロサービスのデプロイ ECS
(ブログ記事)