AWS Hands-on for Beginners　Network編#1

## はじめに
AWS Certified SysOps Administrator - Associateの試験ラボを乗り切るために、勉強していることをなんとなくメモっていきます。
基本的にハンズオンの内容は説明せずに出てきた単語を少し深掘りしていきます。

行うこと
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/
Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する

本人情報
IT現場雑用員（SEで採用されながら一生Excel触ってる人）
半年前にAWS SAA取得済み

<br>

## AWS上にプライベートネットワーク空間を作成する。
### VPCとは
クラウド上にネットワークを構築し、既存のネットワークの延長として利用することができます。
セキュアなネットワーク環境として提供され、用途に応じてVPN、Direct Connectを用いてオンプレミスのデータセンターと接続したり、internet gatewayを用いてインターネットに接続できたりもします。
また、1つのVPC内でサブネットを分割し直接インターネットに接続されている環境とそうでは無い環境を分離することによって（パブリック、プライベート）よりセキュアな環境を保つことができます。
この辺りはSAAの勉強をしているときに再三出てきたかなぁと思います。

![スクリーンショット 2022-02-20 18.03.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2512706/db107764-84d8-c78b-0812-21eebf23236a.png)
（動画内の画像はめっちゃわかりやすいです）

<br>


## AWS上にプライベートネットワーク空間を作成する-2
### VPC内のサブネット
VPC内で設定したネットワークアドレスの中で、さらに細かい範囲でネットワークアドレスを指定することによってネットワーク空間を分割することができます。VPCで指定できるサブネットの範囲は16〜24であり、AZを跨いで指定することはできません。
IPアドレスのサブネットマスクで指定された値まではネットワーク部になるので、10.0.0.0/16であれば10.0.1.0/24、10.0.2.0/24といった形で分割していけるということですね。詳しくはこちらをご覧ください。
https://www.cman.jp/network/term/subnet/

<br>

####internet gateway
インターネットと接続するための出入り口になる場所です。internet gatewayはVPCにアタッチされ、デフォルトゲートウェイ（0.0.0.0)の宛先がinternet gatewayとなったルートテーブルが関連付けられているサブネットはパブリックサブネット、そうでないものはプライベートサブネットになります。
ルートテーブルはサブネットごとに設定するため、1つのVPC内でインターネットに接続されているサブネット、されていないサブネットを分離することができます。

<br>

## AWS上にプライベートネットワーク空間を作成する-2
### ルートテーブル
VPCと同時に自動的に作成されたルートテーブルは、明示的に関連付けを行なっていないサブネットに対して自動で紐付きます。メインという項目を変更することによって自動的に紐づくルートテーブルを変更することができます。
![スクリーンショット 2022-02-23 16.09.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2512706/92597125-ec4b-7755-df5c-3f75eff04368.png)

VPC内でパブリックサブネットを作成する場合は、デフォルトゲートウェイを含んだルートテーブルを新たに作成しサブネットに紐づける必要があります。
1つのルートテーブルを複数のサブネットに関連づけることはできますが、逆はできません。



<br>

## プライベートサブネットからインターネットへのアクセス方法
### NAT
NATとはIPアドレスを変換するための仕組みです。ローカルネットワークからインターネットにパケットを送信する場合は送信元IPアドレスを変換し、パケットが返ってくる際にNATゲートウェイにたどり着けるようにします。インターネットから来たパケットに関しては宛先アドレスをローカルIPアドレスに変換し、ローカルネットワーク内のホストに届けます。

### NATゲートウェイ、NATインスタンス
AWS上でNATを実現する際にはNATゲートウェイ、もしくはNATインスタンスを利用する必要があります。
NATインスタンスはEC２上で動作するため、監視、保守などを自分で行う必要がある反面インスタンスタイプやサイズなどパラメータを細かく設定することができます。NATゲートウェイはマネージドサービスとなっているため高可用性、冗長性が保証されています。
![スクリーンショット 2022-02-23 17.08.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2512706/77c1492f-247a-a619-bc17-32be246791b7.png)
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-nat-comparison.html

### AWS Systems Manager
AWS System ManagerとはAWSおよびオンプレミスのサーバ群を管理するためのツール群です。
リソースのグループ化、デプロイやメンテナンスの自動化、コンプライアンス違反や運用状況の調査などを行います。
![スクリーンショット 2022-02-23 17.46.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2512706/a937fb7c-690a-5a91-d6db-0fb82088e782.png)
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/what-is-systems-manager.html
<br>


## VPC外サービスへの接続方法
### VPCエンドポイント
VPCエンドポイントを利用すると、VPC外に存在するS3やDynamoDB、AWS System Managerに対して接続を行う際にインターネットゲートウェイを利用する必要がなくなります。これによってサブネットはセキュアな状態を維持することができます。
VPCエンドポイントにはGatewayとinterfaceで２種類存在し、なんのサービスに接続するかでどちらを選ぶかを決定します。接続先のサービスによっては複数作成する必要があります。
https://docs.aws.amazon.com/ja_jp/ja_jp/vpc/latest/userguide/endpoint-services-overview.html


### interface型
AWS Systems Managerなどの（S3、DynamoDB以外）サービスに接続するために使われます。接続先のサービスによっては複数作成する必要があります。
サブネット内に作成し、そこから他のサービスとやり取りを行います。

### Gateway型
S3、DynamoDBと接続するために使用されます。interface型と違ってサブネットの外、かつVPCの中に作成されるため経路をルートテーブルにエントリする必要があります。インターネットゲートウェイと同じような位置にサービスが存在することを意識すればわかりやすいかと思います。