S3 Transfer Accelerationの性能を検証する構成
S3 Transfer Accelerationの性能を簡単に確認する方法をご紹介します。
S3 Transfer AccelerationはS3が提供するオプションの1つで、世界中のユーザーがデータをアップロード/ダウンロードする際の、ネットワークパフォーマンスを用意に最適化することができます。
Amazon S3 Transfer Acceleration は、クライアントと S3 バケットの間で長距離にわたるファイル転送を高速、簡単、安全に行えるようにするバケットレベルの機能です。Transfer Acceleration は、Amazon CloudFront の世界中に点在するエッジロケーションを利用します。エッジロケーションに到着したデータは、最適化されたネットワークパスで Amazon S3 にルーティングされます。
Amazon S3 Transfer Acceleration を使用した高速かつ安全なファイル転送の設定
今回はS3 Transfer Accelerationの性能を確認するために、速度比較ツールのAmazon S3 Transfer Acceleration Speed Comparisonを使用して検証を行います。
構築する環境
S3バケットを1つ作成します。
本バケットはS3 Transfer Accelerationを有効に設定します。
CloudFormationテンプレートファイル
上記の構成をCloudFormationで構築します。
以下のURLにCloudFormationテンプレートを配置します。
https://github.com/awstut-an-r/awstut-saa/tree/main/02/002
テンプレートファイルのポイント解説
今回の環境を構成するための、各テンプレートファイルのポイントを取り上げます。
AccelerateConfigurationのStatusをEnabledにする
saa-02-002.yamlでS3バケット周りのリソースを定義します。
S3 Transfer Accelerationを有効化したバケットを作成します。
Resources:
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${Prefix}-bucket
AccelerateConfiguration:
AccelerationStatus: Enabled
AccessControl: Private
Code language: YAML (yaml)
AccelerationConfigurationプロパティにてS3 Transfer Accelerationの設定を行います。同プロパティ内のAccelerationStatusプロパティを「Enabled」に指定することで有効化できます。デフォルトでは本プロパティは「Suspended」となっており、無効化されています。
環境構築
CloudFormationを使用して、本環境を構築し、実際の挙動を確認します。
CloudFormationスタックを作成し、スタック内のリソースを確認する
CloudFormationスタックを作成します。
スタックの作成および各スタックの確認方法については、以下のページをご確認ください。
上記コマンドの実行の結果、今回作成されたS3バケットの名前が「saa-02-002-bucket」であることを確認しました。
続いてバケットのS3 Transfer Accelerationの設定状況を確認します。
S「Enabled」ですので、有効化されています。
速度比較ツールでS3 Transfer Accelerationの性能を評価する
バケットの用意ができましたので、速度比較ツールを使用して、S3 Transfer Accelerationの性能を確認します。ツールの使用方法は、AWS公式サイトで紹介されている手順に従います。
下に示す URL をブラウザウィンドウにコピーします。このとき、region は使用している AWS リージョン (us-west-2 など) に、yourBucketName は評価するバケット名に置き換えてください。
https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html?region=region&origBucketName=yourBucketName
Amazon S3 Transfer Acceleration の速度比較ツールの使用
上記に従い、URLを作成します。今回の構成に合わせて、regionおよびBucketNameを修正すると、以下のURLになります。
https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html?region=ap-northeast-1&origBucketName=saa-02-002-bucket
アクセス後、自動的にツールが開始されます。
画像のように、ツールが実行されると、各リージョンからテスト用データのアップロードが開始されます。データのアップロードは、S3 Transfer Accelerationの設定の有無が比較できるような形で実行されます。
画像の実行結果から、S3バケットの設置元であるTokyoリージョンに近いリージョン(TokyoやSeoul)からのアップロードでは効果は低いですが、遠いリージョン(DublinやFrankfurt)からのアップロードでは効果が高く、最大で2.5倍程度の向上が見込めることがわかりました。
まとめ
S3 Transfer Accelerationを有効化したS3バケットを作成しました。
評価ツールを使用して、S3 Transfer Accelerationによるファイル転送速度の高速化の性能を検証しました。
検証結果から、バケットから遠いリージョンでは2.5倍程度の高速化が見込めることが確認できました。