[AWS]Direct ConnectとTransit Gateway

#Direct Connectとは
一言で言うと、**オンプレ環境とAWSを繋ぐ専用線**、です。



#ユースケース
AWSとオンプレ環境を繋ぐには以下の3種類があります。
・Direct Connect
・VPN
・HTTPS･SSH

それぞれで主に以下のような使い方をします。
Direct Connect・・・オンプレとAWS間で大量の通信が発生する場合
VPN・・・コストを抑えたい場合
HTTPS/SSH・・・通信要件がない場合、通信は暗号化して接続する、くらいの感覚

回線で括ると、以下のように分けられます。
「インターネット接続」はVPN、HTTPS/SSH
「専用線」はDirect Connect

VPNの場合インターネット回線なので、ベストエフォートとなり速度が安定しない場合があります。
なので業務通信やオンライン処理が必要な場合はDirect Connectを選択した方が良いです。

#利用料金
Direct Connectは通信キャリアによってサービスとして提供されます。
専用線として１G、10Gを引くことになるので構成にもよりますが月10〜20万くらいはいくのではないでしょうか
(なんかどこのキャリアも明確な金額はあまり載っていないなぁ)

ただ、月額でかかるコストには定額の部分と、通信量にかかる金額の両方があるので注意です。
AWS通信量は以下参考
[料金-AWS Direct Connect](https://aws.amazon.com/jp/directconnect/pricing/)

また、AWSはアウトバウンドの通信量が課金されるのですが、Direct Connectを利用すると割安になる点はメリットと言えます。

#専有型とホスト型

また専有型とホスト型でも料金が違うようです。
ホスト型と専有型の違いはクラスメソッドさんの以下サイトがわかりやすいです。
[Direct Connect接続タイプとVIF作成パターンをまとめてみた](https://dev.classmethod.jp/articles/direct-connect-connection-pattern-vif/#toc-2)
大雑把に言ってしまうと、**回線を占有しているかどうか**に違いがあります。

##専有型
専有型ではDirect ConnectはAWS側のルータと回線事業者のルータ（もしくは自前でもいける？？）を直接結線するやり方になります。
これによって１Gbpsや10Gbpsの速度が保証されます。

##専有VIFとホスト(共有)VIF
VIFとはVirtual Interface、日本語だと仮想インターフェースと呼ばれるものです。
このVIFを作成することでVPCやDirect Connect GateWayと呼ばれる終端装置のようなものに接続します。

専有VIFと言うのは一つの専用線から一本VIFを作成して、Direct Connectを所有しているアカウント内のVPCに接続するパターンとなります。

ホスト(共有)VIFはDirect Connectを所有しているアカウントとは別のアカウントにVIFを伸ばすやり方です。
複数アカウント運用をしていて、異なるVPCにもDirect Connect接続したい場合の方法となります。

専有型と共有型の違いとして、マネコンから見た時に専有型はDirect Connectの接続が見えることと、Cloud watchメトリクスが使える点です。

##ホスト型
パートナーの１Gbpsの回線から仮想的な接続を行う形です。
帯域としては１００Mbps〜500Mbpsほどの帯域を専有することが可能。
この場合VIFは一つしか作れません。

#Transit Gatewayとは
複数のDirect ConnectやVPCを集約するハブのようなサービス
だいぶざっくり書きましたが、以下のような図がイメージしやすいかと思います。

##Transit Gatewayを利用しない場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/36644b62-e13f-5d32-4bc9-f1c96f29983b.png)

複数VPCがある場合、VPC間はVPCピアリングを設定しないと通信できません。
これは一対一で設定する必要があるので、フルメッシュで設定していく必要があります。
そうなるとVPCが増えれば増えるほど設定は大変です。。。

##Transit Gatewayを利用した場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/87cda2e1-8751-da07-8bc2-cef21aa87712.png)

ハブのような形でVPCを繋ぐことができるので、設定も管理も楽です。


#何が便利なのか？
・VPCピアリングをいちいち設定する手間が省ける
・今までのDirect Connect Gateway(DXGW)ではVPC〜オンプレ間のみだったが、Transit GatewayではさらにVPC間の接続もできるようになったことと、DXGWでは最大10個までしかVPCを接続できなかったがTransit Gatewayでは数千個ほど接続可能。


#利用の制約や料金
##制約
・他リージョンのVPCは接続できない。
・Transit Gateway同士は接続することができない。
・CIDRが重複しているVPCは繋げない
・DXは1Gbps以上の接続につきTGWのためのトランジット仮想インターフェースは１つだけ
　→なのでDXからTransitVIFを２本伸ばしてTGWを二つ作る、という構成はできない。(そんなことする意味もないだろうけど)

導入時に気をつける点については以下記事がわかりやすかったです。
[Transit Gatewayを導入するときに気をつけたいポイント4選](https://qiita.com/tutuz/items/71a0407717e2f17d9ea8)

##料金
料金体系はわかりやすいです。
###固定費
Transit Gatewayの1アタッチ数に月0.07$
例えばVPNとVPCが一つずつ繋がっている場合
0.07✖️２＝0.14$/hとなります。

###変動費
ネットワーク量によっても課金されていきます。
１GBごとの通信量に対して、0.02$課金されていきます。

参考資料
[AWS Transit Gateway の料金](https://aws.amazon.com/jp/transit-gateway/pricing/)
[オンプレとVPCを接続するTransitGatewayとVPNの料金を比較する](https://dev.classmethod.jp/articles/compare-transitgateway-and-vpn-pricing/)

#ユースケース
今回はDirect Connectを絡めたユースケースについてのみ書いていきます。

一般的には以下のような構成図となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/0dd5a542-6033-655a-306e-5c275ecfc733.png)

ポイントとしては
・Virtual Private Gateway(VGW)が不要
・VIFの種類はTransit VIFで作成
・DXGWとTGWは別アカウントでもOK
・TGWに接続するVPCも別アカウントでOK

#終わりに
今回も調べたことをグワーっと書き出しただけなのですが、間違っている部分ありましたらご指摘いただけるとありがたいです！