【AWS】３階層のNW構築　＃メモ版

3階層（public,private,protected）のNWを構築したときのメモです。

<img width="576" alt="Arch.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205013/299eb54f-5eb1-43c5-4113-5879295353bb.png">


#ここがハマるので注意！
###nat-instance
 - **nat専用ami**があるのでそれを利用すること（amzn-ami-vpc-nat-hvm-yy.mm.dd-x86_64-ebs ）
 - nat作成後に**送信元IPチェックを無効化**すること（https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_NAT_Instance.html
）

###chmod
 - basiton→privateへ接続するとき。bastionにおいた**秘密鍵はchmod600**しておく

###mutli-AZ
 - rds配置予定のsubnetは、2zone用意必須！（auroraは構築時にstorageの領域がmultiazとなるため、事前に2az用意しておかないと構築できない。）

#３階層つくる手順
###1.vpc作成
| name       |parameter|
|:-----------------|:------------------|
|vpc-handson       |10.0.0.0/16 |

###2.subnet作成
・250前後で広めにとる

| name            |parameter     |利用可能アドレス(IPv4)|
|:----------------|:-------------|:------------------|
|sn-handson-pub   |10.0.1.0/24   |249|
|sn-handson-pri   |10.0.10.0/24  |250|
|sn-handson-pro-1c|10.0.100.0/24 |251|
|sn-handson-pro-1d|10.0.200.0/24 |251|

###3.igw作成
・作成しVPCにアタッチする

|name            |parameter     |attachfor   |
|:---------------|:-------------|:-----------|
|igw-handson     |N/A           |vpc-handson |


###4.routetable作成
・サブネットごとに作成し、各サブネットへ関連付ける
・pubのみ、igwを関連付けさせる

|name              |サブネットの関連付け |ルート　   |
|:-----------------|:------------------|:-----------|
|rtb-handson-pub   |sn-handson-pub     |local , 0.0.0.0/0;igw |
|rtb-handson-pri   |sn-handson-pri     |local|
|rtb-handson-pro   |sn-handson-pro-1c  |local|
|rtb-handson-pro   |sn-handson-pub-1d  |local|

###5.sg作成
・目的ごとに作成する
・今回は各サブネットごとに用意した
・priはpubから、proはpriからのインバウンドルールを追加（すべてのTCP,許可したいSG）
・localからssh接続するため、すべてのsgにインバウンドルールを追加（ssh,20,マイIP）

|name            |インバウンドルール1   |インバウンドルール2|
|:---------------|:--------------------|:----------------|
|sg-handson-pub　|ssh ; 22 ; fromマイIP ||
|sg-handson-pri　|ssh ; 22 ; fromマイIP |すべてのTCP ; from sg-handson-pub|
|sg-handson-pro　|ssh ; 22 ; fromマイIP |すべてのTCP ; from sg-handson-pri|

###6.instance作成
・まずはPrivateまでの通信経路確保のために３つつくる
・natはnat専用amiがあるのでそれを利用すること
・削除保護有効化しておくと尚よし～

|name            |ami            |type|subnet|sg|
|:---------------|:--------------|:-------|:----------------|:----------------|
|handson-nat　　 |nat専用         |t2.micro|sn-handson-pub|sg-handson-pub|
|handson-bastion |amazonlinux    |t2.micro|sn-handson-pub|sg-handson-pub|
|handson-pri     |amazonlinux    |t2.micro|sn-handson-pub|sg-handson-pri|

※t3.microのほうがスペックいいので、実環境ではt3利用がおススメ。

###7.eip作成とアタッチ
・bastion,nat用にeipを作成する
・bastion,natに関連付けさせる
⇒起動停止後もIP固定できるため運用上の利便性よい

|name            　  |IP        |関連付け|
|:-------------------|:---------|:----------------|
|eip-handson-bastion |自動割当て |handson-bastion|
|eip-handson-nat　   |自動割当て |handson-nat|

###8.nat設定
・natインスタンスにて、送信元IPチェックを無効化する
　-natとして機能させるためIPチェックしないように設定する必要がある
・private用のrtbにて、natのeipを関連付ける

|name              |サブネットの関連付け |ルート　   |
|:-----------------|:------------------|:-----------|
|rtb-handson-pri   |sn-handson-pri     |0.0.0.0/0 ; eip-xxxxxxxx|

#接続してみる
###1.bastion接続
・windowsPCからはteratermなど利用
・bastionのIPを指定
・ユーザ名：ec2-user
　秘密鍵：kp-handson

###2.bastionへKPのインポート
・KPインポートする
・ファイルはchmod600しておくこと

###3.private領域のec2へ接続
ssh -i /home/ec2-user/kp-vpc-handson.pem ec2-user@ip-10-0-10-230.ap-northeast-1.compute.internal


#END
質問等あればコメントください。
GUI付きの手順はのちほどUpするかもです～。