LoginSignup
0
0

More than 3 years have passed since last update.

CloudFrontで爆速コンテンツに大変身させるお話

Last updated at Posted at 2019-12-09

CloudFrontで無駄なアクセスを無くそう

おはようございます.
突然ですが,皆さんは"Slack"使ってますか?
slack.png

Slackってただチャット出来るくらいなのになんであんなに人気なんでしょうかね.

LINEでよくね?

まあ,オプションで色々便利に出来ますが,正直使いこなせてる人はあまり見かけません.

多分,「高性能だから」と誰かが言ったから取り敢えず使ってるんじゃないですか?

Slackの素晴らしさはオプションだけでなく,
世界中どこにいても爆速なレスポンスの速さです.
ダウンロード.jpeg

Slackの速さの秘密はCloudFrontです.

日本人以外も対象としたサービスの場合,それはそれは爆速になります.
日本向けサービスだとしても,キャッシュから高速にコンテンツを配信します.

SEOにも関係してくる超重要なサービスなので是非理解してください.

CloudFrontってなんだ

AWSが展開するCDN(コンテンツデリバリーサービス)
高性能な配信を可能にするサービスとなっております.

なんで高性能な配信になるの?

図を見てください
スクリーンショット 2019-12-09 10.34.43.png
(図 : blackbeltより引用)

普段私たちがサービスを使う流れは,
ドメイン名問い合わせ -> DNSによりオリジンのIPアドレスに変換 ->オリジンサーバーへアクセス->レスポンス
というのが従来の流れ.

しかし,CloudFrontでは図の四角形のように,

位置情報を知るDBを作る(位置情報DB)
エッジと呼ばれるサーバーを作る(Edge location)

という二点を担っています

ストーリー

私たち)ねえねえ,位置情報DBさん,一番近いエッジサーバーはどこ?

位置情報DB)あんたに最も近いエッジサーバーはTokyoだぞ.

私たち)ありがとう行ってきます!

エッジ)よくきたな!キャッシュデータあるからこれ持って帰れよ!!

私たち)ありがとう!これでサービスが見れるわ!!

エッジさんがキャッシュを持っていなかったら,
エッジ)ちょい待ち!オリジンに聞いてみるわ!

となるわけです.

なので,
位置情報を渡して一番近いエッジを探す
レスポンスをエッジからもらう
これがCloudFrontです

セキュリティ面

ダウンロード (1).jpeg

ここまでの話だと,サービスに関係する通信は2つ

1.クライアント⇄エッジサーバー
2.エッジサーバー⇄オリジンサーバー

1の場合,cloudfront.netのドメインを使えば,標準でSSL化出来ます
ただ,多くは独自ドメインを利用すると思います.
なのでSSL証明書をインポートすればOK

2の場合,
なにによってオリジンサーバーが実装されているかで変わります.

S3 ... CloudFront側で「Viewer Protocol Policy」を「HTTPS only」に変更する.

S3静的ウェブサイトホスティング ... HTTPS通信出来ません.

カスタムオリジン ...「Origin Protocol Porlcy」を「HTTPS only」に変更し,SSL証明書をインポート

署名付きURLも発行できる!

有効期限のあるURLも発行できます.
Amazon primeの期間限定ビデオ的なことも出来ます.
時間指定すればいいだけなので,超簡単.

オリジンサーバーが最も格となる

これをいたずらされたらマズイです.従業員にいじらせない.
保護をしなければなりません.

S3ならS3バケットの設定からOAI(Origin Access Identity)を利用しCloudFrontとの通信のみを許可させます.

S3静的ウェブサイトホスティングでは,注意が必要です.
パブリックに見られても良いもののみを配信しましょう.

カスタムオリジンは,カスタムヘッダー設定でCloudFrontのみアクセス出来ます.

とまあ,これでほぼ全て説明した気がします.

まあ,大きなIT企業なんかはインフラ専門がいるからその辺やってくれてそうだけど,
フリーの人は勉強しておきたい分野の一つでしょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0