Amazon EC2 Container Service コンソールチュートリアルをやってみた

Amazon ECS

はじめに

以前の記事となりますが、AWS 上に Kubernetes cluster を構築しました。

Developers.IO 読者の皆様であればご存知かと思われますが AWS には、Amazon EC2 Container Service (ECS) という コンテナ化されたアプリケーションを、本番環境で実行するサービスが用意されております。

本記事では、AWS から提供されている ECS コンソールチュートリアルを通じて ECS へ触れてみたいと思います。

前提条件

チュートリアルに従い、検証を行うには予め AWS CLI および Docker コマンドが利用できる環境を用意しておく必要があります。

各ツールのインストール方法については、以下のドキュメントをご参照ください。

AWS CLI をインストールする場合

Docker をインストールする場合

なお、筆者の検証環境は以下のとおりです。

  • macOS Sierra 10.12.5
  • Docker for Mac Version 17.03.1-ce-mac12 (17661)
  • aws-cli/1.11.73 Python/2.7.10 Darwin/16.6.0 botocore/1.5.36

ECS コンソールチュートリアルを開始する

ECS コンソールチュートリアルへアクセスしてください。

ECSコンソールチュートリアル

Amazon EC2 Container Service (ECS) の開始

チュートリアルを開始するにあたって、ECS にサンプルアプリケーションをデプロイするか EC2 Container Registry (ECR) のプライベートイメージリポジトリを設定するか、 またはその両方を実行するかどうかを選択(オプションをチェック)します。

本記事では、以下の両方を選択しました。

  • Amazon ECS クラスターにサンプルアプリケーションをデプロイする
  • Amazon ECR によりコンテナイメージをセキュアに保存する

ECSコンソールチュートリアル2

なお、ECR の設定が不要な場合はチェックを外すことで、本記事の Step 3 タスク定義の作成から開始出来ます。

Step 1 リポジトリの設定

ここでは、ECR に作成するリポジトリ名を設定します。

ECSコンソールチュートリアル3

Step 2 Docker イメージの構築、タグ付け、プッシュ

リポジトリが正常に作成された旨のメッセージが表示されます。

ECSコンソールチュートリアル4

このリポジトリに対して Docker イメージをプッシュするための準備作業として docker login コマンドを取得するために、以下(AWS CLI 手順)が案内されます。

$ aws ecr get-login --region <リージョン名>
# 標準出力される docker コマンドを実行します

チュートリアルにて、ユーザ環境に合わせたコマンドラインが表示されるため AWS CLI および Docker コマンドを用い 記載されている案内に従って、Docker イメージをリポジトリへプッシュしておいてください。

本記事では、チュートリアルで示されるコマンド実行例を示します。

以下のコマンドを使用して、Docker イメージを構築します。 Docker イメージが既に構築されている場合、以下の手順は不要です。

$ docker build -t <Step 1 で設定したリポジトリ名> .

AWS リポジトリにイメージをプッシュできるよう、タグ付けします。

$ docker tag <Step 1 で設定したリポジトリ名>:latest https://aws_account_id.dkr.ecr.region.amazonaws.com/<Step 1 で設定したリポジトリ名>:latest

AWS リポジトリに、このイメージをプッシュします。

$ docker push https://aws_account_id.dkr.ecr.region.amazonaws.com/<Step 1 で設定したリポジトリ名>:latest

作業が完了したら、次のステップをクリックします。

Step 3 タスク定義の作成

ここでは、コンテナ名や使用する Docker イメージおよび メモリ制限、ポートマッピングなど ECS のタスクを定義します。 本記事では、デフォルト設定のまま次のステップを選択します。

ECSコンソールチュートリアル5 ECSコンソールチュートリアル6

Step 4 サービスの設定

ここでは、サービスの名前および Step 3 で作成したタスクを 開始する際に必要なタスク数を設定します。 本記事では、デフォルト設定のまま次のステップを選択します。

ECSコンソールチュートリアル7

Step 5 クラスターの設定

Amazon ECS のタスクは、コンテナインスタンス(※)で実行されるため クラスターで起動するコンテナインスタンスのタイプ、数量、その他の詳細を ここで設定します。必要に応じて設定を行いましょう。
(※)ECS コンテナエージェントを実行している Amazon EC2 インスタンス

ECSコンソールチュートリアル8 ECSコンソールチュートリアル9

設定完了後、レビューと起動ボタンをクリックします。

Step 6 確認

ここでは、Step 5 までの設定内容を改めて確認します。 設定内容に問題が無いことを確認し、最後に インスタンスの起動とサービスの実行をクリックします。

ECSコンソールチュートリアル10

インスタンスが起動し、実行状態になるまで少し待つ必要があります。

ECSコンソールチュートリアル11

起動処理が完了した際に、サービスの表示ボタンが有効化されるため サービスの表示ボタンをクリックします。

ECSコンソールチュートリアル12

これまでの数ステップで行った設定にもとづいてクラスターが稼働し、 サービスが実行されていることを確認できます。

ECSコンソールチュートリアル13

さいごに

Amazon EC2 Container Service コンソールチュートリアルに従って、 わずか6ステップの作業を実施することにより ECS クラスターおよび サービスを、簡単に起動することが出来ました。

テスト環境やローカル環境で Docker を利用することはお聞きしますが、 本番環境で Docker を利用する企業は、極稀(まだ少数)かと思われます。 弊社の大阪オフィス開設1周年勉強会と題しまして、以下の勉強会が開催予定です。

【 大阪オフィス開設1周年勉強会 】第6回 本番で使うDocker勉強会 in 大阪 2017/06/09 #cm_osaka

2017/5/18 時点で、参加者の募集枠30名様に対し59名様の応募を頂いている状況です。 「本番環境で利用する Docker」というテーマに対して、皆様の興味感心が非常に高い状況と感じました。

個人的には、今後も Kubernetes/Docker というコンテナ関連の分野に対して コツコツと取り組み、情報発信をして行ければ良いなと考えております。

ではでは