Amazon ECS の開始方法

概要

Amazon Elastic Container Service (ECS) は、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを容易にするフルマネージドコンテナオーケストレーションサービスです。Amazon ECS を初めて使う人も、既にユースケースが決まっている人も、ご自身の道を選び、キュレートされた学習手順に沿って始められます。

電球を持っている男性の写真

パス 1: Amazon ECS 101 の開始方法

この短い動画から始めて、モノリシックな Node.js アプリケーションを Docker コンテナにデプロイし、ダウンタイムなしでアプリケーションをマイクロサービスに分割する方法をご覧ください。

このワークショップでは、Amazon ECS でフロントエンドサービスと複数のバックエンドサービスを開始し、このワークフローを環境にどのように採用できるかを考えます。

次に、Amazon ECS と Amazon Container Registry (Amazon ECR) の主要な概念と、その概念が AWS で Docker 対応アプリケーションをデプロイ、管理、およびスケールするのにどのように役立つかを説明します。 

Amazon ECS では、コンテナ化されたワークロードを AWS 上で簡単に実行およびスケールできます。Amazon ECS を使用してコンテナを実行するためのタスク定義を作成する方法についてご覧ください

このホワイトペーパーでは、AWS におけるコンテナベースアプリケーションのアプリケーションライフサイクル管理、セキュリティ、ソフトウェアのアーキテクチャ設計パターンに関するガイダンスを提供しています。 

この最後のモジュールは、Terraform 中心のデベロッパー向けに設計されています。このワークショップでは、Amazon ECS ブループリントを活用して Amazon ECS 上にさまざまな機能を構築およびデプロイする方法を学びます。

パス 2: Amazon ECS と AWS Fargate を併用して、サーバーレスコンテナでマイクロサービスを実行する

この短い動画から始めて、モノリシックな Node.js アプリケーションを Docker コンテナにデプロイし、ダウンタイムなしでアプリケーションをマイクロサービスに分割する方法をご覧ください。

次に、Docker コンテナ内でシンプルなモノリシックアプリケーションを実行する方法、その同じアプリケーションをマイクロサービスとしてデプロイする方法、ダウンタイムなしでトラフィックをこのマイクロサービスに切り替える方法について説明します

このコースでは、コンテナについて簡単に説明した後、Amazon ECS の機能、利点、ユースケースについて詳しく説明し、デモを行います。

このワークショップでは、Amazon Elastic Container Service でフロントエンドサービスと複数のバックエンドサービスを開始し、このワークフローを環境にどのように採用できるかを考えます。

Amazon ECS と AWS Fargate を使用すると、ユーザーはミドルウェア、Amazon EC2 インスタンス、またはホスト OS を管理する必要がなくなります。Amazon ECS ソリューションブループリントは、すぐに始められ、実践しながら学ぶことができます。ベストプラクティスと適切に設計されたアーキテクチャパターンを体系化し、CI/CD、オブザーバビリティ、セキュリティ、コスト効率に対応するエンドツーエンドのソリューションを提供します。

まとめとして、このコースを受講して、Amazon ECS で実行されているアプリケーションのオブザーバビリティを実現する方法を学びましょう。システムレベルとアプリケーションレベルでメトリクス、ログ、およびトレースを収集する方法を学びます。最後に、これを適用して問題を特定し、修正する方法を学びます。

パス 3: ウェブアプリケーションをスケールして実行する

はじめに、Amazon ECS でスケーリングするためのベストプラクティスとヒントを詳しく説明したこの動画をご覧ください。

次に、Amazon ECS が Amazon EC2 Auto Scaling グループ (ASG) のスケーリングを管理できる ECS クラスター自動スケーリング (CAS) について詳しく説明します。CAS を使用すると、ASG を自動的にスケールするように Amazon ECS を設定して、タスクの実行に集中できます。 

コンテナベースの API のホスティングと公開、および HTTP リクエストのルーティング、自動スケーリング、高可用性、ユーザー認証を場合によりサポートするソリューションの構築方法について詳しく説明します

Amazon ECS で実行されるコンテナ化されたエンタープライズアプリケーションをサポートするインフラストラクチャの選択方法を説明します。このコースでは、アプリケーションに基づいた要件定義、アプリケーションをサポートする最適なアーキテクチャの選択、安全性、パフォーマンス、耐障害性に優れた再利用可能なインフラストラクチャパターンの設計方法を学びます。

このコースでは、Amazon ECS で大規模に実行されているエンタープライズアプリケーションを管理して、迅速かつ安全にスケールインまたはスケールアウトできる環境を構築する方法を学びます。また、アプリケーションスケーリングとインフラストラクチャスケーリングを区別する方法と、テストを実行してアプリケーションのスケーリングに最適なメトリクスを特定する方法についても学びます。

Amazon ECS の内部での仕組みの詳細と、アプリケーションの安全性、パフォーマンス、回復力を確保するためのベストプラクティスを確認するには、Amazon ECS の公式ユーザーガイドと、迅速にスケールするためのベストプラクティスを利用しましょう。

パス 4: Amazon ECS を使用して Amazon EC2 に高度なアプリケーションをデプロイする

このパターンでは、Amazon ECS キャパシティプロバイダーを使用して独自の Amazon EC2 インスタンスを自動的に起動する Amazon ECS クラスターを設定する方法を示しています。この方法では、Amazon ECS クラスターは完全に空の状態で開始し、必要に応じて Amazon EC2 のキャパシティを追加し、クラスター内のすべてのコンテナタスクを停止したときに「ゼロにスケールダウン」できます。

Amazon EC2 でコンテナを実行すると、コンテナを Amazon EC2 ホストに分散する方法や、共有ホストにコンテナをまとめてビンパッキングする方法を最適化して、コストを削減できます。このモジュールでは、特定のタイプのホストをターゲットにしたり、コンテナタスクをホストに配置する方法を制御したりできる配置戦略と制約について詳しく説明します。

スポットフリートでは、クラスターの希望するターゲットキャパシティを設定でき、オプションでフリートに支払う時間あたりの最大金額を設定できます。スポットフリートでは、利用可能なスポットインスタンスタイプから混合インスタンスタイプを起動して、必要な総キャパシティを最小のコストで満たすことで、支出を最適化しようとします。この戦略を Amazon ECS およびコンテナ配置戦略と組み合わせて費用を節約する方法をご覧ください

Amazon EC2 でコンテナを実行する場合、AWS VPC、ブリッジモード、ホストモードの 3 つの主なネットワークアプローチを選択できます。貴社のアプリケーションに理にかなっているのはどちらですか? 以下のリンクをクリックして、最適な選択を行うためにそれぞれの選択肢にどのようなトレードオフが必要かを調べましょう。

ホストモード
ブリッジモード
awsvpc モード

このパターンでは、GPU を搭載した Amazon EC2 インスタンスをデプロイし、Amazon GPU に最適化された AMI を使用して、アタッチされた GPU にコンテナがアクセスできるようにしてコンピューティングのハードウェアアクセラレーションを実現する方法を見ていきます。

GPU は汎用タスク向けに設計されているため、機械学習タスクを高速化するための最も費用対効果の高い手法であるとは限りません。このパターンでは、AWS Inferentia ハードウェアをセットアップして、AWS Deep Learning Container を使用して、モデルのトレーニングと推論を加速する専用ハードウェアを利用する AWS Neuron 駆動環境を、多くの場合 GPU を上回るコスト/パフォーマンス比で稼働させる方法を見ていきます。

コンテナが複数の Amazon EC2 インスタンスで実行されている場合、Amazon EC2 ホストへの更新とパッチをどのように管理しますか? このパターンは、アプリケーションのダウンタイムを避けながら、基盤となるキャパシティにパッチやローリングアップグレードを行う方法を示しています。

Amazon ECS のその他のデジタル学習

AWS は初めてですか、それとも Amazon ECS を初めて使用しますか? このコースを受講して、サービスの基本と機能の概要を把握しましょう。

基本を理解したところで、このコースでは Amazon ECS の基礎と、それが最も適しているアプリケーションパターンの種類について詳しく説明します。

AWS でコンテナを使用する準備はできているが、コンピュートインスタンスを自分で管理したくないとお考えですか? このコースでは、Amazon ECS のサーバーレスコンピューティングである AWS Fargate についてご紹介します。

コンテナとマイクロサービスを効果的に使用するということは、通常、デプロイにイメージレジストリを使用しているということです。このコースでは、Amazon Elastic Container Registry (ECR) をご紹介し、Amazon ECS での使用方法の例を示します。

Amazon ECS ベースのサービスのデプロイとパフォーマンスをトラブルシューティングする方法と、アプリケーションが期待どおりに動作し続けるために必要なログとデータを取得する方法の詳細をご覧ください

UI の枠を超え、プログラムをより使って Amazon ECS を利用し始める準備はできていますか? このコースでは、アプリケーションとサービスをより反復可能で、調整され、オーケストレーションされた方法でデプロイするためのツールである AWS Copilot をご紹介します。

エンタープライズアプリケーションには、設計、可用性、およびスケーラビリティに関する独自の特別な要件があります。このコースでは、環境に適したテクノロジーを選択する方法と、ネットワーク、タスク間通信、およびセキュリティのベストプラクティスについて説明します。

アプリケーションを大規模にデプロイして管理するには、機能、ツール、文化、規律の微妙なバランスが必要です。このコースでは、高速アプリケーション環境を実現するのに最適な Amazon ツール、パターン、ベストプラクティス、シナリオに焦点を当てて、CI/CD 環境で Amazon ECS を使用する上での基本をご紹介します。

Amazon ECS のようにスケーリングできるものはありません。このコースでは、成長と規模に関するトピックを取り上げ、最初のデプロイから毎秒数百万のリクエストへの対応まで、お客様をサポートできるベストプラクティス、アプリケーションパターン、およびツールについて説明します。

問題が発生した場合、何が起こったのか、どのように解決するのかを顧客が理解できるように支援するプラットフォームの能力が重要になります。このコースでは、Amazon ECS 内のパフォーマンスを監視して記録する方法と、実行中のワークロードのパフォーマンスを最適化する方法について説明します。