AWS Site To Site VPN

# 背景・概要
VPNは、ハンズオンの機会が少ないため、Black Beltから知識をインプットする。

# 内容
## オンプレからAWSに接続する種類
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/3508d1db-02e4-1c8a-319c-a17714fb6e1e.png)

以下の3種類がある。

- Client VPN
- Site-to-Site VPN
    - 　VGW（Virtual Private Gateway）に接続する。
        - 　VGWは、冗長化済み
    - 　オンプレから特定のVPCイン接続する。
    - 　ユーザ側はCGW（Customer Private Gate）に接続する。
- Direct Connect
    - TGW（Transit Gateway）に接続する。
        - TGWは、冗長化
    - 複数のVPCに接続できる。

## Site-to-Site VPNとは？
- CGWとTGW or VGW間は、インターネット接続でIPsecにより暗号化
- IPSec対応ルーターと固定Public IPで用意に構築可能（事前共有キーによる認証方式）
- TGWとVGWの使い所
    - 用途により使い分ける。
        - VGWは一つのVPCとつなぐ
        - TGWは複数のVPCとつなぐ
            - VPNの料金の他にTGWの料金が発生
## VPNの設定
- CGWの準備
- CGW
    - インターネットルーティングが可能な固定のIPアドレスにリソース名を定義する。AWSに登録する
        - 証明書による認証の場合、固定IPは不要
- ルーティングのタイプ
    - 静的or動的が選択可能。デバイスが対応しているのであれば、動的（*BGP*)を推奨
    - BGPの設計時に拠点ごとにユニークなASNを用意すること。
- ターゲットゲートウェイ
    - AWS側の仮想ゲートウェイを指す。
    - VGW or TGWを予め作成し、VPCと関連付けしておくこと。
    - *ASN*はCGWとは異なる値を設定すること

### ルーティングタイプについて
- 基本的に動的を選ぶ。CGWデバイスが非対応な場合のみ、静的を利用する。
- VPCのサブネットのルートテーブルの*ルート伝搬*を有効化する。
- 動的（**BGP**）にするメリット
    - 2つのトンネル間で冗長性が高まる。片方利用できな場合、スムーズな切り替えが可能になる。
    - オンプレミスとVPCのCIDR増減時に、自動的に対応できる。

### 認証タイプについて
- 固定パブリックIPアドレスを用意する。事前共有キー（*Pre-shared keys*)を方式を推奨。
- 非固定のパブリックIPアドレスが用意できない場合、プライベート証明書による認証を検討する。
    - CGW側で対応を確認する。
        - 事前共有キーは多くのベンダーが対応している。
        - プライベート証明書は予め確認が必要。
- 拠点の移転などで固定パブリックIPが変更になる場合、VPN接続の作り直しは不要。
    - ただし、ユーザ側のルーターの設定は必要


### MTUについて
- 最大送信単位を指す。
- Site-to-Site VPNでは、*パスMTG検出（Path MTU Discovery）*に対応してない。予めEnd-to-Endでパケットサイズが1399以下になるように、ホストとNW機器のMTU設定を行うこと。

## VGWとTGWについて
- どちらが良いか？
    - 主に通信対象のVPCの数で判断だが、利用機能などで総合的に検討する。

| ターゲットゲートウェイ |構成|柔軟さ|備考|
|:--|:--|:--|:--|
|VGW|シンプル<BR>関連リソースが少なく設定が容易。<BR>VPC毎に個別の環境を用意する場合に向いている。|1つのVPCに接続し、選択肢が少ない。|
|TGW|大規模|複数のルーティングテーブルを使いわけ、柔軟なルーティング設計が可能。||

### TGWのメリット
1. 複数のVPCに接続可能
    - VPC内のTGW ENIにアタッチメントすることで複数のVPCに接続ポイントを設けることができる。
1. 柔軟なルート設計
    - VPCごとに参照するルートテーブルを変える事が可能。
    - 例）
        - IGWを含むVPCを用意することでFW機能を集約できる。
1. 複数のVPNによるAct-Act通信
    - 複数のVPN接続を束ねることが可能。
    - *Equal Cost Multi Path(ECMP)*を利用して帯域を増やすことが可能。
    - １つのIPsecトンネルあたり、最大1.25Gbpsまで使える。。
    - 更にVPN接続を追加し、最大で50Gbpsまでのバーストを検証済み。

1. Acceleratedサイト間VPNオプション
    - 通常のVPN接続であれば、インターネットの接続影響を受けやすい。
    - Route53やCloudFrontで利用しているAWS Edge LocationにVPN接続Endpointを配置可能。
        - Edge LocationからRegionまではAWSのグローバルNWを利用でき、安定的な通信が可能になる。

## VPN接続の冗長化
### VGWの場合
- 1つのSite-to-Site VPNを作成すると、2つのIPsecトンネルが利用可能。
    - 両方のトンネルをUp状態に保つことが重要。
    - VGWは内部的に、冗長化してある。
    - VPC側もマルチAZ構成にしておくことが重要。
- CGW（ユーザ側のルーター）も冗長化しSPOFを解消する。
    - 2IPsec * 2VPN接続で合計4つのIPsecトンネルで冗長化
    - 冗長化した場合には、どちらのVPN接続が優先されるのか。
        - AWS→オンプレミス方向
            - AWSアルゴリズムでどちらかが選択される。(Active-Standby)優先度を設定することはできない。
            - ユーザ側のルータで、*AS Path Prepend*、*MED*を設定することで、どの経路を利用するか制御が可能になる。
        - オンプレミス→AWS方向
            - CGWのMEDによる制御に対応している場合、MED値により各接続ごとに優先させるIPsecトンネルが決定される。
            - MED値が等価の場合に、Act-Actになる。

### TGWの場合
- 1つのVPN接続＝2つのIPsecトンネル。（VGWと同じ）
- TGWから、VPCとのアタッチはAZごとに推奨。
- ECMPにより複数のVPN接続に分散し高い帯域することが可能
    - TGWでECMPを有効化することで、同じTGWに接続する全てのVPN接続にECMPが有効となる。
    - オンプレ→AWS方向への通信はユーザルータへ適切な設定を行うことで分散される。
    - 非対称ルーティング（行きと帰りのトラフィックが異なる）になる可能性がある。設定によりパケットがドロップする可能性があるため、ルーターの非対称ルーティングの設定が必要。

## Direct ConnectとVPNの併用
- Direct Connect（Dx)のバックアップとしてVPNを利用する場合に使う。2本Dxを用意することが困難な場合に使われることが多い。
- VPN接続はBGPを利用することが推奨される。
- AWS→クライアント方向は必ずDxが使割れる。

### TGW接続のDx/VPN接続
- TGWに終端&静的経路を設定した場合は、TGWのルートテーブルにVPN側にも静的経路を設定する必要がある。そのためVPNが優先される。
- Direct Connectの場合、DxGW→TGW
- VPNの場合、VPN→TGW

## CloudHub
- 同一のVGW/TGWに接続された動的AWS　VPN間でASNをユニークにすることで、折返し通信が可能。
    - オンプレ1→AWS→オンプレ2のように
- 折り返したくない場合、AS番号（ASN）を同一にするとBGPの特性上、同じAS番号がついているものはルートテーブルに追加しない。

## 運用
- VPC>サイト間のVPN接続でトンネルのステータスがアップになっている事がわかる。
    - ステータスの最終変更日や詳細でエラーがいつ、何が起きたかわかる。
- VPC Reachability Analyzerで到達性が確認できる
- VPCフローログにより情報をキャプチャできる。
- ユーザのルーターのログ
    - 時刻同期は設定しておくこと。

## 用語の整理
- BGP
- ASN（AS番号）
- 事前共有キー
- MTU
- ECMP

# 考察
TBD

# 参考
- [202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN](https://www.slideshare.net/AmazonWebServicesJapan/202110-aws-black-belt-online-seminar-aws-sitetosite-vpn)