Qiitaから移動させたコンテンツです。
S3 + CloudFront で画像などを配信することが多いと思いますが、配信先が国内限定であれば
S3 + さくらのクラウドのCDNサービスウェブアクセラレータのほうが安いんじゃないかと思ったため設定してみます。
実際に課金額が安くなるかは検証していません。
CloudFrontの配信料金が1GiBあたり、日本で0.140 USD(15.8円 2017年12月28日時点)のようですので、1GiBあたり
5円(税込み)のウェブアクセラレータのほうが安いように思えます。
また、ウェブアクセラレータはリクエスト数に応じた課金もないので、CloudFrontよりわかりやすいかも?
ただし、S3->ウェブアクセラレータでS3へのリクエストと転送量の課金が発生するため、
ミスキャッシュの場合はS3側で料金が発生するので注意が必要だと思います。
実際に使ってみたわけではないので比較はないですが、詳しい人ぜひ教えて下さい。
S3の設定
AWS S3でバケットを作ろう
バケットの作成
AWSコンソールのS3設定画面でバケットの作成を押します。
バケット名
バケット名を適当に設定します。(リージョンはとりあえず東京)
この辺は特に設定は不要と思いますので、スルーします。
とりあえずここもそのままで。
ここも確認してバケットを作成
S3でStaticサイト公開の設定をしよう
さきほど設定したバケット名を選択して設定に移ります
プロパティからStatic website hostingを有効にします
この際に表示されているエンドポイントは後程ウェブアクセラレータの設定で使用するためメモしておいてください。
ファイルをアップロードしよう
今回はテストなのでs3cmdなどは使わずにウェブ画面上からファイルをアップロードします。
概要のタブにあるアップロードからアップロードします。
適当なindex.htmlを作成してアップロードします。
確認して次へ
次へ
ウェブアクセラレータでキャッシュされるようにCache-Control: s-maxage=3600(1時間)を設定
確認してアップロード
アップロードされたのでファイルを公開します。
公開を押してアップロードしたファイルを公開します。
先ほど設定した Static website hosting のエンドポイントにアクセスすると無事にアップロードしたファイルが表示されるはずです。
無事、アップロードしたファイルが表示され、Cache-Contorl: s-maxageのヘッダも付いていることが確認できます。
ウェブアクセラレータの設定
配信用サイトの作成
ウェブアクセラレータの新規サイト作成画面からS3配信用のサイトを作成します。
今回はサブドメインで設定してみます。
サイト名:適当につけてください
オリジンサーバ:さきほどStatic website hostingで表示されていたエンドポイントを設定します。
保存を押しサイトを保存します。無事完了画面が出るはずです。
設定からサイトを有効化します。
有効化されたら発行されたサブドメインでアクセスしてみます。
無事、アクセスできるようになっており、何度かリロードするとX-Cache: HITとなっておりウェブアクセラレータでキャッシュして配信出来ていることが確認できました。
最後に
さすがにアップロードをウェブからやるのはつらいので、APIキーとs3cmdなどを使えばファイルをどんどん
アップロードしてウェブアクセラレータ経由で配信できそうです。
s3cmd put --add-header "Cache-Control: s-maxage=3600" --acl-public (省略)
などを付ければウェブでやったアップロードと同じことができそうです。