見出し画像

Tencent Cloud CDN と Amazon S3 を連携してみた

こんにちは!株式会社メテリクスです。

Tencent Cloud CDN (Content Delivery Network)は、世界で最も売れているグローバルゲームサービスの多くで採用されており、その柔軟な機能性は大手クラウドベンダーに引けを取りません。

このエントリではTencentCloudCDN(https://intl.cloud.tencent.com/products/cdn)を使ってみようと思います。

TencentCloud CDN

TencentCloud CDNはコスト、パフォーマンス、機能ともに高い水準で提供されている CDN です。
リアルタイムにネットワークを監視し、最適なルーティングを設定する機能、ユーザーの様々なユースケースに対応するためのコストプランだったり、機能を提供しております。

前提

今回は TencentCloud CDNを使うのですが、オリジンサーバーを AWS の S3 として設定してみます。サーバーを建てる必要もなく、現在 S3 をオリジンとして利用している方でも移行する手間がないことを実感していただこうとしております。
今回利用するのは TencentCloud アカウントと AWS アカウントになります。

構築

オリジン(S3)の構築

今回はS3でテスト用のオリジンとなるバケットを用意します。
バケットに対するパブリックアクセスも行わないので、特別な設定は何も必要ありません。

オリジンアクセス用の IAM ユーザーを作成

下記のようにバケットにアクセスできるユーザーを作成しましょう。
Write 権限は必要ないので ReadOnly ユーザーがおすすめです。
この画像では、すべてのS3バケットにアクセスできるようになっていますが、今回作成したバケットのみにアクセスできるものでも全く問題ありません。

TencentCDNを用意する

では肝心の TencentCDN を準備しましょう。
TencentCloudConsoleのCDNのページを開いて、Domain Configuration を開きましょう。
そしてCreateDistributionを押して、設定に進みましょう。
初回は、ドメインの所有者チェックが入ります。
ドメインの所有者チェックは
- DNS verification : DNSに指定されたTXTレコードを追加する
- File verification : 対象のドメインでアクセスできるパスに指定されたファイルを設置する
の二種類があります。
どちらでも問題ありません。認証が終わり次第、TXTレコード、もしくはファイルも消して大丈夫です。

domain config

リージョンの分け方は以下の通りとなっています。
- Chinese Mainland : 中国で配信
- Overseas : 中国以外で配信
- Global : 中国を含めた世界中で配信
という意味になっています。普通にはDomainの認証等々通らなくなってしまうので、日本だと Overseas をご利用ください。

Accelaration Typeに関しては最適化のロジックを選ぶものになります。
今回はWebpage file downloadに最適化しますが、検証したいサービスに合わせて選択してください。

次は先ほどと同様のページの下部で、S3と連携する設定を入れていきましょう。
下記のような設定値を入れていただければいいかなと思います。
わかりにくいところですが、Origin addressのところに、作成したbucketのアドレスを入れていただき、アクセスが失敗すると、Private bucket accessの右下のenterというリンクを押せるようになります。
そこにバケットにアクセスできるIAMユーザーの情報を入れてください。

origin config

次の配信に関する設定は一旦デフォルトでこの記事では進めてしまいます。
一般的に入っていてほしい設定が入っています。

最後にCNAMEを設定しろという画面になります。
保有されているDNSにxxx.xxx.com.cdn.dnsv1.comに向くCNAMEを設定してやればCDNに関する設定は完了です。

CNAMEを設定したあとに設定がうまく行ったかどうかのチェックがあるのですが、DNSでやった場合10~15分ほど時間がかかったので気長に待ってください。

HTTPS化

もちろんTencentCDNは証明書の発行とHTTPSでの配信両方に対応しています。
実際に設定してみましょう。
CDNのページのトップに戻り、Configure Certificateのページに遷移してください。
そして、Configure Certificate ボタンを押すと下記のようなページに遷移します。

config-certificate

CDNが有効化されていると、設定対象のDomain Nameに候補として出てきます。Managed certificateを選んで無料のものを発行すると、CDNに自動的に紐付けられ、暫く待つと、HTTPSでのアクセスが通るようになります。
(Alias等聞かれますが、管理用の別名なので適当で大丈夫です。最初戸惑いました・・・。)

まとめ

いかがでしたでしょうか?Tencent Cloud CDN でAWS S3をオリジンとして利用し、HTTPSで配信することが簡単にできました。

今回のレポートでは紹介していませんが、Tencent CDNは purge 、プリフェッチ、バージョン管理、統計などの機能を備えており、運用上、機能不足で困ることはなかったと思います。ぜひ Tencent Cloud CDNを利用してみてください。