AWS VPCについて



#VPC　(Amazon Virtual Private Cloud)

　VPCは、AWSクラウド内に論理的に分離されたセクションを作り、ユーザーが定義した仮想ネットワークを構築するサービス。
　サブネットは、パプリックサブネットとプライベートサブネットに分けることでのセキュリティ面、複数のアベイラビリティゾーンでAWSサービスを利用して可用性を図る面では重要になる。

・任意のIPアドレス範囲の洗濯をして仮想ネットワークを構築
・サブネットの作成、ルートテーブルやネットワークゲートウェイの設定などネットワーキング環境を完全に制御可能
・必要に応じてクラウド内外のネットワーク同士を接続することも可能
・複数の接続オプションが利用可能（インターネット経由/VPN/専用線Direct Connect）



##サブネット
 VPCのIPアドレス、１つ以上のサブネットが必要になる。
 IPv4は枯渇しつつ、今後はIPv6に変わっていく。
 ネットワークACLを使用してトラフィックの設定を行える。
サブネット作成時にAZを指定する。作成後は変更ができない。

####パブリックサブネット
インターネットを接続する必要があるリソースの場合、インターネットの出入りができる。
パブリックサブネットからインターネットに接続するには、インターネットゲートウェイが必要です。


####プライベートサブネット
インターネットに接続しないリソースの場合、インターネットから出れるのみ！！！！！！
**プライベートからインターネットに繋げたい場合は、パブリックサブネットにNATゲートウェイを置き、NATゲートウェイからIGW（インターネットゲートウェイ）を通ってインターネットから出れるようになる。**
インターネットから隔離することでセキュリティを高めることが可能です。

####インターネットゲートウェイ（IGW）
VPC内のリソースとインターネット間の通信を可能にするためにVPCにアタッチするゲートウェイ。

####仮想プライートゲートウェイ（VGW）
VPCがVPNやDirect Connectと接続するためのゲートウェイです。VGWも各VPCに１つだけアタッチすることができます。複数のVPNやDirect Connectと接続は可能。

##ルートテーブル
ネットワークトラフィックの経路を判断する際に使用される。(ルートと呼ばれる)
VPC内部通信や、インターネット・オンプレミスネットワーク基盤など外部へび通信を実装できる。
１つのルートテーブルを複数のサブネットで共有することはできるが、１つのサブネットに複数のルートテーブルは適用できない。

**・セキュリティグループ（ステートフル）**
　・EC2やELB、RDSなどインスタンス単位の通信制御に利用する。

**・ネットワークACL（ステートレス）**
　・サブネットごとの通信制御に利用する。

####CIDR
サブネットマスクの値を設定し、同じネットワークとして扱うIPアドレスの個性を調整できる。
【**重要**】 VPCは、/16 〜　/28のCIDR範囲しか使用できない。
**ある特定のIPアドレスだけ範囲指定したい場合は、/32を使用して制限することが可能。**

|サブネットマスク|サブネット数|サブネット当たりのIPアドレス数|
|:--:|:--:|:--:|
|/18|4|16379|
|/20|16|4091|
|/22|64|1019|
|/24|256|251|
|/26|1024|59|
|/28|4096|11|


##VPCとオンプレミス接続
・VPN接続
・専用線接続（Direct　Connect）

###Direct　Connect　
お客様のデータセンターやオフィスを専用線などを介してAWSへプライベートに接続するサービス。
物理的に自社オンプレ環境を接続することでAWS環境との専用線接続を実現することが可能。

**VPNの方が安くて早く使用できるが、信頼性や品質はDirect　Connectが良い。**

||VPN|Direct Connect|
|:--:|:--|:--|
|コスト|安価なベストエフォート回線利用可能|キャリアの専用線サービス契約が必要となりVPNより割高|
|リードタイム|クラウド上での接続設定で可能なため即時使用可能|物理的対応が必要なため数週間かかる|
|帯域幅|暗号化のオーバヘッドにより制限がある|ポート当たり１G/10Gbps|
|品質|インターネット経由のためネットワーク状態の影響を受ける|キャリアにより高い品質が保証される|
|障害|自社で保持している範囲以外の確認は難しい|物理的に経路が保管されているため比較的容易|

###Direct　Connect　Gateway
１つのDirect Connect接続で拠点と複数のAWSアカウントやVPCに接続することが可能です。


##VPCエンドポイント
**VPVエンドポイントは２種類あり、ゲートウェイ型とプライベートリンク型**


**VPCエンドポイント（ゲートウェイ型）は、**ルートテーブルの指定されたターゲットとなるゲートウェイです。サポートされる AWS のサービスを宛先とするトラフィックをVPC内外で接続する際に使用します。以下の AWS のサービスがサポートされています。
・Amazon S3 
・DynamoDB

**VPCエンドポイント（プライベートリンク型）は、**対象サービスを宛先とするトラフィックのエントリポイントとなるプライベート IP アドレスを持つ Elastic Network Interface です。以下のサービスがサポートされています。
・Amazon API Gateway
・Amazon CloudWatch
・Amazon CloudWatch Events
・Amazon CloudWatch Logs
・AWS CodeBuild
・Amazon EC2 API
・Elastic Load Balancing API
・AWS Key Management Service
・Amazon Kinesis Data Streams
・Amazon SageMaker ランタイム
・AWS Secrets Manager
・AWS Service Catalog
・Amazon SNS
・AWS Systems Manager
・他の AWS アカウントによってホストされるエンドポイントサービス
・サポートされる AWS Marketplace パートナーサービス

##VPCピアリング
VPCピアリングにより２つのVPC間でのトラフィックルーティングが可能になる。
**・異なるAWSアカウント間のVPC間を接続可能**
**・一部のリージョン間の異なるVPC間の接続可能**
**・単一障害点や帯域幅のボトルネックは存在しない**

##VPCフローログ
VPC内の通信解析には、VPCフローログを利用します。VPCフローログはAWSでの仮想ネットワークインターフェイスカードであるENI単位で記録されます。 
【送信元/送信先アドレスとポート、プロトコル番号、データ量と許可/拒否】

##VPC内にあるEC2インスタンスに繋がらない
VPC内に設置したEC2インスタンスに対してインターネットからアクセスできない場合は、以下のような要因が考えられます。  

**・インターネットゲートウェイがサブネットに設定されていない。**
** ・ネットワークACLの設定でインターネットアクセス許可が設定されていない。**
 **・セキュリティグループの設定でインターネットアクセス許可が設定されていない。**
** ・パブリックIPアドレスが付与されていない。** 

インターネットアクセスができていない可能性があるため、VPCにインターネットゲートウェイが接続されていて、ルートテーブルがサブネットに対して正しく構成されていることを確認する必要があります。

##Transit Gateway
**複数のVPCとオンプレミスネットワークを中央ハブを介して接続するサービス。**

Transit Gateway を使用すれば、中央のゲートウェイからネットワーク上にあるVPC、オンプレミスのデータセンター、リモートオフィスそれぞれに単一の接続を構築して管理することができます。Transit Gateway がハブの役割を果たし、トラフィックがスポークのように接続されたネットワーク間をどのようにルーティングするかをすべて制御します。このようなハブアンドスポーク型では、各ネットワークを Transit Gateway にのみ接続する必要があり、他のすべてのネットワークに接続する必要がないため、大幅に管理を簡略化して運用コストを削減できます。 **新たに VPC を追加する場合は、Transit Gateway に接続するだけで、同じ Transit Gateway に接続されている他のネットワークにも自動的につながります。このように接続が簡単なため、成長に合わせてネットワークを難なくスケールできます。 **

##AWS managed VPN
Amazon VPCにはリモートの顧客ネットワークとVPCの間にIPsec VPN接続を作成するオプションがあります。AWS managed VPNを利用することで、オンプレミス環境とVPC間とのサイト間接続を実行することができます。