Featured image of post 【これは便利】EC2のDockerイメージを利用してローカルのDockerにEC2を構築しよう

【これは便利】EC2のDockerイメージを利用してローカルのDockerにEC2を構築しよう

1043文字

ローカルにEC2環境が作れる

Amazon Linuxの公式Dockerコンテナイメージ が公開されていました。
コンテナイメージはEC2 Container Registry(ECR)にて配布されており、コマンドで取得することが可能になっています。

こちらを使えば、ローカルマシンのDocker内にEC2インスタンスを立ち上げ、より検証/本番に近い環境での開発を行うことが可能になります。

今回は、その手順をまとめましたので紹介致します。

手順

前提

Point

ECRへのログイン

まずは、以下のコマンドでAWS-cliを利用してECRへログインするための情報を取得しましょう。

command
aws ecr get-login --region us-west-2 --registry-ids 137112412989 --no-include-email

以下のようなログが表示されれば成功です。

log
docker login -u AWS -p {パスワードトークン文字列}== https://137112412989.dkr.ecr.us-west-2.amazonaws.com

エラーが出た場合

以下のようなエラーが出た場合は、利用しているIAMユーザーに対して、ECRのGetAuthorizationToken操作の権限が無いのが原因です。

error
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::xxxxxxxxxxx:user/{ユーザー名} is not authorized to perform: ecr:GetAuthorizationToken on resource: *

なので、AWSマネジメントコンソールにて対象のIAMユーザーにECRへの読み取りPolicyを追加しましょう。
※筆者はFullAccessを付与していますが、しっかりと検討して付与してください

もう一度同じコマンドを実行すると、正常に実行が出来ると思います。

Dockerハブへのログイン

次に、表示されたコマンドをそのままコピペして実行しましょう。
以下のようなログが出ればECRへのログインが成功です。

log
Login Succeeded

コンテナイメージの取得

次にコンテナイメージを取得します。
以下のコマンドを実行してください。

command
docker pull 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest

すると、ダウンロードが始まるので、少し待つと以下のようにログが出てダウンロードが完了します。

log
latest: Pulling from amazonlinux
a98bda1414b5: Pull complete
Digest: sha256:3cce96b8e3e80f0fa3cf04db895231048800a0cb04944488f2aaf3ce6659b66f
Status: Downloaded newer image for 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest

確認

では、実際にコンテナを起動してみましょう。
以下のコマンドを実行してください。

command
docker run -it 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest /bin/bash

お、正常に入れましたね。
では以下のコマンドシステム情報を確認してみましょう。

command
cat /etc/system-release


こちらも正常に表示されましたね。

log
Amazon Linux AMI release 2016.09

終わりに

AWSのアカウントさえあれば、簡単ローカルマシンのDocker環境EC2を構築することが出来ました。

これでEC2を起動せずに、デプロイ構成管理のテストを手軽に行うことが可能になるので、是非利用してみてください。