初めに
オンプレミスからAWSへの接続、AWSのVPC同士の接続、さらには接続するVPCの数や予算によってなどのネットワーク接続に関してはさまざまなアーキテクチャのパターンが考えられる。
この記事ではAWSのネットワークに関する基本的なアーキテクチャをいくつか紹介し、その用途や違いをまとめた。
ネットワーク構成パターン
とにかくAWSに接続したい
・インターネットゲートウェイ(IGW)を使用する
(アーキテクチャのポイント)
・インターネット経由でAWSのリソースと通信できれば良い(通信内容を保護する必要がない)という場合
・運用コストを抑えたい場合
安全にAWSに接続したい
・VPNを使用する
(アーキテクチャのポイント)
・通信内容を保護したい場合
・頻繁に大量のデータを短時間に送受信する必要などがない場合にオススメ
・運用コストを抑えたい場合
いつも安定した接続でAWSに接続したい
・DirectConnect(DX)を使用する + 可用性の確保にVPN接続を併用する
(アーキテクチャのポイント)
・常に安定した通信が求められる場合や、頻繁に大量のデータを短時間に送受信する必要がある場合に構築される
・DirectConnect単独でも通信は可能だが、DirectConnectの接続ができなくなった場合に備えて、VPN接続を行っておくことがある
※コスト増を許容できるのであればもう一本DirectConnectを接続するとなおよい
・接続したいVPCが1つだけの場合
・AWS側での設定作業が必要になるため、ユーザによってリクエストで即開通はできず、開通まで少なくとも1週間以上はかかる
複数のVPCに接続したい
・DirectConnectGateway(DXGW)を使う
(アーキテクチャのポイント)
・接続したいVPNが複数ある場合
・VPC同士の通信が不要である場合
・DirectConnectやVPNを書くVPCの数だけ用意すれば複数のVPCに接続することが可能だが、それぞれの接続を設定するのには多大な労力や保守工数が必要になるDirectConnectGatewayで複数のVPCへの接続をまとめることが可能
・図に示したアーキテクチャではDirectConnectGatewayに接続したDirectConnectが1本だが、これも可用性を意識した場合は追加でもう一本DirectConnectを用意するなどしたほうが良い
さらにVPC間で通信したい(全部のVPC)
・TransitGateway(TGW)
(アーキテクチャのポイント)
・接続したいVPNが複数ある場合
・VPC同士の通信が必要である場合
・VPC同士の接続にはVPCピアリングが手段としてあるが、その場合は全VPCに他のVPC全てに対する接続を設定する必要が出てきてしまう。複数のVPCがある場合はTransitGatewayを使うことで(リージョン内では)1つのTransitGatewayで接続されたすべてのVPCの相互通信が可能となる
さらにVPC間で通信したい(一部のVPCだけ通信させる)
・TransitGateway(TGW) + DirectConnectGateway(DXGW)
(アーキテクチャのポイント)
・接続したいVPNが複数ある場合
・VPC同士の通信が必要である場合であり、なおかつそれが一部のVPCのみで通信したい場合
※図で示したアーキテクチャではVPC A,B,Cは通信できるが、AとC,CとDなどTGWと接続されていないVPC間の接続はできない
最後に一言
AWSのベストプラクティスの重要なキーワードに可用性がありますが、どんなプロジェクトでも通用する1つのパーフェクトなアーキテクチャは存在しないと思います。
そのプロジェクトの予算だったり、扱うデータの性質によって選ぶべきアーキテクチャは変わってきます。
プロのエンジニアとして、様々なアーキテクチャのパターンを知り、理解し、状況に応じたアーキテクチャを提案できるようにしていきたい。