見出し画像

AWS環境下において独自ドメイン+SSL化したWebサイトを作る為の調査メモ

今回調査した環境

今回はAWSでWebサーバを構築するのに比較的使用される構成である
Lightsail+Route53+CloudFront+CertificateManagerの環境を調査しました。
この環境を構築することで自分のWebサイトに対し、IPアドレスではなく
独自ドメイン+SSL暗号化状態で安全にアクセスすることが出来ますね。


通信の順序について

※まだ調査した段階で完全に理解出来ているわけではないので
 参考までに。。。

1.Route53による名前解決

ユーザがWebブラウザで検索をしてヒットしたリンクをクリックする時、
裏っ側ではURLに対して名前解決という処理を行う。
名前解決とは人間が理解しやすく表現したドメイン(ex:google.comやnote.com等)をIPアドレス等機械が理解しやすい数列(ex:172.217.175.110や13.225.177.70等)に変換するような技術ですね。
Windowsユーザであればcmdを開いてそのあとにnslookupコマンドを使うことでIPアドレスを見れたりします。MACユーザはterminalで見れるはず?
最も、今回は接続の為にCNAMEを使っているので数列ではないですが、、、


2.名前解決で得たデータを元にCloudFrontにアクセス

名前解決で得たデータを元にCloudFrontと呼ばれるCDN(Contents Delivery Network)にアクセスします。CloudFrontに対してSSLサーバ証明書を
発行している場合、CloudFrontとユーザのPC間はhttpsプロトコルを使用して
通信をしており、通信内容が暗号化されることになります。
通信が暗号化されることによって通信内容の読取防止や改竄防止を
行えるようになるわけですね。
オンラインショッピングを行なったり会員登録をするようなサイトの場合、
この暗号化をしているサイトか否かは確実に見ておく必要があると言え、
インターネットを使用するユーザは全員理解すべき技術と言えます。


CDNとはWebサーバのアクセス増加の負荷を軽減したり、ユーザに対して
データを早く提供するための技術なのですが、、、
非IT系にはちょっと難しい気がするので省略。
Webサーバ君の分身が出来るイメージ位で良い気がします。

良い例なのかわかりませんが、
新宿駅には毎日たくさんのユーザが乗り降りしますが、そのユーザを1つの
出口だとさばけないし、何より不便です。
その為に色々なところに出口がありますよね。そうすることで人が出入り口で詰まることもなくスムーズな流れを生む、みたいなイメージ?
ここでいう複数の出入り口がCDNみたいな・・・


3.CloudFrontからLightsailに対してアクセス・データ取得

後で若干記載しますが、CloudFrontはデータをキャッシュ(≒保持)する
機能があります。CloudFrontがアクセス要求内容のデータを保持していない
場合、大本のWebサーバにアクセスしてデータを取得します。
私の今回の調査した環境の場合、Lightsailという仮想サーバになります。
このCloudFrontとLightsailの通信はhttp通信となり、暗号化はされていないようです。
なので、Lightsailに対して直接攻撃されるような事象に遭遇した場合は
セキュリティインシデントに繋がる可能性があるようです。
この辺りは調査していて『なんか中途半端だな・・・』と感じました。
セキュリティグループの設定を追加するだけなのでそこまで手間では
無さそうですが・・・


4.LightsailのデータをCloudFrontでキャッシュする

Lightsailからデータを取ってきたCloudFrontはユーザに対してそのデータを
転送します。そうすることでユーザはお目当てのサイトを閲覧することが
出来ます。
この時、CloudFrontはユーザにデータを転送するのと同時にそのデータの
コピーを取り、自分の元に暫くおいておきます。
こうすることでユーザからおんなじ内容のリクエストが届いた際には
そのコピーしたデータを転送するだけで済むようになるので、結果として
ユーザにデータをより早く提供出来る、というわけです。


AWSのテクノロジーについて

●AWS

●AWS Lightsail

●AWS Route53

●AWS CertificateManager

●AWS CloudFront


この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?