AWS公式資料で挑むSCS認定(8)-VPC(続き)

[前回] [AWS公式資料で挑むSCS認定(7)-VPC](https://qiita.com/mingchun_zhao/items/1492d0abee18ddc4ae1a)

## はじめに

VPCの勉強、つい佳境に入りました。
今回は、VPC接続オプションを深掘りします。

- なぜこれだけ種類を備える必要があったか
- それぞれどのようなシーンで使用されるか
- 類似オプションについて使い分けはいかに

想像は膨らむばかり。
早く「木」(細部)を勉強し疑問解きたーい。

## VPC接続オプションの DEEP DIVE

VPC接続オプションは、AWSホワイトペーパーの[Amazon Virtual Private Cloud Connectivity Options](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-vpc-connectivity-options.pdf)を参照しました。
一つずつ機能とユースケースを構成図から理解しながら進めようと思います。

### VPCとリモートネットワーク間の接続
- AWS Managed VPN
    - 機能
        - インターネット経由でリモートネットワークとVPCの間にIPsec VPN接続を作成
    - ユースケース
        - AWS Managed VPNが提供する自動化された冗長性とフェイルオーバー機能を利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/bb585299-0009-f720-3c1c-8798ffc4f146.png)

- AWS Transit Gateway + VPN
    - 機能
        - AWS Transit Gatewayは、高可用性とスケーラビリティを持つリージョン単位のネットワークトランジットハブ
        - AWS Transit Gateway + VPNは、Transit Gateway VPN アタッチメントを用いて、インターネットを介してリモートネットワークとAWS Transit Gatewayの間にIPsec VPN接続を作成
        - Transit Gateway VPN アタッチメントとは、VPN接続をAWS Transit Gatewayにアタッチすること(カスタマーゲートウェイを指定する必要あり)
    - ユースケース
        - 同じリージョン内の複数VPCへの接続コストを下げたい(複数VPCへIPSec VPN接続を追加・管理するコストを削減したい)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/d145d6ec-b544-fe5f-3e64-a168dd66c2e3.png)

- AWS Direct Connect
    - 機能
        - Direct Connect(DX)は、オンプレミスとAWSをつなぐ専用線サービス(インターネット経由しない)
        - DXはConnectionとVIFで構成される
            - Connection(接続)は物理的な回線に相当する(帯域幅を選べる)
            - Virtual Interface(VIF)(仮想インターフェイス)は仮想的な回線でVLAN IDを持つ。一つのConnectionに複数作成できる(ConnectionをVLAN(802.1Q)で区切る)
        - オンプレミスネットワークから同じリージョン内の1つ以上のVPCへの専用線接続を作成
    - ユースケース
        - AWSとデータセンター、オフィス、またはコロケーション環境との間にプライベート接続を確立したい
        - ネットワーク作成コストを削減、帯域幅のスループットを向上させ、インターネットベースの接続より一貫したネットワークエクスペリエンスを利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/f30ddec1-4783-f518-9c99-52e366477350.png)

  - Direct Connect gateway
    - 機能
        - 異なるリージョンまたはAWSアカウントを跨ぐ複数VPCへの接続を作成
    - ユースケース
        - Direct Connect gatewayをグローバルに利用したい
        - AWS Direct Connectの管理コストを減らしたい(1つのプライベートVIFから複数VPCに接続できるので)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/88270fdd-af2c-9ccf-b28f-cfbf09c14374.png)

- AWS Direct Connect + AWS Transit Gateway
    - 機能
        - Direct Connect Gateway(DXGW)へのTransit VIFアタッチメントを使用し、プライベート専用接続を介して最大3つの地域集中型ルーターにネットワークを接続
        - 各AWS Transit Gatewayは、同じリージョンのVPCを相互接続し、VPCルーティング構成を1か所に統合​​するネットワークトランジットハブ
    - ユースケース
        - プライベート接続を介したVPCとネットワーク間の接続の管理を簡単にしたい
        - ネットワーク作成コストを削減、帯域幅のスループットを向上させ、インターネットベースの接続より一貫したネットワークエクスペリエンスを利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/bb59b043-a61f-6ccc-cded-6124a0a9a49f.png)

- AWS Direct Connect + VPN
    - 機能
        - AWS Direct Connect専用ネットワーク接続をAWS VPNと組み合わせたもの
        - AWS Direct ConnectのパブリックVIFは、リモートネットワークとパブリックIPで提供されるAWSサービス(S3やDynamoDB)の間に、IPsec VPNなど専用ネットワーク接続を確立
        - パブリックVIFは、リモートネットワークとAWSをパブリックIPでつなぐもの
    - ユースケース
        - 安全で高速なネットワークを構築、帯域幅のスループットを向上させることで、インターネットベースの接続より一貫したネットワークエクスペリエンスを利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/53268286-655e-67c3-290a-de3fc9028297.png)


- AWS Direct Connect + AWS Transit Gateway + VPN
    - 機能
        - AWS Direct ConnectでパブリックVIFを使用することで、プライベート専用接続を介して、ネットワークとVPCの地域集中型ルーター間のエンドツーエンドのIPSec暗号化接続が可能になる
    - ユースケース
        - 同じリージョン内の複数VPCへのIPSec VPN接続のコストを最小限に抑えたい、管理を簡単にしたい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/75fbf460-de5f-f32b-9418-f940fff4aa73.png)

- AWS VPN CloudHub
    - 機能
        - 複数の AWS Site-to-Site VPN 接続がある場合、AWS VPN CloudHub を使用して、安全な Site-to-Site 通信を提供することができる
    - ユースケース
        - 複数のブランチオフィスと既存のインターネット接続があり、リモートオフィス間でプライマリ接続またはバックアップ接続を実現したい
        - そのため、便利でコストを抑えられるハブアンドスポークモデルを実装したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/6885f075-65d6-62d7-b612-25ac011249ea.png)

- Software Site-to-Site VPN
    - 機能
        - VPCに関連付けられたトランジットゲートウェイ(TGW)または仮想プライベートゲートウェイ(VGW)を経由し、リモートネットワークへの安全なアクセス環境を利用できる
        - VPN 接続は VPC とユーザーのオンプレミスネットワークの間の接続を指す
        - Site-to-Site VPN ではインターネットプロトコルセキュリティ (IPsec) VPN 接続がサポートされる
        - Site-to-Site VPN 接続の種類
            - AWS Classic VPN
            - AWS VPN 
    - ユースケース
        - 拠点(リモートネットワーク)とVPCを簡単に早く接続したい
        - 価格重視で、スモールスタートしたい
        - Direct Connectのバックアップ回線として利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/4f38d878-b52e-d2f3-8a88-565610491430.png)

### VPCとVPC間の接続(VPC同士)

- VPC peering
    - 機能
        - プライベート IPv4 アドレスまたは IPv6 アドレスを使用して 2 つの VPC 間でトラフィックをルーティングすることを可能にするネットワーク接続
    - ユースケース
        - 異なる AWS アカウントの VPC 間でピア関係を確立したい
        - 異なる AWS リージョンの VPC 間でピア関係を確立したい
        - シンプルで費用対効果の高い方法により、リージョン間でリソースを共有したり、地理的な冗長性のためにデータをレプリケートしたい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/7c27db0c-2bf6-d4fa-fa13-e6198769a57b.png)

- AWS Transit Gateway
    - 機能
        - 中央ハブを介して VPC とオンプレミスネットワークを接続
    - ユースケース
        - 複雑なピア接続関係をなくし、ネットワーク作成を簡単に行いたい
        - クラウドルーターとして利用したい(新しい接続はそれぞれ 1 回だけ行われる)
        - リージョン間ピア接続で、インターネットを介さず、データを自動的に暗号化し転送したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/1f29491b-8da6-6361-770f-4659a87531be.png)

- Software Site-to-Site VPN
    - 機能
        - VPCに関連付けられたトランジットゲートウェイ(TGW)または仮想プライベートゲートウェイ(VGW)を経由し、リモートネットワークへの安全なアクセス環境を利用できる
        - VPN 接続は VPC とユーザーのオンプレミスネットワークの間の接続を指す
        - Site-to-Site VPN ではインターネットプロトコルセキュリティ (IPsec) VPN 接続がサポートされる
        - Site-to-Site VPN 接続の種類
            - AWS Classic VPN
            - AWS VPN 
    - ユースケース
        - 拠点(リモートネットワーク)とVPCを簡単に早く接続したい
        - 価格重視で、スモールスタートしたい
        - Direct Connectのバックアップ回線として利用したい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/eda2e40e-5b1b-a7a7-56b6-0558688489d6.png)

- Software VPN-to-AWS Managed VPN
    - 機能
        - AWS Managed VPNとSoftware VPNを組み合わせて複数のVPCを柔軟に接続する
    - ユースケース
        - Software VPNアプライアンスと仮想プライベートゲートウェイ(VGW)の間に安全なVPNトンネルを作成し、各VPCのインスタンスがプライベートIPアドレスを使用して相互にシームレスに接続できるようにしたい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/ef9a696e-d515-212d-46ba-4fe06fc64dbc.png)


- AWS Managed VPN
    - 機能
        - インターネットを介してリモートネットワークをVPCに接続するためのIPsec VPNを作成
    - ユースケース
        - 複数のVPN接続を利用して、ルーターからVPCの間でトラフィックをルーティングしたい
    - AWS Managed VPN VPC-to-VPC ルーティング
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/b423eafc-7b92-a04e-3df3-3d03ed5d3cfe.png)


    - AWS Direct Gateway VPC-to-VPC ルーティング
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/e1fc35e8-53e9-3e26-4c26-3f35a0e54d8c.png)


- AWS PrivateLink
    - 機能
        - トラフィックをパブリックインターネットに公開することなく、VPC、AWS のサービス、およびオンプレミスネットワーク間のプライベート接続を提供
    - ユースケース
        - さまざまなアカウントや VPC 間でサービスを簡単に接続することで、ネットワークアーキテクチャを大幅に簡略化したい
        - インターフェース型 VPC エンドポイント(インターフェイスエンドポイント)を用いて、AWS パートナーがホストするサービスと AWS Marketplace で利用可能なサポート対象のソリューションへ接続したい
        - Gateway Load Balancer エンドポイントを用いて、仮想ネットワークアプライアンスまたはカスタムトラフィックインスペクションロジックで、同じレベルのセキュリティとパフォーマンスを実現したい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/3d29867c-c96a-7880-0ee5-267cc530b146.png)

### VPCとソフトウェアリモートアクセス間の接続

- AWS Client VPN
    - 機能
        - AWS リソースやオンプレミスネットワーク内のリソースに安全にアクセスできるようにする、クライアントベースのマネージド VPN サービス
    - ユースケース
        - OpenVPN クライアントを使用して、あらゆる場所から安全な TLS 接続を実現したい
        -  AWS マネージドサービスを使うことで、サードパーティー製のリモートアクセス VPN ソリューションをデプロイして管理するという運用上の負担を取り除きたい
        -  高可用性と高伸縮性を実現し、AWS リソースとオンプレミスリソースに接続しているユーザー数に自動的に対応したい


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/83e2677c-3500-61b4-c501-688dc756dfe0.png)

- Software client VPN
    - 機能
        - Amazon EC2で実行されるリモートアクセスソリューション
        - 複数のパートナーとオープンソースコミュニティのエコシステムから選択できる
    - ユースケース
        - VPCへのリモートアクセスに使用するセキュリティプロトコルに対し、大きな柔軟性を持たせたい
        - インターネットを介してAWSリソースとオンプレミスに安全にアクセスしたい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/371701f7-f9e3-176e-3270-5bd61754549d.png)

### Transit VPCオプション
- 機能
    - ハブとなるVPCにCisco CSR 1000v(Juniper vSRXも可)を配置し、スポークとなるVPCのVGWとVPN接続して、ハブ&スポーク型のネットワークを構築する
- ユースケース
    - 二つ以上のAWSリージョンに渡るプライベートネットワークを構築したい
    - 複数のVPCで、データセンター、パートナーネットワーク、その他のクラウドへの接続を共有したい
    - VPC と AWS のリソースを複数の AWS アカウントに収めることで、クロスアカウントでの使用量を利用しコスト下げたい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/6bb591f7-ee88-0bee-4066-c5f98c38e539.png)


これで、VPC接続オプションを一通り勉強しました。
AWS様、様々なニーズやケースを満遍なく考慮し、接続オプション備えていますね。
勉強前に「オプションが多すぎる。本当に全部必要なの?」が脳裏をかすめた自分が恥ずかしい。

## クイズでリラックス

いきなりですが、クイズです。

VPCの代表的なクォータ(制限値)についてお答えください。

|リソース|クォータ|
|:--------:|:--:|
|リージョン当たりの VPC の数|?|
|VPC 当たりのサブネットの数|?|
|VPC 当たりの IPv4 CIDR ブロック|?|
|VPC 当たりの IPv6 CIDR ブロック|?|
|AWS アカウント当たり、1 リージョン内の Elastic IP 数|?|
|リージョンあたりの Egress-only インターネットゲートウェイの数|?|
|リージョンあたりのインターネットゲートウェイの数|?|
|アベイラビリティーゾーン当たりの NAT ゲートウェイの数|?|
|VPC あたりのキャリアゲートウェイ数|?|
|VPC 当たりのネットワーク ACL の数|?|
|ネットワーク ACL 当たりのルールの数|?|
|VPC 当たりのルートテーブルの数|?|
|セキュリティグループ当たりのインバウンドルールまたはアウトバウンドルールの数|?|
|ルートテーブル当たりのルートの数(伝播されないルート)|?|
|ルートテーブル当たりの、BGP でアドバタイズされるルートの数 (伝播されるルート)|?|
|VPCあたりのセキュリティグループの数|?|
|ネットワークインタフェースあたりのセキュリティグループ|?|
|VPC 当たりのアクティブな VPC ピアリング接続|?|
|未処理の VPC ピアリング接続リクエスト|?|
|VPCあたり(仮想プライベートゲートウェイ)のVPN接続数|?|


正解は[Amazon VPC クォータ](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/amazon-vpc-limits.html)に載っています。
認定試験に出題されるかなー。

※ 前々回のIAM編にも[「クイズでリラックス」](https://qiita.com/mingchun_zhao/items/08308efcc48f031d8d3c#%E3%82%AF%E3%82%A4%E3%82%BA%E3%81%A7%E3%83%AA%E3%83%A9%E3%83%83%E3%82%AF%E3%82%B9)追加しました、ご興味あればどうぞ。

## おわりに

VPCの理解をさらに深めたい気持ちではありますが、ここで一旦終了とします。
きっと、今後他のサービス勉強時に再度VPCの話題が復活しますので。
ここは完璧を求めず、短いスパンで試験内容全般に目を通すことに徹します。
次回は、KMSの勉強です、お楽しみに。

[次回] [AWS公式資料で挑むSCS認定(9)-KMS](https://qiita.com/mingchun_zhao/items/67b44c02b5d78218702e)