![DirectConnectからS3に直結!「AWS PrivateLink for Amazon S3」を試してみた](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-s3.png)
DirectConnectからS3に直結!「AWS PrivateLink for Amazon S3」を試してみた
こんにちは、ネクストモード株式会社の久住です。
はじめに
昨日のアップデートで 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の通信を許可するルールを設定しています。
※2023/7/4 追記
ソースの指定が画像だと10.0.0.0/16となっていますが、正しくは 拠点/DC側の192.168.1.0/24を指定 する必要があります。
エンドポイントの作成
エンドポイントの作成から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環境でも検証して続報としてお伝えしようと思いますのでご期待ください!