概要
ZIPファイルや動画ファイルなどの数百Mbyte~数GByteの大丈量ファイルをダウンロードする際は、通信速度の問題やサーバパフォーマンス問題が発生します。
AWSではこの問題に対して、耐久性と対負荷性に強いS3から直接大容量ファイル配信がHTTPベースで可能なため、S3から直接配信を行います。
S3でバケットを作成するとバケットURLが作成されます。バケットURL作成時の注意点は、以下の留意事項をご確認ください。
留意事項
項目 | 内容 |
バケットURL | URLの命名規則は、「[バケット名].s3.amazonaws.com」のURLが自動作成されます。子の命名規則から想像できますが、すでにAWS上に存在するバケット名はつけることは出来ないので注意が必要です。 |
独自ドメイン運用 | バケットURLをCNAMEにして、企業や個人独自のドメインで運用することも可能です。 |
バケット作成場所 | S3もEC2同様に好きなリージョンにバケット作れます。パフォーマンス重視なら利用拠点に近いリージョンを選択します。もしEC2とS3間に閉じた環境でのデータ処理なら同じリージョンEC2とS3を配置し、最も安価なリージョンを選択したほうがコスト効率はよいです。 |
S3大容量ファイル配信設定手順
S3バケット作成
1.S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。
2.[Create bucket] を選択します。
3.[Name and region] ページで、バケットの名前を入力し、バケットを置く AWS リージョンを選択します。
4.[Set properties] ページで、バケットの次のプロパティを設定できます。または、バケットを作成した後でこれらのプロパティを設定することもできます。
プロパティ | 説明 |
Versioning | バージョニングを使用すると、1 つのバケットで複数バージョンのオブジェクトを維持できます。バージョニングは、新しいバケットに対してデフォルトで無効になります。 |
Server access logging | サーバーアクセスログ記録には、バケットに対して行われたリクエストの詳細が記録されます。デフォルトでは、Amazon S3 によってサーバーアクセスログは収集されません。 |
Tags | AWS コスト配分タグにより、バケットの使用に対する請求に注釈を付けることができます。タグはキー/値ペアになっており、バケットに割り当てられるラベルを表します。タグを追加するには、[Tags] を選択し、続いて [Add tag] を選択します。 |
Object-level logging | オブジェクトレベルのログ記録では、CloudTrail データイベントを使用してオブジェクトレベルの API アクティビティが記録されます。 |
Default encryption | S3 のデフォルトの暗号化により、S3 バケットのデフォルトの暗号化の動作を設定できます。バケットにデフォルト暗号化を設定して、バケットに保存される際すべてのオブジェクトが暗号化されるようにします。 |
5.[Set permissions] ページで、作成しているバケットに設定されているアクセス許可を管理します。バケットへの読み取りアクセスは、一般ユーザー (世界中のユーザー) に付与できます。パブリック読み取りアクセスの付与が該当するのは、バケットがウェブサイトなどに使用されるなど、ユースケースの小さいサブセットです。デフォルトの設定の [Do not grant public read access to this bucket] を変更しないことをお勧めします。
6.[Review] ページで、設定を確認します。変更する場合は、[Edit] を選択します。現在の設定で問題がなければ、[Create bucket] を選択します。
アクセス権の設定
バケットポリシーはリソースベースの AWS Identity and Access Management (IAM) ポリシーです。バケットポリシーをバケットに追加して、バケットおよびバケット内のオブジェクトに対するアクセス許可を、他の AWS アカウントまたは IAM ユーザーに付与できます。
1.Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。
2.[Bucket name] リストで、バケットポリシーを作成するバケットの名前、または誰の編集バケットポリシーを編集するか選択します。
テキストボックスに新しいバケットポリシーを入力、コピー、貼り付けるか、既存のポリシーを編集します。バケットポリシーは JSON ファイルです。エディタに入力するテキストは有効な JSON である必要があります。
私はJSONにまだなれていなにのでPolicyGeneratorでアクセスポリシーを作成します。
パラメータ入力後、[Generate Policy]をクリックしjsonテキストが表示されるのでコピーします。
コピーしたjsonテキストを[Bucket policy editor] テキストボックスに入力します。
[Save] を選択し完了となります。
動作確認
ブラウザからS3に配置した大容量ファイルがダウンロードできることを確認します。
S3へオブジェクトをアップロード
動作確認ようのファイルをアクセス許可を行ったバケットにアップロードします。
S3からダウンロード確認
オブジェクトのURLをコピーし、ブラウザに貼り付けインターネット経由でアクセスできることを確認します。