こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
今まで作成したALB (ELB)+ EC2 + RDS環境に対してCloudFrontをデプロイし、CDN環境を作っていきます。
今までの環境構築の流れは以下にまとめておりますので、適宜ご覧ください。
環境イメージ
前回デプロイしたALBに対してCloudFrontを紐づけていき、CloudFront経由でDjangoにアクセスできる環境を作っていきたいと思います。
※セキュリティの事に関しては特にここでは考慮をしておりませんのでご認識おきください。
CloudFront(CDN)環境を用意するメリット
例えば今回のDjango環境の場合、EC2が2つありALBで負荷分散をしているとはいえ、たくさん通信が来てしまうと処理が間に合わずユーザへのサービス提供に遅延が出てしまう可能性があります。
例えば、満席のレストランをイメージするとわかりやすいのではないでしょうか?料理が来ない…的な?
CDNがあることでEC2に関わる負荷を分散することが出来ます。
具体的にはCloudFront(≒サーバ)が以前問い合わせた情報を保存(≒キャッシュ)することで
EC2への問い合わせ(≒通信)が減り、その結果EC2の負荷が下がるイメージです。
ALBが横に負荷分散しているのであれば、CloudFrontは縦に負荷分散しているイメージ?ですかね…
構築
AWSコンソールでCloudFront管理画面を開くと、以下のような画面が表示されます。
右側にあるCloudFrontディストリビューションを作成するを押下します。
今回は以下のように設定を入れていきました。
Originのところで作成したALBを指定してあげると、今から立ち上げようとしているCLoudForntと紐づけることが出来ます。
設定入力後、作成を押下します。
作成を押下して正常に終了すると、以下のような画面が表示されます。
ディストリビューションドメイン名をコピーします。
ディストリビューションドメイン名をコピーするとhttps://d3b1f0p67o7047.cloudfront.netみたいな文字列を入手することが出来ます。
このままWebブラウザに適当にコピペして検索をかけると、いつも通りDjangoの画面を見ることが出来るようになります。