AWSのVPC周りに入門するためのハンズオン

## 用件
![Framestep1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/854df249-64f6-f918-a7f9-9c614ea215f4.png)

- 1つのAZにパブリックサブネット、もう1つのAZにプライベートサブネットがある
- それぞれのサブネットにEC2インスタンスがある
- パブリックサブネットのEC2にはインターネット経由でSSH接続できる
- パブリックサブネットのEC2にNginxをインストールして、HTTPでアクセスできる
- パブリックサブネットのEC2を踏み台にして、プライベートサブネットにSSH接続できる

## 使用するサービスや用語、基本概念について
以下の記事を参照。
[AWSのVPCとEC2周りのざっくりまとめ - Qiita](https://qiita.com/d0ne1s/items/fc5eacd21393f6c32cda)

## 作成手順
### VPCを作成
![ 2021-01-29 17.10.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/ee746173-c482-8f7a-0ede-82281713d04a.png)

![ 2021-01-29 17.14.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/ced3579c-895e-8d3c-ed71-5acd2cdbfc6d.png)

![ 2021-01-29 17.19.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/b657c0db-e571-76b8-3279-3c0a16ae8656.png)

![ 2021-01-29 17.21.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/5685d0e5-d4b8-bc7b-2438-ffc8d05e4e25.png)

### サブネットを作成
2つのAZにそれぞれ1つずつサブネットを作成
![ 2021-01-29 17.26.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/d6006a3b-aa27-8369-d80d-25d4e1687c98.png)

![ 2021-01-29 17.37.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/f7b15da2-f64b-0f9c-bd8c-cfbc633635d9.png)

![ 2021-01-29 17.43.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/0d94fe25-136a-5313-3f34-e4c0ae72bf85.png)

![ 2021-01-29 18.56.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/33153875-6d27-9532-222d-6961fb58ae18.png)

![ 2021-01-29 19.00.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/385b8f78-9bdc-37cb-4824-be68df3facf8.png)

## パブリックにしたいサブネットに自動割り当てパブリックIPを設定
![ 2021-01-29 19.39.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/c76db6e0-a9cd-6dd1-12d5-ac28597f39e7.png)

![ 2021-01-29 19.40.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/3af7f9c6-e6eb-8eb5-1ff7-42e5307b2116.png)

![ 2021-01-29 19.41.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/2118a4b5-0312-1c13-7dc3-2c38b6de960e.png)

![ 2021-01-29 19.43.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/a8b55265-cbf4-037b-9012-f994568307bb.png)

### ルートテーブルを作成
![ 2021-01-29 19.47.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/48add049-1463-69fa-9dcb-423a77eaa277.png)

![ 2021-01-29 19.50.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/6bcb4cc4-c12d-1dd0-7527-9684c2de6dfd.png)

![ 2021-01-29 19.55.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/8db23700-4d4b-2e12-267c-5e900864dfd3.png)

VPC作成時に自動で作成されるデフォルトのルートテーブルの名前を`d0ne1s-qiita-route-table-for-public`に変更
![ 2021-01-29 19.58.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/0fafbac9-f201-b76c-8da6-5636ed6e632b.png)

![ 2021-01-29 19.59.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/f516f35e-b262-8f04-7ae2-5799efa64b5f.png)

### インターネットゲートウェイを作成
![ 2021-01-29 20.02.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/30edc20f-3d05-665c-20e4-52b83f1119a7.png)

![ 2021-01-29 20.04.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/e557ebdc-6c57-e470-698d-3f40a4ca0cbe.png)

![ 2021-01-29 20.05.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/0284c190-8ddb-846d-3fcc-073723200b1f.png)

![ 2021-01-29 20.06.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/207ad46f-9764-c102-610b-05c7c74ed50a.png)

### パブリックサブネット用のルートテーブルを編集
作成したIGWを、パブリックサブネット用のルートテーブルの送信先に追加
![ 2021-01-29 20.14.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/db2fede5-45ff-7b92-3d83-312dcd60950a.png)

![ 2021-01-29 20.20.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/7dd94cca-ea9d-d89e-39d9-afce664e1d96.png)

![ 2021-01-29 20.23.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/438c2504-d6d6-182a-7065-90757dae8406.png)

### ルートテーブルとサブネットを関連付ける
#### `IGWへのルートがあるルートテーブル`と`パブリックにしたいサブネット`の関連づけ
![ 2021-01-29 21.26.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/5e369a58-8694-4ead-7446-af93734360ce.png)

![ 2021-01-29 21.30.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/c6e6ae26-db93-5e3b-8d0e-f90450c324ba.png)
![ 2021-01-29 21.32.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/fecc82c3-bf71-0a61-73b7-8d995d0a402f.png)


#### `IGWへのルートのないルートテーブル`と`「プライベートにしたいサブネット`の関連づけ
![ 2021-01-29 20.29.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/52977bf6-3561-8175-516d-22112c13634d.png)

### ECインスタンスの作成
#### パブリックサブネットにEC2インスタンスを作成
EC2の設定画面に移動して「インスタンスを起動」をクリック
![ 2021-01-31 20.35.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/15c80459-9217-1d52-4cbb-0e8c0262ebca.png)

![ 2021-01-31 20.40.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/78fb7e86-04e3-9d3a-7ddd-97908cb17bfe.png)

![ 2021-01-31 20.41.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/b9759ce5-6153-d89b-21f1-0d95d4b87bf4.png)

![ 2021-01-31 20.45.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/bb68a8e2-0818-1ad6-00c9-a2e376283273.png)

![ 2021-01-31 20.52.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/79f45974-fbdd-8413-d18c-bd5567fcdc38.png)

![ 2021-01-31 20.55.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/2183e0a9-13f3-8214-4641-086898ea7bca.png)

![ 2021-01-31 21.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/9c3108a3-ebbc-88aa-3952-2202a5a644ed.png)


![ 2021-01-31 21.09.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/a073cce3-35b1-7ce7-158a-ff67e51a3620.png)

![ 2021-01-31 21.10.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/0eec36ad-ebf8-62d1-fee0-6d8846a78c0d.png)

![ 2021-01-31 21.18.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/a6945cb6-b3fb-8d54-9550-75eebb281ffa.png)

#### プライベートサブネットにEC2インスタンスを作成
パブリックサブネットのEC2と大体同じなので、差分だけ
![ 2021-01-31 21.23.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/0aa729b4-983c-eab2-7d2b-e56e63f87ab0.png)

![ 2021-01-31 21.26.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/fba02a9b-f3d0-3791-e3de-a783c6733f04.png)

### パブリックサブネットのEC2にSSHでアクセス
パブリックサブネットのIPアドレスを確認
![ 2021-01-31 21.33.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/e59b5eb0-6cde-6fa8-ef18-27dd150157df.png)

```zsh
$ sudo chmod 600 ~/.ssh/aws/qiita-d0ne1s.pem
$ ssh -i ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx
```

### パブリックサブネットのEC2にhttpでアクセス
Nginxをインストール

```bash
[ec2-user@ip-192-168-0-108 ~]$ sudo amazon-linux-extras install -y nginx1 #nginxをインストール
[ec2-user@ip-192-168-0-108 ~]$ sudo systemctl enable nginx #nginxの自動起動設定
[ec2-user@ip-192-168-0-108 ~]$ sudo systemctl start nginx #nginxを起動
```

http://13.231.189.xxx/ にアクセスしてnginxのwelcomeページが表示されれば成功

![ 2021-01-31 21.51.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/394a41c9-e1dc-868f-8708-17444799abfe.png)

### プライベートサブネットのEC2にsshでアクセス
パブリックサブネットのEC2インスタンスを踏み台にしてアクセスする。
まずはローカルからパブリックサブネットのEC2インスタンスにsshの秘密鍵を転送。

```zsh
$ scp -i ~/.ssh/aws/qiita-d0ne1s.pem ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx:~/.ssh
```
プライベートサブネットのEC2のプライベートIPアドレスを確認
![ 2021-01-31 22.11.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/1060e9fc-d0ff-4665-2275-d37a034ec653.png)

踏み台サーバーにssh接続後、先ほど転送した秘密鍵を使い、プライベートサブネットのEC2にssh接続できることを確認。

```zsh
$ ssh -i ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx
[ec2-user@ip-192-168-0-108 ~]$ ssh -i ~/.ssh/qiita-d0ne1s.pem ec2-user@192.168.1.193
       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-192-168-1-193 ~] # プロンプトのIPアドレスが変化
```

終わりです。おつかれさまでした。