AWS EC2 でDocker環境を無料で試してみる

# 概要
少し前にWindowsにDockerをインストールしていろいろ試してみてたけど
そもそもAWS EC2の方が気楽にいろいろ試せるのでは？と思ってやってみた
思った以上に簡単にできたのでそのやり方を記載

windows版は以下を参照

　[WindowsでDocker環境を試してみる](https://qiita.com/fkooo/items/d2fddef9091b906675ca "WindowsでDocker環境を試してみる")

AWS ECS版は以下を参照

　[AWS ECSでDocker環境を試してみる](https://qiita.com/fkooo/items/d7d98e16e91921508450 "AWS ECSでDocker環境を試してみる")

Docker本は以下が詳しくわかりやすいオススメ本です

[プログラマのためのDocker教科書](https://amzn.to/3jZUFWw "プログラマのためのDocker教科書")
<a target="_blank"  href="https://www.amazon.co.jp/gp/product/4798153222/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4798153222&linkCode=as2&tag=docker_start_008-22&linkId=d283893e853dc8ae0d75f8795aa64903"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4798153222&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL110_&tag=docker_start_008-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=docker_start_008-22&l=am2&o=9&a=4798153222" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

[【Kindle版】プログラマのためのDocker教科書](https://amzn.to/3n4YKe1 "【Kindle版】プログラマのためのDocker教科書")
<a target="_blank"  href="https://www.amazon.co.jp/gp/product/B07BHK5KX7/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07BHK5KX7&linkCode=as2&tag=docker_start_008-22&linkId=3434f3a5ff1b7697fd5662e81fb639a1"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=B07BHK5KX7&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL110_&tag=docker_start_008-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=docker_start_008-22&l=am2&o=9&a=B07BHK5KX7" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

## できるようになること

* AWS EC2でのDocker環境の構築

## およその作業時間

* 10分
* ５コマンドで完了

## 必要な知識

* AWS EC2
* SSH
* Docker知識^^;

## 手順の概要

１．EC2インスタンス作成
２．AMI選択
３．インスタンスタイプ選択
４．インスタンス確認
５．接続用キーペア設定
６．EC2にDockerインストール

参考：[公式 Amazon Linux2 に Docker をインストールする](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/docker-basics.html "公式 Amazon Linux2 に Docker をインストールする")

### １．EC2インスタンス作成
とりあえずEC2インスタンスを作成するためAWSコンソールからEC2からインスタンス起動を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/28cdeeaf-bae4-023c-f8a8-c0a6c7f4df63.png)

### ２．AMI選択
無料枠のAmazon Linux 2を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/ffa3aa38-3127-a13d-9231-3af1cd86978f.png)

### ３．インスタンスタイプ選択
こちらも無料枠を選択し、あとはデフォルトのまま「確認と作成」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/2302761a-2813-b7d0-070f-28dbeeecc893.png)

### ４．インスタンス確認
作成されるインスタンスをふんふんと確認し、「起動」ボタンをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/7f6edfb1-a503-33b0-e325-0ccbb2386803.png)

### ５．接続用キーペア設定
SSH接続のために新しいキーペアか既存のキーペアをからキーペアを設定
（画面は既存のキーペアを設定）
最後に「インスタンスの作成」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/e9f82df4-23fa-93b8-7d83-ead408e10a27.png)

EC2が作成されるまで２，３分待ちましょう。。。

### ６．EC2にDockerインストール
EC2が作成されたらSSHで接続します
SSH接続の説明は割愛
↓あたりを参考

https://dev.classmethod.jp/cloud/aws/aws-beginner-ec2-ssh/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/041e26ad-5717-4eef-660b-3da5f13d722e.png)

SSH接続後、いよいよDockerインストールのコマンドを実行していきます
とりあえずインストールされているパッケージ更新

```bash
sudo yum update -y
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/e4aa0d05-f811-f133-833c-7130f1af37ad.png)

完了するとこんな感じ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/fc2e3239-62d8-d51a-2ae2-68ad71a2dc00.png)

いよいよDockerインストール

```bash
sudo amazon-linux-extras install docker
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/ca01857f-e4f7-4b9c-8145-69aa71c45aeb.png)

途中確認が表示されたら「y」とか入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/644668d2-0f9d-10e6-e943-d543a351db48.png)

あっという間にインストールが完了
するとこんな感じ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/2455d91a-bb90-fa23-8236-aee3da1b7ba6.png)

インストールできたのでサービス起動

```bash
sudo service docker start
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/d9c45e34-599d-c9bb-0869-c3c972a7c45c.png)

sudo を使用せずに Docker コマンドを実行できるように、ec2-user を docker グループに追加

```bash
sudo usermod -a -G docker ec2-user
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/840bb1ea-18df-4b30-d891-e5ace32228d1.png)

一度EC2からログアウト、再度SSH接続する
すると、、、dockerコマンドが普通に使えるように

```bash
docker info
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/2f6279c1-71a1-a985-021a-ba557205c583.png)

はい、簡単５コマンドでDockerインストール完了です
あとはDockerをいじくり倒しましょう＾＾

## まとめ

想像するよりずっと簡単に環境構築できました
AWSなのでここでいろいろDocker試してみて使い終わったら消してしまえば無料です
消すときはAWSコンソールで↓で完了
EBSとか残ってると微量請求がきてしまうのでまとめて消しておきましょう＾＾；
時々やってしまうAWSから突然微量請求きてしまうあるあるかと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/4af416c5-8f62-ba6c-e614-acc103d28cb4.png)

EBSの料金について以下に参考記事を書きました。良かったらこちらも＾＾

　[AWS初心者がEC2を最低限の利用料金で利用する](https://qiita.com/fkooo/items/1254121c20b4593cc2f4 "AWS初心者がEC2を最低限の利用料金で利用する")