AWS操作を行うための認証情報の取得
※AWSのIAMでユーザーを作成していない場合
1. サービスのIAMをクリック
2. 左のメニューからユーザーを選択
3. ユーザーの追加をクリック
4. 任意のユーザー名を入力
5. アクセスの種類はプログラムによるアクセス
6. 次のステップをクリック
7. 権限の設定を「既存のポリシーを直接アタッチ」
8.「AdministratorAccess」にチェックを入れる。
9. 次のステップを押す。
10. 次のステップを押す。
11. 問題が無ければ「ユーザーの作成」をクリック。
ユーザーの作成が完了するとアクセスキー、シークレットアクセスキーが表示されるのでメモをしておく。シークレットアクセスキーは「表示」をクリックすると確認できる。これらはAWSに接続するための鍵となるので無くさないようにする。
※既にユーザーを作成している場合
1. サービスのIAMをクリック
2. 左のメニューからユーザーを選択
3. 任意のユーザー名をクリック
4. アクセス権限タブのアクセス権限の追加をクリック
5. 権限の設定を「既存のポリシーを直接アタッチ」
6.「AdministratorAccess」にチェックを入れる。
アクセス権限に**「AdministratorAccess」**が追加されていることを確認する。
ホームディレクトリの下に「.aws」ディレクトリとcredentialsファイルを作る。
-# ホームディレクトリに移動
% cd
-# ホームディレクトリに「.aws」の作成、隠しファイルになるのでls -a で確認できる。
% mkdir ~/.aws
-# credentialsの設定
% vim ~/.aws/credentials
-# 先ほどメモした2つのキーを入力
[default]
aws_access_key_id = xxxxxxx
aws_secret_access_key = xxxxxxx
AWSのEC2にインスタンスの作成
-# 例
% docker-machine create —-driver amazonec2 —-amazonec2-open-port 8000 —-amazonec2-region ap-northeast-1 aws-sandbox
--driver はamazonec2の指定。
--amazonec2-open-port 8000 で起動したインスタンスの8000番ポートを外部に公開している。
--amazonec2-region ap-northeast-1 はリージョンの指定。ap-northeast-1は東京リージョンの指定。
aws-sandbox はホストに「aws-sandbox」と言う名前で指定。
EC2のインスタンスを確認し「aws-sandbox」でインスタンスが作られているのがわかる。
Dockerホスト上でコンテナを起動する
-# dockerホストに接続するための環境変数の設定
% eval $(docker-machine env aws-sandbox)
-# テスト用のページを表示するhelllo-world-nginx使用してwebserverというコンテナを起動
% docker run -d -p 8000:80 —-name webserver kinematic/hello-world-nginx
-# dockerホストのipの確認
% docker-machine ip aws-sandbox
52.199.66.11
52.199.66.11:8000でwebページが表示されることを確認する。
コンテナの停止
-# コンテナの停止
% docker-machine stop aws-sandbox
Stopping "aws-sandbox2"...
Machine "aws-sandbox2" was stopped.
EC2のインスタンス状態が**「stopped」**になっていることを確認する。
Dockerホストの削除
-# dockerホスト削除コマンド
% docker-machine rm aws-sandbox
About to remove aws-sandbox
WARNING: This action will delete both local reference and remote instance.
-# yを入力
Are you sure? (y/n): y
Successfully removed aws-sandbox
EC2のインスタンス状態が「terminated」になっていることを確認する。