投稿日:
2018年3月22日
最終更新日:
【これは便利】EC2のDockerイメージを利用してローカルのDockerにEC2を構築しよう
YouTubeも見てね♪
ねこじゃすり
猫を魅了する魔法の装備品!
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
ローカルにEC2環境が作れる
Amazon Linuxの公式Dockerコンテナイメージ が公開されていました。
コンテナイメージはEC2 Container Registry(ECR)にて配布されており、コマンドで取得することが可能になっています。
こちらを使えば、ローカルマシンのDocker内にEC2インスタンスを立ち上げ、より検証/本番に近い環境での開発を行うことが可能になります。
今回は、その手順をまとめましたので紹介致します。
手順
前提
- AWSアカウント作成済み
- Dockerインストール済み(Docker version 17.12.0-ce, build c97c6d6)
- AWC-cliセットアップ済み
ECRへのログイン
まずは、以下のコマンドでAWS-cliを利用してECRへログインするための情報を取得しましょう。
1 |
aws ecr get-login --region us-west-2 --registry-ids 137112412989 --no-include-email
|
以下のようなログが表示されれば成功です。
1 |
docker login -u AWS -p {パスワードトークン文字列}== https://137112412989.dkr.ecr.us-west-2.amazonaws.com
|
エラーが出た場合
以下のようなエラーが出た場合は、利用しているIAMユーザーに対して、ECRのGetAuthorizationToken操作の権限が無いのが原因です。
1 |
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へのログインが成功です。
1 |
Login Succeeded
|
コンテナイメージの取得
次にコンテナイメージを取得します。
以下のコマンドを実行してください。
1 |
docker pull 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest
|
すると、ダウンロードが始まるので、少し待つと以下のようにログが出てダウンロードが完了します。
1
2
3
4
|
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
|
確認
では、実際にコンテナを起動してみましょう。
以下のコマンドを実行してください。
1 |
docker run -it 137112412989.dkr.ecr.us-west-2.amazonaws.com/amazonlinux:latest /bin/bash
|
お、正常に入れましたね。
では以下のコマンドでシステム情報を確認してみましょう。
1 |
cat /etc/system-release
|
こちらも正常に表示されましたね。
1 |
Amazon Linux AMI release 2016.09
|
終わりに
AWSのアカウントさえあれば、簡単にローカルマシンのDocker環境にEC2を構築することが出来ました。
これでEC2を起動せずに、デプロイや構成管理のテストを手軽に行うことが可能になるので、是非利用してみてください。