S3 Transfer Accelerationの性能をお手軽に検証

S3 Transfer Accelerationの性能を検証

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を使用して検証を行います。

構築する環境

Diagram of verifying performatance of S3 Transfer Acceleration.

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スタックを作成します。

スタックの作成および各スタックの確認方法については、以下のページをご確認ください。

あわせて読みたい
CloudFormationのネストされたスタックで環境を構築する 【CloudFormationのネストされたスタックで環境を構築する方法】 CloudFormationにおけるネストされたスタックを検証します。 CloudFormationでは、スタックをネストす...

上記コマンドの実行の結果、今回作成されたS3バケットの名前が「saa-02-002-bucket」であることを確認しました。

続いてバケットのS3 Transfer Accelerationの設定状況を確認します。

Enabling 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

アクセス後、自動的にツールが開始されます。

Result of S3 Transfer Acceleration Speed Comparison.

画像のように、ツールが実行されると、各リージョンからテスト用データのアップロードが開始されます。データのアップロードは、S3 Transfer Accelerationの設定の有無が比較できるような形で実行されます。

画像の実行結果から、S3バケットの設置元であるTokyoリージョンに近いリージョン(TokyoやSeoul)からのアップロードでは効果は低いですが、遠いリージョン(DublinやFrankfurt)からのアップロードでは効果が高く、最大で2.5倍程度の向上が見込めることがわかりました。

まとめ

S3 Transfer Accelerationを有効化したS3バケットを作成しました。

評価ツールを使用して、S3 Transfer Accelerationによるファイル転送速度の高速化の性能を検証しました。

検証結果から、バケットから遠いリージョンでは2.5倍程度の高速化が見込めることが確認できました。