こんにちは、クラウドソリューションアーキテクトの安齋です。
今回は2016年から個人的に毎年参加しているISUCONの、ISUCON9 on Alibaba Cloudの参戦記録を書き連ねたいと思います。\
ISUCONとは
イイ感じにスピードアップコンテストという名前の通り、Webアプリのレスポンスの速さを競うコンテストです。
http://isucon.net/\
ISUCON9のお題
https://gist.github.com/sota1235/a7356a5909af264c1c1c840dd216c98f
イス専門のフリーマーケットで、出品・購入ができます。
画像がいっぱいありますね!これは、Alibaba Cloud CDNが炸裂しますね!!\
トップ画面
やったこと
アプリチューニングやNginxチューニングなど、したいことは山ほどあったのですが、せっかくAlibaba Cloudを使っているので、インフラ構成を中心にチューニングしてみました。
最終的な構成
構成図
1. 画像の保存先をECSからOSSに変更
ECSにアップロードされた画像の保存先をECSのローカルストレージからOSSに変更しました。\
1-1. OSSバケットを非公開で作成
OSSへの書き込み権限はECSのみに付与しました。
2. 画像をCDNから配信
2-1. CDN用にドメインを作成
外部で作成したドメインをAlibaba Cloud DNSに委譲し、Alibaba Cloud CDN用にサブドメインを作成しました。
2-2. CDN用ドメインにCDNのCNAMEを登録
2-3. OSSバケットにCDN用ドメインを紐づけ
OSSのドメインをAlibaba Cloud CDN用のドメインに紐づけました。
2-4. CDNのオリジンにOSSを設定
Alibaba Cloud CDNのオリジンサイトにOSSを設定しました。
OSSへの読み取り権限をAlibaba Cloud CDNのみに付与しました 。\
2-5. CDN用ドメインをHTTPS化
DVレベルの無料のSSL証明書をAlibaba Cloud CDNに設置して、HTTPS化しました。
2-6. リファラー設定
空のリファラーを許可しない設定とECSのパブリックIPのリファラーのみを許可しました。\
3. できあがり!
クライアントがアップロードした画像がCDNから配信されるようになりました!!これで大幅にレスポンスが早くなるはず!
まとめ
ドメインを取り、CDNを設置していたら日が暮れて夜になっていました。
ISUCON自体は予選まででしたが、特にCDNを触ることで大いに勉強になりました。