[アップデート] Amazon DynamoDBがPrivateLink (インターフェイス型VPCエンドポイント) をサポートしました
閉域網やVPNの接続元からDynamoDBにアクセスしたい
こんにちは、のんピ(@non____97)です。
皆さんは閉域網やVPNの接続元からDynamoDBにアクセスしたいなと思ったことはありますか? 私はあります。
従来DynamoDBはGateway型のVPCエンドポイントしかサポートされていませんでした。そのため、Direct Connect(Private VIF or Tranit VIF)やSite-to-Site VPNの接続元からアクセスする際にはVPC上にプロキシを用意する必要がありました。
今回、Amazon DynamoDBがPrivateLink (インターフェイス型VPCエンドポイント) をサポートしました
AWS Blogsにも投稿されていますね。
これにより上述の悩みを解消することができます。
閉域網から定期的にDynamoDBに情報を連携するときに便利そうです。
実際にやってみました。
いきなりまとめ
- Amazon DynamoDBのインターフェイス型VPCエンドポイントを作成できるようになった
- プライベートDNS名を有効にすることはできない
- エンドポイントURLを指定する必要がある
- 以前のS3のInterface型VPCエンドポイントと同じ
やってみた
検証環境は以下のとおりです。
DynamoDBのインターフェイス型VPCエンドポイントをVPC Bに作成します。
作成する際にはプライベートDNS名を無効にしておきます。有効にすると、Private DNS can't be enabled because the service com.amazonaws.us-east-1.dynamodb does not provide a private DNS name.
と怒られてしまいます。
つまりは現時点ではDynamoDBのインターフェイス型VPCエンドポイントはプライベートDNS名をサポートしていません。そのため、アクセスする際はエンドポイントURLを明示的に指定する必要があります。S3のインターフェイス型VPCエンドポイントがGAした当初と同じような形ですね。
「プライベートDNS名の有効化とは」は以下記事にまとまっています。
数分待つとVPCエンドポイントが作成されました。
VPC A上のEC2インスタンスにEC2 Instance Connectで接続します。
接続後、AWS CLIでDynamoDBの操作ができるか確認します。
まずはエンドポイントURLを指定しない場合です。
$ aws dynamodb list-tables
Could not connect to the endpoint URL: "https://dynamodb.us-east-1.amazonaws.com/"
DynamoDBのエンドポイントに接続できなかったようです。
続いて、まずはエンドポイントURLを指定する場合です。
$ dig vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com
; <<>> DiG 9.16.48-RH <<>> vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37016
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com. IN A
;; ANSWER SECTION:
vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com. 60 IN A 10.0.1.254
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Wed Mar 20 02:52:25 UTC 2024
;; MSG SIZE rcvd: 114
$ aws dynamodb list-tables \
--endpoint-url https://vpce-0c8efa3dad1993dcc-e9aoiw9p.dynamodb.us-east-1.vpce.amazonaws.com
{
"TableNames": [
"analyzer"
]
}
DynamoDBのエンドポイントに接続でき、確かにテーブル一覧を取得できました。
インターネットに抜けたくない場合に
Amazon DynamoDBがインターフェイス型VPCエンドポイントをサポートしたアップデートを紹介しました。
組織のコンプライアンスややインターネット回線の帯域が細い場合に役立ちそうですね。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!