Amazon Web Services ブログ
Amazon DynamoDB へのプライベート接続を AWS PrivateLink で簡素化
本記事は 2024/03/19に投稿された Simplify private connectivity to Amazon DynamoDB with AWS PrivateLink を翻訳した記事です。翻訳は Solutions Architect 嶋田朱里が担当しました。
Amazon DynamoDB は、サーバーレス、NoSQL、完全マネージド型のデータベースで、あらゆるスケールでミリ秒単位のパフォーマンスを実現します。マルチリージョン、マルチアクティブ、高耐久性のデータベースで、組み込みのセキュリティ、バックアップ/リストア、メモリキャッシングを備えています。
お客様は VPC またはオンプレミスで実行されるワークロードから ゲートウェイエンドポイント を使用して DynamoDB にアクセスできます。オンプレミスのプライベートネットワークからゲートウェイエンドポイントに接続する場合、多くのお客様はプロキシサーバーまたはファイアウォールルールを設定して DynamoDB へのトラフィックをルーティングおよび制限しています。これはゲートウェイエンドポイントが AWS Direct Connect または AWS Virtual Private Network (AWS VPN) と互換性がないためです。この追加のインフラストラクチャ設定は運用負荷とコンプライアンスを複雑化させる可能性があります。お客様からは、追加のプロキシインフラストラクチャを必要とせずに、オンプレミスワークロードから DynamoDB にプライベートネットワーク接続を設定できるソリューションが求められていました。
私たちは DynamoDB 向けの AWS PrivateLink サポートを発表できることを喜ばしく思います。PrivateLink を使用すると、インターフェイス VPC エンドポイントとプライベート IP アドレスを使って、オンプレミスのワークロードから DynamoDB へのプライベートネットワーク接続を簡素化できます。インターフェイスエンドポイントは、Direct Connect と AWS VPN に対応しており、エンドツーエンドのプライベートネットワーク接続が可能です。その結果、公開 IP アドレス、プロキシインフラ、ファイアウォールルールを必要とせずオンプレミスから DynamoDB にアクセスすることができ、コンプライアンスを維持できます。VPC 内のネットワークトラフィックにはゲートウェイエンドポイントを、オンプレミスのネットワークトラフィックにはインターフェイスエンドポイントを使用することで、DynamoDB への低コストのプライベートネットワーク接続を実現できます。
この投稿では、オンプレミス環境をエミュレートして、PrivateLink を使用したインターフェイス VPC エンドポイントをDynamoDB で利用する例を示します。PrivateLink でインターフェイスエンドポイントを使用する他の例については、ユースケース例を参照してください。
プライベート IP アドレスを使用した、オンプレミスから DynamoDB へのアクセス
この投稿では、保険会社が、オンプレミスのメインフレームシステムに保存されているリスクスコアを再評価するために、DynamoDB に保存されている見積もりと請求データにアクセスする必要があるという想定で説明します。
オンプレミスのワークロードは、AWS Client VPN を通じて us-west-1 リージョンの VPC に接続するローカルマシンで、PrivateLink のインターフェイスエンドポイントを使用して、プライベート IP アドレスで DynamoDB にアクセスします。次の図は、このアーキテクチャを示しています。
このソリューションには、以下の主要コンポーネントが含まれています。
- AWS Client VPN エンドポイントが VPC に関連付けられている
- OpenVPN ベースの AWS Client VPN がローカルマシンに設定されている。AWS Client VPN エンドポイントを使用して VPC に接続できる
- DynamoDB 用 PrivateLink のインターフェイス VPC エンドポイントが作成され、VPC のサブネットに関連付けられている
- ローカルマシン上で実行されているオンプレミスアプリケーションは、インターフェイス VPC エンドポイントを使用して DynamoDB テーブルにプライベートにアクセスできる
次のセクションでは、この設定を構成し、新しい PrivateLink のインターフェイス VPC エンドポイントを作成します。
前提条件
始めるにあたり、以下のようにネットワークを設定していることを確認してください:
- ローカルマシンの AWS クライアント VPN で設定したリージョンに VPC があること
- インターフェイスエンドポイントのセキュリティグループが、オンプレミス環境と同じか、オンプレミス環境 (AWS Client VPN エンドポイント) からのトラフィックを受信するためのインバウンドルールが含まれている
- AWS Client VPN を使用する場合、AWS Client VPN エンドポイントの承認ルールが、インターフェイスエンドポイントが関連付けられているサブネットの CIDR ブロックへのトラフィックを許可している
- オプションで、ローカルマシンに Python3 と AWS SDK for Python (Boto3) がインストールされている
ソリューションの設定
以下の手順で、us-west-1 リージョンの VPC 内に DynamoDB 用 PrivateLink のインターフェイス VPC エンドポイントを作成します。
-
- Amazon VPC に移動し、ナビゲーションペインから Endpoints を選択します。
- Create endpoint を選択します。
- Name tag には、任意のタグを入力します。
- Service category はAWS services を選択します。
- DynamoDB のインターフェイスタイプのエンドポイントを検索して選択します。これは DynamoDB 用 PrivateLink の VPC エンドポイントです。
- インターフェイスエンドポイントは VPC に関連付けられているため、対象の VPC、インターフェイスエンドポイントを関連付けたいサブネット、設定したいセキュリティグループを選択します。
- インターフェイス VPC エンドポイントを使用して DynamoDB と接続する AWS Identity and Access Management (IAM) エンティティに対して、許可される DynamoDB アクションを制限するために、VPC エンドポイントポリシーを指定します。この記事では、Full access を選択します。
最小特権のアクセス原則に基づいて、このポリシー内のアクセスを絞り込むことをお勧めします。 - Create endpoint を選択します。
エンドポイントの作成には数分かかる場合があります。
インターフェイス VPC エンドポイントが正常に作成されると、VPC 固有の複数の DNS 名が表示されます。DNS 名には、リージョナルエンドポイントである単一のエントリと、設定したサブネットが属する各アベイラビリティーゾーンに付与されるゾーナルエントリが含まれています。
- VPC に接続されたローカルマシン上のアプリケーションからアクセスするために、リージョナル DNS 名をコピーします。
- Boto3 SDK の DynamoDB クライアントを初期化する際、適切な region_name とともに、 endpoint_url にコピーしたリージョナル DNS 名を渡します。これは AWS SDK によって異なる場合があります。
リージョン間の DynamoDB アクセス (プライベート IP アドレスを使用)
オンプレミスから AWS Client VPN を使用して VPC にアクセスするシナリオと同様に、PrivateLink のインターフェイス VPC エンドポイントを使用して、プライベート IP アドレスを介して別リージョンの DynamoDB リソースにプライベートにアクセスすることができます。これには 2 つの VPC をピアリングし、ルートテーブルを適切に更新する必要があります。このアーキテクチャを以下に示します。
この場合、us-east-1 リージョンに VPC ベースの AWS Lambda アプリケーションがあり、PrivateLink のインターフェイス VPC エンドポイントを使用して us-west-1 リージョンの DynamoDB テーブルにアクセスできます。Lambda 関数は、PrivateLink のインターフェイス VPC エンドポイントを使用して、リージョン間の DynamoDB リソースにアクセスできます。
プライベート IP アドレスを使用したリソースへのアクセス
インターフェイスエンドポイントの主な利点は、関連付けられた VPC の特定のサブネット内のプライベート IP アドレスに解決されることです。たとえば、VPC の CIDR 範囲が 172.31.0.0/16 で 2 つのサブネットがある場合、インターフェイスエンドポイントはこの範囲内の IP アドレスに解決されるため、エンドポイントに関連付けられた各サブネットに少なくとも 1 つの IP アドレスが割り当てられます。次のコードを参照してください。
DNS 名は公開されていますが、VPC のサブネットに属するプライベート IP アドレスに解決されるため、インターフェイスエンドポイントから DynamoDB にインターネット経由で接続することはできません。エンドツーエンドでプライベートアクセスが提供されます。オンプレミスの設定では、AWS Direct Connect または AWS Client VPN を使用して VPC にルーティングされるトラフィックは、シームレスにインターフェイスエンドポイントにルーティングできるように構成できます。
オンプレミスネットワーク
オンプレミスのアプリケーションで DynamoDB のインターフェイスエンドポイントを設定するには、Direct Connect または VPN ソリューションを使用して VPC との接続を確立する必要があります。さらに、インターフェイスエンドポイントが関連付けられている VPC の CIDR へのルートが設定されていることを確認してください。また、オンプレミスネットワークの CIDR からのインバウンドルールを含むように、インターフェイスエンドポイントのセキュリティグループを設定します。最後に、DynamoDB のパブリック DNS ドメイン内で解決可能なインターフェイスエンドポイントの DNS 名を解決するために、オンプレミスで DNS 設定が実装されていることを確認してください。ネットワークから VPC への接続に関する詳細は、Network-to-Amazon VPC connectivity options を参照してください。
次の図は、PrivateLink のインターフェイス VPC エンドポイントが、オンプレミスのアプリケーションと AWS Cloud 内の DynamoDB テーブルとの接続を容易にする方法を示しています。このセットアップには、VPC 内のトラフィックをルーティングするためのゲートウェイエンドポイントも組み込まれています。
考慮事項
PrivateLink のインターフェイスエンドポイントを使用する際は、以下の点に注意してください。
- DynamoDB のゲートウェイエンドポイントとインターフェイスエンドポイントのどちらを選択しても、ネットワークトラフィックは両方のシナリオで AWS ネットワーク内に留まります。単一の VPC 内、または VPC 間の通信にはゲートウェイエンドポイントの使用を推奨しますが、オンプレミスのデータセンターからの通信にはインターフェイスエンドポイントを使用することをお勧めします。現時点では、インターフェイスエンドポイントは IPv4 アドレスのみをサポートしています。
- PrivateLink は、エンドポイントごとにアベイラビリティーゾーンあたり最大 100Gbps をサポートします。オンプレミスのデータセンターから DynamoDB インターフェイスエンドポイントへの 1 秒あたりのデータ転送量が AZ あたり 100Gbps を超える場合は、予想されるデータ転送要件に対応するために追加のインターフェイスエンドポイントを構成できます。
- DynamoDB のゲートウェイ VPC エンドポイントの使用に関連するデータ処理料金や時間料金はありません。ただし、PrivateLink を使用したインターフェイスエンドポイントの場合は標準料金が適用されます。詳細については、AWS PrivateLink 料金を参照してください。
クリーンアップ
このポストの一環で作成した AWS リソースを削除してください。AWS Client VPN エンドポイント、インターフェイス VPC エンドポイント、Lambda 関数、およびその他のリソースを削除してください。
結論
DynamoDB 用の PrivateLink を使用すると、オンプレミスのデータセンターまたは VPC 内の プライベート IP アドレスから DynamoDB への接続を確立することができ、ネットワークアーキテクチャを簡素化できます。PrivateLink では、オンプレミスの場所から DynamoDB にアクセスするために、パブリック IP アドレスの設定、ファイアウォールルールの設定、インターネットゲートウェイの設定が不要になります。この新機能は、すべてのAWS 商用リージョンでご利用いただけます。
DynamoDB 用の PrivateLink バックエンドのインターフェイス VPC エンドポイントを使用し、コメントセクションでフィードバックを共有してください。
著者について
Aman Dhingra はアイルランドのダブリンを拠点とする DynamoDB 専門のソリューションアーキテクトです。分散システムに情熱を持ち、ビッグデータ & 分析技術の経験があります。DynamoDB 専門のソリューションアーキテクトとして、DynamoDB をバックエンドとするワークロードの設計、評価、最適化をサポートしています。
Ashwin Venkatesh は、Amazon Web Services の Amazon DynamoDB のシニアプロダクトマネージャーで、カリフォルニア州サンタクララに拠点を置いています。25 年以上にわたるプロダクトマネジメントとテクノロジーの役割を経験し、顧客とのエンゲージメントを通じてビジネスユースケースを理解しています。戦略と長期的な顧客価値を提供する新機能を逆算して定義することや、同僚と技術について深く議論することに情熱を持っています。仕事の外では、旅行、スポーツ、家族行事を楽しんでいます。