AWSハンズオン_６_VPCの１_VPC、サブネット、NATゲートウェイの構築およびインスタンスとの連携

AWSの初心者のさとしです
ハンズオンで勉強メモとして投稿いたします。
ご覧になったみんなさんにお役に立てればうれしいです
※：間違ったところがあれば、ご指摘していただければ幸いです

#始まる前に
本日のハンズオン内容は
まず、VPCウィザードを使って、下記のVPCを構築していきます。
そして、パブリックサブネットとプライベートサブネットに１つずつインスタンスを設置します。
その後、NATゲートウェイを構築する前後に、パブリックサブネットのEC2インスタンスからプライベートサブネットのEC２インスタンスに接続する状況を確認していきましょう

※：最後に、NATゲートウェイやElaspipなどお金が掛かるサービスを削除しましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/582a0f15-6d31-11c3-4cc5-7980e095cdfa.png)

＃本文
さあ、始まりましょう
１，VPCを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/90c2b276-9b24-f1fa-02f9-56ab1bd882ee.png)
２，下図のように東京リージョンで1aと1cAZでそれぞれ２つのサブネットを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/f08269f7-17b3-3000-2ef4-bb5b75dbc828.png)
3,作成したVPCを表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/0089d11f-7556-56a7-46a0-5df232cb4902.png)
４，今後のために作成したサブネットの名前を変更します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/c85ba95e-4945-f56a-1c42-5cf0e8a676d4.png)
下図のように、該当サブネットのルートテーブルにインターネットゲートウェイがない場合、プライベートサブネットに該当します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/bfb34c3c-6fdf-ce3e-3444-99a0e1e6b406.png)
下記のようにルートテーブルにインターネットゲートウェイがある場合はパブリックサブネットです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/a4f43f6f-17a7-0264-68f5-a5952ad8b58b.png)

そしたら、変更した名前後のイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/992a3c3a-3183-64b3-7744-fd935a58e559.png)

※：サブネットがすでに作ってから、これからネットワークACLとセキュリティグループを作成しに行きます
下図のように、デフォルトで作成したNACLはなにもかも許可されている状態です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/1b6827db-d288-4be0-43d0-9b60be822e95.png)

そのまま使っても大丈夫ですが、やっぱり練習するため、一から作ったほうがいいです
５，ACLをカスタマイズで作ります（カスタマイズで作ったACLはなにも状態です）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/216a7ac4-7f04-0415-0c39-c5910230fbcb.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/1f89ae35-18c3-026b-916d-6b332b92229f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/48307a55-e464-2a16-14da-71fbfca735dd.png)
ACLが作成しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/3d82afa6-4a01-4a48-9bbf-05e52fac35a7.png)
６，下図のように、インバンドルールを設定します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/0ec34014-0baa-dd7c-603e-f89e49dfe5ce.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/49fe5a46-189d-15d9-41d6-dff5bd52300f.png)

７，ACLはステートレスであるため、同じように、アウトバンドルールも設定する必要があります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/5d923971-6787-5dcd-4020-8f930891c22a.png)
８，サブネットの関連付けを編集する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/38ecd31c-7d25-5a58-32f2-e00485ee1b40.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/134fd269-2903-889c-5c89-9647e89812fa.png)

サブネットの関連付け編集が終わると、下図のように、デフォルトのACLの関連する４つのサブネットは上に移動しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/6095895e-8e87-20e6-af05-2cbea6438755.png)

＊＊下記は重要＊＊＊
★NACLのSSHルールを設定するだけでうまくEC２インスタンソースをうまくアクセスできない。
なにかたりないかというと、エフェメラルポートを追加する必要があります
それは、　我々のPC端末に返信を通すためにはエフェメラルポートという動的に割り当てるポート番号が必要です、それを使ってクライアントPCに返信を返す設定をする必要があります。
※：ポート範囲：１０２４ー６５５３５★
では、インバンドとアウトバンドルールに下記のように設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/8f9e404b-8f7b-7443-0234-ea8151a3b055.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/976a7b8d-3859-21b8-3a46-9ade3c5ea406.png)

９，ここまでは、サブネットまでの作成が終わりましたが、
NATゲートウェイの役割を理解するために、
まず、各サブネットの中にインスタンスを一つずつ作成して、接続を確認しましょうか

EC2を起動する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/33e13862-285d-643f-391f-195daf704020.png)
public-1aのインスタンスを起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/2ebd98a3-b731-2bce-a7bd-32297e71af58.png)

private-1aのインスタンスを起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/b5ef0e2a-1cd7-7fa9-b8ea-4823d97a67f0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/696d1f23-28c6-cf32-721d-aac32f943cd3.png)

下記のようにインスタンが作りました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/3f042354-8792-73d8-14b0-2cf7b42b73ca.png)
では、パブリックサブネットにインスタンスからプライベートサブネットのインスタンへ接続を行います

１０，パブリックサブネットにインスタンスへ接続します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/e863a448-b3d5-1b6c-2a97-34a7388a9cdc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/530ee497-e1ad-f302-5e4e-b427d96716c1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/f5567f52-465f-9f99-146f-5a044684b5b4.png)

パブリックサブネットのインスタンが接続しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/64ceb803-8096-df86-725a-0255e84d8596.png)

１１，下記のコマンドを入力して、ルート権限でパッケージを更新しました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/fde5a3bd-1bdf-b137-3110-b63ab93ba673.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/69f6f0d9-3408-8cbe-8eef-88c82eb1bf66.png)
１２，プライベートサブネットのインスタンへ接続
　　※：①コマンド：nano myprivatekey.pem
　　　　②teraTermでインスタンで使うpemファイルをコピーして、
　　　　　ctrl+x + y保存
        
　　　　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/91ac25de-7b86-0f06-8cd4-3f2d7d0518ef.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/216e32bf-2bd5-99a7-290c-ab9d7bce28c2.png)
１３，ファイル権限を修正する（chmod 400 myprivatekye.pem）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/d44a2afb-9459-66a7-5da2-c257b5cc2f52.png)

接続：ssh ec2-user@プライベートサブネットのインスタンスのIP -i myprivatekye.pem

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/3afdaea4-6b6a-abe2-c4b4-57c8ef1e2052.png)
下図のように、パブリックサブネットのインスタンスからプライベートサブネットのインスタンスへの接続ができました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/e4fd8023-589a-5c87-e7f2-370aed7f6272.png)
１４，yumコマンドをつかってみて
やっぱり、パッケージを更新できないですね、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/02386fd4-4ab5-bd19-dc98-5e383936b7ea.png)

結果からみると、インスタンス間の疎通ができますけど、うまくアクセスできない

なぜかというと、このパブリック側のインスタンスに入ることでプライベート側にアクセスするということができるんですけれども、
プライベート側からの返信によって、ファイルのアップデートをする際などは、インターネットにトラフィックの返信をしなければなりません
ですので、アップデートコマンドなどをYUｍのアップデートコマンドやインストールコマンドなどはNATゲートウェイがないと実施ができないです


１５，そして、NATゲートウェイを構成することをやってい行きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/00e685d4-657b-e80f-102a-f5d0d6313c04.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/35b11159-d079-98b5-779f-258bbd52245c.png)

１６，これで、ぷブリックサブネットにNATゲートウェイを作りましたが
プライベートサブネットのインスタンスをインターネットへ返信するため、
プライマリプライベートのルートテーブルに先ほど作ったNATゲートウェイを追加する必要があります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/9ce5aada-d389-b66c-3898-156e777a6ddc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/21f2ab02-a12a-c739-cf64-94e9170f3e07.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/e103621d-c5a2-16bc-bc6f-64b806f4f24f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/02813532-51b7-e6be-df44-b2fbf7ccc6aa.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/367cb2b4-5140-93cc-9297-599e7ca83495.png)
これで、NATゲートウェイの作成が終わりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/2d60bcca-3ee9-885e-be75-a3c980096786.png)
１７，最後にteraTermで最後にyumコマンドを接続しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/757d6daa-606b-0b66-c407-f63096e10f21.png)
やった！
パブリックサブネットインスタンスからプライベートサブネットのインスタンスへ接続して、NATゲートウェイを通して、プライベートインスタンスのインスタンスからインターネットへの返信ができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/3f287540-a9c7-17c9-6269-f16ec8b1f735.png)


１８，最後に、ElasticIPやNATゲートウェイがお金がかかるサービスを削除しましょう
    NATゲートウェイを削除
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/a17df87c-0272-fa0e-df1d-d7c468803a4d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/00b59f53-422e-4e30-edb7-e45448c33f50.png)

    ElasticIPの解放
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/3fd8a8be-f896-3e38-f848-7af4a1773423.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/d4ea31de-8d40-ce48-2a91-ebc9f80ae6f3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/811dff65-b69e-1c66-9fa4-ec53014bd61a.png)
　EC2を削除
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/27e04411-9fc6-53c4-f89d-b78e5cda83e2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488091/c520adc2-96dd-7e02-cf60-6f8b99f1259d.png)

これで、お金がかかるサービスが全部削除しました。

いかがでしょうか、今回のハンズオンはやや複雑で文字より図のほうが多いイです

では、今回のハンズオンは終わりました。
次回に楽しみましょう！！！