AWS Privatelink for S3 を利用してオンプレのDirectConnectからS3にアクセスできました


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

今年2月にAWS PirvateLink経由でAWS S3へアクセスできるようになりました。今携わっているプロジェクトにも利用したいので検証してみました。

AWS PrivateLink for Amazon S3 の一般提供を開始 | Amazon Web Services ブログ

AWS PrivateLink for Amazon S3って何ができる

今年2月までは、Gateway型のS3エンドポイントしかありませんでした。Gateway型のS3のエンドポイントの特徴からいうと、サブネットのルートテーブルにS3のエンドポイントへのルートを追加し、エンドポイントを経由してS3に接続します。解析されたS3のIPアドレスがまだパブリックIPでしたが、エンドポイント経由でS3に接続するので、プライベートサブネットでもS3に接続できます。

上記の仕様上では、AWS Direct ConnectやVPNを使用していたオンプレから直接にS3に接続することはできませんでした。
※AWS Transfer Familyや、HTTP Proxy等を設定することで代理で接続することができますが、設定上は少し手間かかります。

Interface型のエンドポイントでは、指定したサブネットにENIが作成され、ENIのプライベートIPを使用してプライベート環境でもAWSのサービスを利用できます。

AWS PrivateLink for Amazon S3がリリースされたことで、AWS DCやVPNを経由してオンプレ環境から直接にS3に接続できました。

オンプレからS3への接続

Interface型のS3エンドポイントを作成すると、下記のようにS3のエンドポイントのDNS名が作成されます。

インターフェイスエンドポイントを作成すると、Amazon S3 はエンドポイント固有の 2 つのタイプの S3 DNS 名 (Regional および zonal) を生成します。

  • Regional DNS 名には、一意の VPC エンドポイント ID、サービス識別子、 AWS リージョン 、およびその名前の vpce.amazonaws.com が含まれます。例えば、VPC エンドポイント ID vpce-1a2b3c4d の場合、生成される DNS 名は vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com に似ている場合があります。
  • Zonal DNS 名には、アベイラビリティーゾーンが含まれます (vpce-1a2b3c4d-5e6f-**us-east-1a.**s3.us-east-1.vpce.amazonaws.com など)。このオプションは、アーキテクチャがアベイラビリティーゾーンを分離する場合に使用できます。例えば、障害を隔離し、リージョン間のデータ転送コストを削減するために使用できます。

ここで1個すごい点としては、作成されたS3 DNS名はS3のパブリックDNSドメインから解決できます。つまり、オンプレ環境が特に更新しなくても、S3のInterface型エンドポイントを利用できます。AWSがすごかったですね((´∀`))

AWS公式ドキュメントに詳しく説明していますが、エンドポイント作成すると、接続イメージは以下ととなります。

オンプレからはもちろん、VPC内のアプリケーションでも、Interface型エンドポイント固有のDNSを使用すれば、S3にアクセスできます。

また、既存のGateway型のS3エンドポイントと併用できます。つまり、既存VPCにあったのアプリケーションはそのままGateway型S3エンドポイントを利用できます。オンプレ環境では、固有DNS名を更新すれば、直接にS3にアクセスできます。接続イメージは以下となります。

実際に作成してみる

エンドポイントの作成方法は他のInterface型エンドポイントの作成方法と同じで作成できましたら、以下のようにS3へ接続する用DNS名が表示されます。

紐づいてるサブネットに、ENIが作成されることも確認できます。

直接にローカルPCからDNS名を解析してみると、ちゃんとS3 Interface型エンドポイントの固有DNS名が解析できることを確認しました。

いま、AWS DC接続やVPN接続や設定されていないため、接続テストが割愛しますが、以下のようにエンドポイントURLを指定すれば、接続できます。

aws s3 --region us-east-1 --endpoint-url https://bucket.vpce-xxxxxxxx.s3.us-east-1.vpce.amazonaws.com ls s3://my-bucket/

最後に

AWSがますます便利にありますね。これからもいろんな便利なサービスを発表すると思いますので、皆さん、一緒に勉強しましょう。

Last modified: 2024-02-07

Author