概要
サイズの大きいファイル配信を始めるときに使う「Web Storage」パターンについてまとめる
詳細
サイズの大きいファイル配信を始めると次の問題が顕著になってくる
- 通信速度の問題
1ユーザのダウンロード速度が回線帯域を占有するため、十分な速度で通信できない
- サーバのパフォーマンスの問題
一般にwebサーバは「ユーザにファイルを送信したら、すぐにコネクションを切る」ことで同時接続数を減らしパフォーマンスを向上させている
だが、ファイルサイズが大きいとなかなかコネクションを切ることができず、コネクション数が増えサーバのパフォーマンスが劣化する
そこで検討したいのがWeb Storageパターン
Web Storageパターンではサイズの大きなファイルを配信するためにAWSの「S3(Amazon SImple Storage Service)」というインターネットストレージを使う
S3は耐久性や対負荷性能に優れたストレージサービス
S3にデータを保存するには最初に「バケット」と呼ばれる入れ物を作る、所謂ルートフォルダに相当する
S3バケットを作成していく
TOPからS3を選択し、Create Bucketをクリックする
バケット名とリージョンを指定、リージョンはEC2と同じリージョンを指定する
バケットの作成直後は、認証されたユーザしかアクセスできないように構成されている
Web StorageパターンではS3に配置されたコンテンツをエンドユーザに公開するため、バケットのアクセス権限を変更する
PermissonsにあるAdd bucket policyをクリック
Permissionはjsonで管理されているため手書きでは難しい、AWS Polycy Generatorで記載するのでクリック
以下を設定する
- Select Type Of Policy
作成するpolicyの種類を選択、ここではS3バケットに設定するpolicyを作りたいので「S3 Bucket Policy」を選択
- Effect
AllowかDenyかを選びます、ここではAllowを作りたいのでAllowを選ぶ
- Principal
パーミッションを適用したいユーザを選択、ここでは全ユーザを指定したいので「*」を選択
- AWS Services
適用するAWSのサービスを選択する、「Select Type of Policy」で「S3 Bucket Policy」を選択しあときには「Amazon s3」に固定
- Actions
設定するアクションを指定、読み取り権限は「GetObject」なので、これにチェック
- ARN
対象とするリソース名を指定、S3バケットの場合「arn:aws:s3:::バケット名/ファイル名」となる
Add Statementを押し、設定の確認
設定にな違いがなければGenerate Policyを押下、JSONが出力されるのでコピー
Bucket Policy EditorにJSONを貼り付け、saveボタン押下
これでファイルをアップロードすれば見れるようになる
Uploadボタン押下
対象ファイルをドラッグ&ドロップ
ファイルがアップロードされた
これで「http://バケット名.s3.amazonnaws.com/コンテンツ名」でアクセスできるようになる
参考
Amazon Web Services クラウドデザインパターン 実装ガイド 改訂版
- 作者: 大澤文孝,アマゾンデータサービスジャパン玉川憲、片山暁雄,アイレット鈴木宏康,日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2015/03/05
- メディア: 単行本
- この商品を含むブログ (1件) を見る