docker-Machineとは
下記の記事を参照
事前
IAM(Identity and Access Management)は、AWSリソースのアクセス制御を管理するサービスで、アクセスキーはAWSのAPIやCLI経由で認証するための情報です。
- aws_access_key_id:公開識別子(アクセスID)
- aws_secret_access_key:認証用の秘密鍵(非公開)
これらの認証情報は、AWS CLI や SDK を使って、AWSのリソース(EC2、S3、RDS など)にプログラム的にアクセスするために使用されます。下記のようにcredentialsに登録しておきます。
user@host .aws % cat credentials
[default]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = xxxxxxx
docker-machineを作成
docker-machine create \
--driver amazonec2 \
--amazonec2-access-key xxxxxxxx \
--amazonec2-secret-key xxxxxxxx \
--amazonec2-instance-type t2.micro \
--amazonec2-region us-east-2\
--amazonec2-root-size 16 \
--amazonec2-security-group docker-machine \
--amazonec2-vpc-id vpc-xxxxxx \
--amazonec2-subnet-id subnet-xxxxxxx \
--amazonec2-open-port 8000 \
aws-sandbox2
下記のようにdocker-machineが作成される。
user@host .aws % docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
aws-sandbox2 - amazonec2 Running tcp://xx.xx.xx.xx v28.0.1
コンテナを起動
この状態でnginxのコンテナを起動してみます。そしてこのコンテナのipアドレスも確認してみます。
docker run -d -p 8000:80 --name webserver nginx
docker-machine ip aws-sandbox2
x.xx.xx.xx
実際に、ブラウザからこのパブリックIPに8000ポートに接続すると、IPがルーティングされてEC2上で起動しているnginxのコンテナ80ポートにつながり画面が表示されました。