⛅
AWS ネットワーク接続サービス
はじめに
本記事は、AWS Certified Solutions Architect - Professionalの第 1 分野: 複雑な組織に対応するソリューションの設計
のネットワーク接続戦略を設計する
に関連するAWSサービスの特徴やポイントのまとめです
対象知識
- AWS のグローバルインフラストラクチャ
- AWS ネットワークの概念 (Amazon VPC、AWS Direct Connect、AWS VPN、推移的
ルーティング、AWS コンテナサービスなど) - ハイブリッド DNS の概念 (Amazon Route 53 Resolver、オンプレミス DNS 統合など)
- ネットワークセグメンテーション (サブネット、IP アドレス指定、VPC 間の接続など)
- ネットワークトラフィックモニタリング
VPCエンドポイント
ゲートウェイエンドポイント
- VPCのサービス専用のゲートウェイをアタッチ
- 対象サービス:S3、DynamoDB
- 利用料金:発生しない
- 設定:ルートテーブルにゲートウェイへのルート設定が必要
- オンプレミス、別リージョンからアクセス
- 直接的なアクセスはできない
- プロキシサーバーを経由してアクセス
- 高可用性:ELB、EC2 Auto Scalingを使用
- メリット:同一VPC内のEC2などからのアクセスであれば、コストが発生しない
インターフェイスエンドポイント
- VPCのサブネットにENIを作成、ENIのプライベートIPアドレスを使用してサービスにアクセス
- AWS PrivateLinkを利用してENIとサービスの間のプライベート接続を提供
- 対象サービス:S3、DynamoDBを含む数多くのサービス
- 利用料金:発生する
- 設定:インターフェイスエンドポイントが作成されるとDNS名が発行され、このDNSをサービスエンドポイントに指定
- 高可用性:複数のAZのサブネットを指定
-
オンプレミスからアクセス
- プロキシサーバーを介する必要ない
- メリット:オンプレミスや他リージョンのVPCからのアクセスの場合、構成がシンプル
エンドポイントポリシー
- エンドポイントを使用したリクエストのアクションやリソースを絞る
- デフォルト:全てのリソース、アクションを許可
AWSクライアントVPN
- オンプレミスクライアントからVPCへのVPN接続が可能
- VPCを介したオンプレミスやインターネット、他のVPCへのOpenVPNベースのVPNクライアントを使用した安定なアクセスが可能
基本的なクライアント VPN アーキテクチャ
認証タイプ
- Active Directory認証(ユーザーベース)
- AWS Managed Microsoft ADまたはAD Connectorを使用
- SSO(SAMLベースのフェデレーション、ユーザーベース)
- IAM SAML IDプロバイダーを作成して、クライアントVPNエンドポイントの認証で指定
- 相互認証(証明書ペース)
- AWS Certificate Managerにアップロードしたサーバー設計書とクライアント証明書を使用
接続ログ
CloudWatch Logに接続ログを記録
接続ハンドラ
接続時にLambda関数で任意のプログラムを実行して、接続の許可・拒否判定ロジックを実装できる
AWS Site-to-Site VPN
VPCに仮想プライベートゲートウェイをアタッチして、オンプレミスのルーターとIPSec(Internet Protocol Security)VPN接続が可能
仮想プライベートゲートウェイ
- ASN(Autonomous System Number、自律システム番号)を指定できる
- 指定しない場合:AWSのデフォルトASN(64512)が使用される
カスタマーゲートウェイ
- オンプレミス側のルータ
- 動的ルーティング:BGP(Border Gateway Protocol)ASNの指定が可能
- パブリックなASNがない場合:プライベートASN(64512~65534)を指定できる
- 認証(証明書ベースではない場合)
- 事前共有キー:インターネットから接続可能なIPアドレスが必要
- 証明書ベース:AWS Certificate Managerにプライベート証明書をインポートして指定可能
VPN接続
仮想プライベートゲートウェイとカスタマーゲートウェイのVPN接続を作成できる
VPN接続でサポートされている機能
- Internet Key Exchange バージョン2(IKEv2):暗号化のための共通鍵を交換する
- NATトラバーサル(NAT-T):オンプレミス側でNATルーターを介したVPN接続が可能
- デッドピア検出(DPD)
- 接続先のデバイスが有効かどうか確認
- デッドピアタイムアウトが発生した時のアクション:接続クリア(デフォルト)、再起動、何もしない
トンネル
- VPN接続を作成すると、仮想プライベートゲートウェイは2つのAZにそれぞれトンネルを作成(冗長性確保)
- パブリックIPアドレスを使用
- トンネルエンドポイントの置換発生:AWS Personal Health Dashboardに通知が送信される
- 認証:事前共有キー(Pre-Shared Key)は自動生成、特定の文字列を指定できる
- IKEネゴシエーションの開始
- トンネルオプションから決定
- デフォルト:カスタマーゲートウェイから開始
- AWSから開始する場合
- カスタマーゲートウェイにIPアドレスが必要
- IKEv2のみでサポート
複数のSite-to-Site VPN接続
- VPN CloudHub
- 1つの仮想プライベートゲートウェイから、複数のカスタマーゲートウェイにVPN接続を作成
- 各カスタマーゲートウェイには、個別のASNを使用する必要がある
冗長なSite-to-Site VPN接続
カスタマーゲートウェイデバイスとVPN接続を追加
ソフトウェアVPN
EC2インスタンスにソフトウェアVPNをセットアップ → インターネットゲートウェイ経由でVPN接続
- 使用ケース
- 接続両端を完全にコントロールする必要がある
- IPSec以外のVPNプロトコルが必要
AWS Direct Connect(DX)
Customer Router から Direct Connectのルーター(DX Router)に、標準のイーサネット光ファイバーケーブルを介して接続するサービス
- 主要なコンポーネント:接続、仮想インターフェイス(VIF)
接続
専用接続
- 単一のアカウントに関連付けられた物理イーサネット接続
- ロケーション、ポートスピード(1Gbps、10Gbps、100Gbps)を指定して接続リクエストを作成
- DXロケーション事業者へのクロスコネクトのリクエストにLOA-CFA(Letter of Authorization and Connecting Facility Assignment)が必要
ホスト接続
- AWS Direct Connectパートナーが運用している物理イーサネット接続
- ロケーション、ポートスピード(50Mbps、100Mbps、200Mbps、300Mbps、400Mbps、500Mbps)を指定して接続リクエストを作成
- パートナーが接続設定したら、コンソールのConnectionに接続が表示されるので、ホスト接続の承諾をして受け入れる
仮想インターフェイス(VIF)
- Direct Connectを使用するには、仮想インターフェイスの作成が必要
- VIFを作成してVLANを生成
- ホスト型仮想インターフェイス(ホスト VIF):接続を作成したアカウントを他のアカウントのVIFで利用するため作成
プライベート仮想インターフェース
- VPCにアタッチされた仮想プライベートゲートウェイ、Direct Connect Gatewayに接続するVIF
- プライベートIPアドレスを使って接続
- Direct Connectと同じリージョンの仮想プライベートゲートウェイに接続
- Direct Connect Gatewayに接続して、異なるリージョンの仮想プライベートゲートウェイに接続(最大10、それ以上はトランジット仮想インターフェイスを使用)
- オンプレミスのLinuxからEFSマウントターゲットにマウント可能
パブリック仮想インターフェース
- パブリックIPアドレスを使用してすべてのAWSパブリックサービス(S3、DynamoDBなど)にアクセス可能
トランジット仮想インターフェース
- Direct Connect Gatewayに関連付けられたTransit Gatewayにアクセス可能
- 1Gbps、2Gbps、5Gbps、10Gbpsの接続で使用可能
VPNバックアップのDirect Connect
- 障害時に、低い帯域幅になったとしてもコストを優先したい場合は、VPNバックアップを使用した構成が検討できる
- Direct Connect で 1Gbpsを超える速度で使用する構造では非推奨(VPNトンネルでは最大1.25Gbpsがサポートされるので)
回復性レベル
Direct Connectのみで冗長化を実現:接続作成時に「接続ウィザード」を使用
最大回復性
- 回復可能な障害:デバイス、接続、ロケーション
- 重大でクリティカルなワークロード向け
高い回復性
- 回復可能な障害:デバイス、接続、ロケーション
- ロケーションの障害が発生した際には冗長化は失われる
- クリティカルなワークロード向け
開発とテスト
- 回復可能な障害:デバイス、接続
- 開発およびテスト環境向け
LAG(Link Aggregation Group)
- 複数の専用接続を集約して1つの接続として扱えるようにする論理インターフェース
- 1Gbps、10Gbps、100Gbpsのみ
Direct Connectの料金
- ポート時間:容量と接続タイプによって時間料金が決まる
- データ転送
- プライベートVIF:AWSアカウントに課金
- パブリックVIF:リソース所有者に対して計算
VPCピア接続
- VPCが他のVPCとの接続をプライベートネットワークで行う
- 異なるアカウント、リージョンでもピア接続を作成できる
- ピア作成後、ルートテーブルにピア接続をターゲットとする送信先ルートを作成
- VPCを複数アカウントで共有したいだけの場合:RAM(Resource Access Manager)でサブネットを他アカウントと共有して共有VPNとして使用
AWS Transit Gateway
- 最大5000のVPCやオンプレミス環境の接続を簡素化
- Transit Gatewayをカスタマーゲートウェイ間でVPN接続が作成可能
- それぞれのアタッチメントにルートテーブルが関連付ける
VPCアタッチメント
- Transit Gatewayにトラフィックを送信するには、同じAZにアタッチメントが必要
- リソースが複数のAZに渡ってデプロイされているのであれば、リソースと同じAZにアタッチメントを作成(サブネットはリソースと同じである必要はない)
- VPCアタッチメントにTransit Gatewayルートテーブルを関連付けてルートを設定
VPN接続
- Transit Gatewayに対して、オンプレミスのカスタマーゲートウェイとVPN接続が可能
- アタッチメントタイプを「VPN」として作成
- VPN接続に対してのルートをTransit Gatewayで制御
- 複数のVPN接続を作成して、ECMP(Equal Cost Multipath)を接続間で有効可能
- ネットワークトラフィックが複数パスに負荷分散されて、帯域幅を広げる
Direct Connectトラフィック仮想インターフェイス
- Direct Connect GatewayにTransit Gatewayをアタッチ可能
- 1つのDirect Connect仮想インターフェイスで複数のVPN接続を管理可能
Transit Gatewayピアリング接続
- 異なるリージョンでTransit Gatewayを介した接続ができる
- Transit Gatewayを他のアカウントと共有:RAMで指定したアカウントのVPCにアタッチメントを作成
Transit Gateway Network Manager
- ネットワークの視覚化、モニタリング
- Transit Gatewayを介した接続のルート分析:ルートアナライザーを使用
Global Accelerator連携のVPN高速化
- VPN接続作成時に、「アクセラレーション」を有効 → 「Acceleratedサイト間VPN」を使用
- VPN接続にエッジロケーションのGlobal Acceleratorを使用 → VPN接続のパフォーマンス、ネットワークの安定性を向上
AWS Route53
Route53プライベートホストゾーン
- VPC内のDNSとして名前解決できる
- プライベートホストゾーンを作成して、VPCを指定するだけで作れる
- 複数のVPCで使用できる
Route53 Resolver
- オンプレミスのハイブリッドな双方向のDNSアクセス実現
- インバウンド・アウトバウンドエンドポイントはサブネットを指定して作成
- サブネットのCIDRからIPアドレスが設定される
インバウンドエンドポイント
- オンプレミスのDNSサーバーから転送する先としてIPアドレスを指定
- オンプレミスからRoute53プライベートホストゾーンに対してのDNSクエリを使用できる
アウトバウンドエンドポイント
- VPCから他のネットワークに対してのDNSクエリを使用できる
- オンプレミスDNSサーバーのIPアドレスとポートを指定
アウトバウンドルール
- RAM(Resource Access Manager)を使用して他のアカウントのVPCに共有
Discussion