こんにちは、cloudpack@dz_ こと大平かづみです。

Prologue – はじめに

Docker を使ってみたい。そうだ、Amazon EC2 Container Service の Preview 申請が通ったじゃない!☆

Amazon EC2 Container Service 要点・まとめ

ということで、Amazon EC2 Container Service (Amazon ECS) について、簡単にまとめてみます。

Amazon EC2 Container Service とは?

  • AMazon EC2 をベースにしたスケーラブルなコンテナ管理サービス
    • コンテナは、 Docker のコンテナ
  • Amazon EC2 インスタンスのクラスター上に配置
    • Amazon EC2 の使い慣れた機能を利用可能
    • クラスター管理はAWS側が行うので手間が省ける
  • ECS 自体は無料で利用可能、保存や実行するためのAWSリソースに対して料金が発生
    • EC2インスタンスや、EBSボリュームなど
  • ECS は現在はプレビュー利用、自動的に利用可能になるそう?

Amazon EC2 Container Service の構成

クラスター
タスクを配置できるコンテナインスタンスの論理グループ
コンテナインスタンス
Amazon ECS エージェントが稼働する Amazon EC2 インスタンスで、クラスターに登録される
タスク定義
1つまたは複数のコンテナ定義を含むアプリケーションの定義
タスク
コンテナインスタンスで稼働するタスク定義の実体
コンテナ
タスクの一部として作成される Linux コンテナ

Amazon EC2 Container Service を使うには?

クラスター用の Amazon EC2 インスタンスをセットアップします。
以下は、Amazon ECS のセットアップ に掲載されている手順の概略です。はしょっているので、詳細は元のドキュメントをご参照ください。

  1. IAMグループ作成 (権限: Administrator Access)
  2. IAMユーザ作成 (Administratorグループに追加、パスワードの設定)
  3. Credentials を取得
  4. 作ったIAMユーザでサインイン
  5. コンテナインスタンス用のIAMロールを作成 (下記のボリシーをコピー&ペースト)
  6. SSH接続の準備 (Key Pair がなければ作成)
  7. Virtual Private Cloud (VPC) の作成・設定
  8. セキュリティーグループの作成・設定
  9. (プレビューの間のみ) ECS を利用するため、1.7.0 以降の AWS CLI を用意 (後述)
コンテナインスタンス用のIAMロールポリシー

(ドキュメントから引用)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:CreateCluster",
        "ecs:RegisterContainerInstance",
        "ecs:DeregisterContainerInstance",
        "ecs:DiscoverPollEndpoint",
        "ecs:Submit*",
        "ecs:Poll"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
AWS コマンドラインインターフェース (AWS CLI) の用意

Amazon EC2 Container Service はまだプレビューなので、1.7.0 以降の AWS CLI を用意します。

Amazon Linux には標準で AWS CLI がインストールされています。以下のようにバージョンを確認し、1.7.0 未満の場合はアップグレードしましょう。アップグレードや、その他インストールが必要な方は、AWS コマンドラインインターフェースのインストール をご参照ください。

# バージョンの確認
$ aws --version
aws-cli/1.7.0 Python/2.7.8 Darwin/14.0.0

ここまでセットアップできれば、いよいよチュートリアルを実践できるそうです。チュートリアルはこちら Getting Started with Amazon ECS にあります。

参考ドキュメント

あれこれメモ (一部クイック和訳)

開発者ガイド: Amazon EC2 Container Service とは?

開発者ガイド: What is Amazon EC2 Container Service? – Amazon EC2 Container Service

What is Amazon EC2 Container Service?

Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of Amazon EC2 instances. Amazon ECS lets you launch and stop container-enabled applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, Amazon EBS volumes, and IAM roles.

"Amazon EC2 Container Service (Amazon ECS) は、とてもスケーラブルで、高速なコンテナ管理サービスです。簡単に起動、停止が行えて、Amazon EC2 インスタンスのクラスターの上で Dockerコンテナを管理することができます。Amazon ECS は、シンプルなAPI呼び出しでコンテナで利用可能なアプリケーションを起動や停止することができ、中央管理サービスからあなたのクラスターのス状態を取得でき、セキュリティーグループや Amazon EBS ボリューム、IAMロールなどのたくさんの使い慣れた Amazon EC2 の機能にアクセスすることができます。"

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon EC2 Container Service eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

"Amazon ECS は、リソースによる要件や、ポリシーの分断、要求される可用性に応じてあなたのクラスターにコンテナを配置するスケジュールを立てることができます。Amazon EC2 Container Service はクラスターの管理や管理システムの設定のオペレーションを不要にしたり、インフラストラクチャの管理のスケールに関する心配事を取り除きます。"

Getting Set Up

"セットアップ"

To use Amazon ECS, you need to be set up to launch Amazon EC2 instances into your clusters. You will also need to install a custom version of the AWS Command Line Interface for Amazon ECS, as this is the only available client during our preview. For more information, see Setting Up with Amazon ECS.

"Amazon ECS を利用するには、あなたのクラスターに Amazon EC2 インスタンスを起動してセットアップする必要があります。また、Amazon ECS のために AWSコマンドラインインタフェースのカスタムバージョンをインストールする必要があり、これはプレビューの間だけ利用可能なクライアントです。詳細は、Amazon ECS のセットアップ を参照してください。"

After you are set up, you are ready to complete the Getting Started with Amazon ECS tutorial.

"セットアップが完了したら、Getting Started with Amazon ECS のチュートリアルを実践する準備ができます。"

Epilogue – おわりに

上記はドキュメントからまとめただけなので、実際にセットアップをしてみてはまるところあればまた記事にしたいと思います。Docker はまだ触ったことがなく右往左往しそうですが、いきなりECSネイティブで突き進んでみようと思います!

元記事はこちらです。
Check! Amazon EC2 Container Service で Docker を学びたい!(準備編)