さくらのクラウド ウェブアクセラレータ(CDN)とAWS S3を組み合わせて使う

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 (省略)

などを付ければウェブでやったアップロードと同じことができそうです。