ローカルにEC2環境が作れる
Amazon Linuxの公式Dockerコンテナイメージ が公開されていました。
コンテナイメージはEC2 Container Registry(ECR)にて配布されており、コマンドで取得することが可能になっています。
こちらを使えば、ローカルマシンのDocker内にEC2インスタンスを立ち上げ、より検証/本番に近い環境での開発を行うことが可能になります。
今回は、その手順をまとめましたので紹介致します。
Amazon Linuxの公式Dockerコンテナイメージ が公開されていました。
コンテナイメージはEC2 Container Registry(ECR)にて配布されており、コマンドで取得することが可能になっています。
こちらを使えば、ローカルマシンのDocker内にEC2インスタンスを立ち上げ、より検証/本番に近い環境での開発を行うことが可能になります。
今回は、その手順をまとめましたので紹介致します。
まずは、以下のコマンドでAWS-cliを利用してECRへログインするための情報を取得しましょう。aws ecr get-login --region us-west-2 --registry-ids 137112412989 --no-include-email
以下のようなログが表示されれば成功です。docker login -u AWS -p {パスワードトークン文字列}== https://137112412989.dkr.ecr.us-west-2.amazonaws.com
以下のようなエラーが出た場合は、利用しているIAMユーザーに対して、ECRのGetAuthorizationToken操作の権限が無いのが原因です。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を付与していますが、しっかりと検討して付与してください
もう一度同じコマンドを実行すると、正常に実行が出来ると思います。
次に、表示されたコマンドをそのままコピペして実行しましょう。
以下のようなログが出ればECRへのログインが成功です。Login Succeeded
次にコンテナイメージを取得します。
以下のコマンドを実行してください。docker pull 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest
すると、ダウンロードが始まるので、少し待つと以下のようにログが出てダウンロードが完了します。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
では、実際にコンテナを起動してみましょう。
以下のコマンドを実行してください。docker run -it 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest /bin/bash
お、正常に入れましたね。
では以下のコマンドでシステム情報を確認してみましょう。cat /etc/system-release
こちらも正常に表示されましたね。
Amazon Linux AMI release 2016.09AWSのアカウントさえあれば、簡単にローカルマシンのDocker環境にEC2を構築することが出来ました。
これでEC2を起動せずに、デプロイや構成管理のテストを手軽に行うことが可能になるので、是非利用してみてください。