ちょっと話題の記事

DirectConnectからS3に直結!「AWS PrivateLink for Amazon S3」を試してみた

ついにDirectConnect経由のS3アップロードがプロキシサーバ無しでできるようになったよ!
2021.02.03

こんにちは、ネクストモード株式会社の久住です。

はじめに

昨日のアップデートで Amazon S3がAWS PrivateLinkに対応しました!

AWS PrivateLink for Amazon S3 is Now Generally Available | AWS News Blog

何が嬉しいのか

今までAmazon S3はゲートウェイエンドポイントのみ提供されており、DirectConnect経由でS3にアクセスしようとする場合はHTTP Proxyサーバを設置したり、AWS Transfer for SFTPを利用することにより対応する必要がありました。

詳細については下記エントリーに詳しく記載がありますのでご参照ください。

今回のアップデートにより、インターフェースエンドポイントを利用できるようになったため、HTTP Proxyサーバを設置せずにDirectConnectのPrivate接続でS3に直結することができるようになりました。 Proxyサーバが不要になったことにより、障害点を減らすことができ、Proxyサーバのパフォーマンスも気にする必要がなくなったことが大きなメリットです。

やってみる

DirectConnect環境をすぐに用意できなかったので、VPCピアリングで仮想的に環境を準備してPrivateLinkでのS3アップロードをテストしてみました。

構成

VPCピアリングでローカル拠点を想定したVPCからPrivateLink経由でのS3アクセスする構成を作成しました。

エンドポイント用のセキュリティグループ作成

エンドポイント用のセキュリティグループを作成します。今回はVPC内からのHTTPS:443の通信を許可するルールを設定しています。

エンドポイントの作成

エンドポイントの作成からS3のインターフェースエンドポイントを作成します。

先程作成したセキュリティグループをPrivateLinkのENIに割り当てます。

完成!

少し待つとエンドポイントのステータスが保留から使用可能になり、完成です!

S3へのアクセス

AWS CLIでは下記のようにエンドポイントURLを--endpoint-urlパラメータとして指定することでアクセスすることができます。

Amazon S3 and interface VPC endpoints (AWS PrivateLink)

1.バケット一覧の取得

まず、バケットの一覧を取得できることが下記の通り確認できました。

$ aws s3 --endpoint-url https://bucket.vpce-024816xxxxxxxx-uozxxxxx.s3.ap-northeast-1.vpce.amazonaws.com ls
2019-09-12 05:30:13 xxxx
2020-04-21 02:07:54 xxxx
2020-12-10 05:45:29 xxxx

2.特定バケットへのファイルアップロード

次に特定のバケットに対しての1Gのファイルのアップロードを試してみます。 まず1GBのダミーファイルを作成します。

$ dd if=/dev/zero of=1G.dummy bs=1M count=1000
1000+0 レコード入力
1000+0 レコード出力
1048576000 バイト (1.0 GB) コピーされました、 5.85565 秒、 179 MB/秒
[ec2-user@ip-192-168-1-12 ~]$ ls -lh |grep 1G
-rw-rw-r-- 1 ec2-user ec2-user 1000M 2月 3 00:54 1G.dummy

作成したダミーファイルをS3バケットにアップロードします。

$ aws s3 --endpoint-url https://bucket.vpce-024816xxxxxxxx-uozxxxxx.s3.ap-northeast-1.vpce.amazonaws.com cp 1G.dummy s3://kusumicorp-bucket
upload: ./1G.dummy to s3://kusumicorp-bucket/1G.dummy

1GBのファイルがS3にアップロードされていることが確認できました。

100MiB/s(800Mbps)程度の速度が出ていることも確認できました。

さいごに

VPCピアリングで仮想的にローカル環境からのS3直接接続を試しましたがProxyサーバやTransfar for SFTP無しでS3にアクセスできるのはとても嬉しいです!

近々DirectConnect環境でも検証して続報としてお伝えしようと思いますのでご期待ください!