Amazon ECS デベロッパーツールの概要 - Amazon Elastic Container Service

Amazon ECS デベロッパーツールの概要

Amazon ECS は、大企業またはスタートアップ企業であるかにかかわらず、コンテナを迅速に稼働させるのに役立つさまざまなツールを提供します。専門知識のレベルは関係ありません。次の方法で Amazon ECS を使用できます。

  • AWS Management Console を使用して、コンテナアプリケーションおよびサービスについて、学習、開発、管理、視覚化します。

  • AWS Command Line InterfaceAWS SDKまたは ECS API を使用して、プログラミングまたはスクリプトにより、自動化されたデプロイで Amazon ECS リソースに対して特定のアクションを実行します。

  • AWS CloudFormation を使用して、自動デプロイにより、環境内のすべての AWS リソースを定義および管理します。

  • 包括的な AWS Copilot CLI エンドツーエンドのデベロッパーワークフローを使用して、インフラストラクチャの AWS ベストプラクティスに準拠したコンテナアプリケーションを作成、リリース、運用します。

  • 希望するプログラミング言語を使用して、AWS CDK でインフラストラクチャまたはアーキテクチャをコードとして定義します。

  • コンテナのAWS App2Container統合移植性とツールエコシステムを使用して、オンプレミス、Amazon EC2 インスタンス、またはその両方でホストされるアプリケーションをコンテナ化します。

  • Amazon ECS CLI で Docker Compose ファイル形式を使用して、アプリケーションを Amazon ECS にデプロイするか、Amazon ECS で実行されているコンテナを使ってローカルコンテナをテストします。

  • Docker Desktop の Amazon ECS を使用して、Docker Desktop の Amazon ECS との統合からコンテナを起動します。

AWS Management Console

AWS Management Consoleは、Amazon ECS リソースを管理するためのブラウザベースのインターフェイスです。コンソールには、サービスの概要が視覚的に表示されるため、追加のツールを使用しなくても、Amazon ECS の特徴と機能を簡単に探索できます。コンソールの使用について説明した、関連するチュートリアルが多数用意されています。

コンソールに関するチュートリアルについては、「Amazon ECS のリソースの作成および使用方法について説明します。」を参照してください。

アクションが成功するかどうかについてすぐに視覚的なフィードバックがもたらされるため、多くのお客様はコンソールを使用することを好みます。AWS Management Consoleに慣れているAWSお客様は、ロードバランサーや Amazon EC2 インスタンスなどの関連リソースを簡単に管理できます。

AWS Management Console から始めます。

AWS Command Line Interface

AWS Command Line Interface (AWS CLI) は、AWS サービスを管理するために使用できる統合ツールです。この 1 つのツールだけでは、複数の AWS サービスを制御し、スクリプトを使用してこれらのサービスを自動化することができます。AWS CLIのAmazon ECS コマンドは、Amazon ECS API を反映しています。

AWS には、AWS Command Line Interface (AWS CLI) とAWS Tools for Windows PowerShellという 2 セットのコマンドラインツールが用意されています。詳細については、AWS Command Line InterfaceユーザーガイドおよびAWS Tools for Windows PowerShellユーザーガイドを参照してください。

AWS CLI は、スクリプト作成やコマンドラインツールとのインターフェイスを好みかつ使い慣れており、Amazon ECS リソースに対して実行するアクションを正確に把握しているお客様に適しています。AWS CLI は、Amazon ECS API に詳しくなりたいお客様にも役立ちます。お客様は、AWS CLI を使用して、Amazon ECS リソースでコマンドラインインターフェイスから直接作成、読み取り、更新、削除などの多数の操作を実行できます。

Amazon ECS API および対応する CLI コマンドに詳しくなり、自動スクリプトを作成し、Amazon ECS リソースに対して特定のアクションを実行したい場合は、AWS CLI を使用します。

AWS CloudFormation

AWS CloudFormation と Amazon ECS の Terraform は両方とも、Infrastructure as Code を定義するための強力な方法になります。実行中のテンプレートまたは AWS CloudFormation スタックのバージョンをいつでも簡単に追跡し、必要に応じて以前のバージョンにロールバックできます。インフラストラクチャとアプリケーションのデプロイは、同じ自動化された方法で実行できます。この柔軟性と自動化により、AWS CloudFormation と Terraform は継続的なデリバリーパイプラインから Amazon ECS へワークロードをデプロイするための 2 つの一般的なフォーマットになります。

AWS CloudFormation の詳細については、「AWS CloudFormation を使用した Amazon ECS リソースの作成」を参照してください。

Amazon ECS でインフラストラクチャのデプロイとアプリケーションを自動化し、環境内のすべての AWS リソースを明示的に定義および管理する場合は、AWS CloudFormation または Terraform を使用します。

AWS Copilot CLI

AWS Copilot CLI (コマンドラインインターフェイス) は、Amazon ECS 上のコンテナや環境にパッケージ化されたアプリケーションのデプロイと操作をソースコードから直接行えるようにする包括的なツールです。AWS Copilot を使用すると、AWSと Amazon ECS 要素(Application Load Balancer、パブリックサブネット、タスク、サービス、クラスターなど)を理解しなくても、これらの操作を実行できます。AWSユーザーに代わって Copilot が作成するAWSリソースは、ロードバランサーウェブサービスやバックエンドサービスなどの独善的なサービスパターンから、コンテナ化されたアプリケーションが即時に本番稼働できる環境を提供します。AWS CodePipeline パイプラインを使用して、複数の環境、アカウント、またはリージョンにまたがってデプロイできます。それらのすべてが CLI 内で管理できます。AWS Copilot を使用して、ログの表示やサービスの健全性などのオペレータタスクを実行することもできます。AWSCopilot は、クラウドリソースの管理を容易にするオールインワンツールです。これにより、アプリケーションの開発と管理に集中できます。

詳細については、「AWS Copilot コマンドラインインターフェイスを使用した Amazon ECS リソースの作成」を参照してください。

包括的な AWS Copilot エンドツーエンドのデベロッパーワークフローを使用して、インフラストラクチャの AWS ベストプラクティスに準拠したコンテナアプリケーションを作成、リリース、運用します。

AWS CDK

AWS Cloud Development Kit (AWS CDK) は、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースのモデル化とプロビジョニングができる、オープンソースのソフトウェア開発フレームワークです。AWS CDK では、AWS CloudFormation を介し、安全かつ反復可能な方法でリソースのプロビジョニングを行います。CDK を使用すると、アプリケーションの構築に使用した言語と同じ言語を用いて、より少ないコード行で環境を生成できます。Amazon ECS は、ecs-patterns と呼ばれる CDK のモジュールを提供します。これにより、共通のアーキテクチャが作成されます。使用可能なパターンは ApplicationLoadBalancedFargateService() です。このパターンはクラスター、タスク定義、AWS Fargate で負荷分散された Amazon ECS サービスを実行するための追加リソースを作成します。

詳細については、「AWS CDK を使用した Amazon ECS リソースの作成」を参照してください。

希望するプログラミング言語のコードとしてインフラストラクチャまたはアーキテクチャを定義する場合は、AWS CDK を使用します。例えば、アプリケーションの作成に使用するのと同じ言語を使用できます。

AWS App2Container

企業のお客様は、オンプレミス、EC2 インスタンス、またはその両方でホストされているアプリケーションを既に持っている場合があります。そのようなお客様は、特に Amazon ECS 上のコンテナの移植性とツーリングエコシステムに特に興味があり、最初にコンテナ化する必要があります。AWSApp2Container により、これが可能になります。App2Container (A2C) は、.NET および Java アプリケーションをコンテナ化されたアプリケーションに最新化するためのコマンドラインツールです。A2C は、仮想マシン、オンプレミス、またはクラウドで実行されているすべてのアプリケーションのインベントリを分析および構築します。コンテナ化するアプリケーションを選択すると、A2C はアプリケーションアーティファクトをパッケージ化し、コンテナイメージへの依存関係を識別します。次に、ネットワークポートを設定し、Amazon ECS タスクを生成します。最後に、必要に応じてデプロイまたは変更できる CloudFormation テンプレートが作成されます。

詳細については、「AWS App2Container の開始方法」を参照してください。

オンプレミス、Amazon EC2 インスタンス、またはその両方でホストされているアプリケーションがある場合は、App2Container を使用します。

Amazon ECS CLI

Amazon ECS CLI を使用すると、Amazon ECS と AWS Fargate での、Docker Compose ファイル形式を使用したアプリケーションの実行が可能になります。Amazon ECR を使用して、リソースのプロビジョニング、イメージのプッシュとプルを迅速に行い、Amazon ECS または AWS Fargate で実行中のアプリケーションを監視することができます。また、ローカルで実行されているコンテナと、クラウド内のコンテナを CLI 内でテストすることもできます。

詳細については、「Amazon ECS コマンドラインインターフェイスの使用開始」を参照してください。

Compose アプリケーションがあり、それを Amazon ECS へデプロイする場合、またはクラウドの Amazon ECS で実行されているコンテナを使用してローカルコンテナをテストする場合は、ECS CLI を使用します。

Docker Desktop の Amazon ECS との統合

AWS と Docker は共同で、Amazon ECS でのコンテナのデプロイと管理を Docker ツールを使用して直接行える、簡素化されたデベロッパーエクスペリエンスを構築しました。これで、Docker Desktop と Docker Compose を使用してコンテナをローカルで構築およびテストした後、Fargate. の Amazon ECS にコンテナをデプロイできるようになります。Amazon ECSと Docker 統合を開始するには、Docker Desktop をダウンロードし、オプションで Docker ID にサインアップします。詳細については、「Docker Desktop」と「Docker ID サインアップ」を参照してください。

コンテナの初心者は、コンテナについて学び始めるのによく Docker CLI や Docker Compose などの Docker ツールを使用しています。これにより、Amazon ECS 用の Docker Compose CLIプラグインを使用することが、ローカルでテストした後に AWS でコンテナを実行するための次のステップになります。Docker には、Amazon ECS にコンテナをデプロイするためのチュートリアルが用意されています。詳細については、「Docker Compose CLI - Amazon ECS」を参照してください。

サービス検出、負荷分散、その他の AWS リソースなどの追加 Amazon ECS 機能を利用して、Docker Desktop のアプリケーションで使用することができます。

Amazon ECS 用の Docker Compose CLI プラグインを GitHub から直接ダウンロードすることもできます。詳細については、GitHub 上の「Amazon ECS 用の Docker Compose CLI プラグイン」を参照してください。

AWS SDK

AWS SDK を使用して、さまざまなプログラミング言語の Amazon ECS リソースと操作を管理することもできます。SDK には、次のリストに示すタスクを含むタスクの処理に役立つモジュールが用意されています。

  • サービスリクエストに暗号署名する

  • リクエストを再試行する

  • エラーレスポンスの処理をする

使用できる SDK の詳細については、「Amazon Web Services のツール」を参照してください。

[概要]

選択するオプションが数多く用意されており、最適なオプションを選択することができます。次のオプションも考慮してください。

  • 視覚化指向の場合は、AWS Management Console を使用してコンテナを視覚的に作成および操作できます。

  • CLI を希望する場合は、AWS Copilot または AWS CLI の使用を検討してください。または、Docker エコシステムを希望する場合は、Docker CLI 内から AWS へデプロイする ECS の機能を利用できます。これらのリソースのデプロイ後は、CLI またはコンソールを使用して視覚的に管理し続けることができます。

  • デベロッパーの場合は、AWS CDK を使用して、アプリケーションと同じ言語でインフラストラクチャを定義できます。CDK と AWS Copilot を使用して CloudFormation テンプレートにエクスポートできます。CloudFormation テンプレートでは、スクリプトや、AWS CodePipeline などの CI/CD パイプラインを使用して、詳細な設定の変更、その他の AWS リソースの追加、デプロイの自動化を行うことができます。

AWS CLI、SDK、または ECS API は、ECS リソースに対するアクションを自動化するための便利なツールで、デプロイに最適です。AWS CloudFormation を使用してアプリケーションをデプロイするには、さまざまなプログラミング言語または単純なテキストファイルを使用して、アプリケーションに必要なすべてのリソースをモデル化およびプロビジョニングできます。その後、自動化された安全な方法で、複数のリージョンとアカウントにアプリケーションをデプロイできます。例えば、ECS クラスター、サービス、タスク定義、またはキャパシティープロバイダーをファイル内のコードとして定義し、AWS CLI CloudFormation コマンドを使用してデプロイできます。

オペレーションタスクを実行するには、AWS CLI、SDK、または ECS API を使用して、プログラムでリソースを表示および管理できます。describe-taskslist-services などのコマンドにより、最新のメタデータまたはすべてのリソースのリストを表示します。デプロイと同様に、お客様は自動化を記述できます。これには、予期せず停止したリソースの検出時に修正アクションを提供する update-service などのコマンドが含まれます。AWS Copilot を使用してサービスを操作することもできます。copilot svc logs または copilot app show のようなコマンドにより、各マイクロサービス、またはアプリケーション全体についての詳細が分かります。

お客様は、このドキュメントに記載されている使用可能なツールを使用して、さまざま組み合わせて使用できます。ECS ツーリングは、特定のツールから、変化するニーズに合う他のツールに乗り換えるためのさまざまなパスを提供します。例えば、リソースをより細かく制御したり、必要に応じて自動化を強化したりできます。ECS はまた、幅広いニーズと専門知識のレベルに応じた幅広いツールを提供しています。