こんにちは、ゆーろんです。 今回は今回はレンタルサーバで動いていた当ブログ(yuuronacademy.com)をAWSのLightSail上に移動(お引越し)させたので、そのことに関してお話ししようと思います。
目次
使用したAWSのサービス
まず、今回利用したAWSのサービスに関して簡単に説明します。
LightSail
AWS LightSailはAWSが提供しているVPS(仮想プライベートサーバ)です。
仮想マシンのEC2と異なり、VPCやサブネット等の作成も不要で、月額料金なためコスト見積もりしやすい特徴があります。
CloudFront
AWS CloudFrontはAWSが提供しているCDN(コンテンツデリバリネットワーク)です。
サイトコンテンツ(静的・動的なウェブコンテンツ、ビデオ、アプリケーションデータなど)をAWSの管理する世界中のエッジサーバに配置することで効率的にデータを配信することができます。
CDNとは
キャッシュサーバなどで構成されたシステムを用いることによって、Webサイト上のコンテンツを迅速にユーザに届けるための仕組み。
通常のWebサイトでは、コンテンツを配信するためのサーバの処理能力やネットワークの帯域幅などの影響で、沢山のユーザーがWebサイトにアクセスするとレスポンスが低下する。
また、物理的に離れた場所からのアクセスに対してネットワーク遅延によりレスポンスが低下する場合がある。そういったものに対処するための仕組みといえる。
Route53
AWS Route53はAWSが提供しているDNS(Domain Name System)です。
Route53ではドメインの登録やDNS、ロードバランサの機能などサイトアクセスのための様々なDNS機能を提供しています。
ゆーろん
Route53の名前の由来はDNSのポート番号が53だからなのかな?
ACM
AWS Certificate ManagerはAWSが提供しているSSL/TLS証明書のサービスです。
AWS上でホストされるウェブサイトやアプリケーションに対して、暗号化通信を実現するためのSSL/TLS証明書の取得、管理、自動更新を行うことができます。
構築したアーキテクチャ
今回AWSで構築したリソースのインフラ構成図は概ね以下の通りです。
見ての通りLIghtSail+CloudFrontの構成となっています。 HTTPS化にALBの利用などをする方法もありますが、料金を抑えるためにCloudFrontでSSL終端を行う構成にすることにしました。
SSL終端構成により「サーバへ直接クライアントのアクセスをさせない」、「CloudFrontによるキャッシュ/高速化」を実現しています。
またサイトへのアクセスステップは以下のようになっています。
- HTTPSによるアクセス(:443)
- Route53
- CloudFront(:80)
- Route53
- Static IP(Lightsail)
構築にあたっての小話
サイトのインフラ基盤の管理にあたって当初Terraformを利用することを計画し、以下のように実行可能なコードを作成をしました。
上記コードをAWS Cloud9上で利用し.tfstateはS3で管理するというものです。
しかしながらLightSailのホスティングには手動で設定すべき項目(DNSのリソースレコード(TXT,CRANEなど)やACMなど)が多く、LightSailでは複雑なネットワークリソースの管理などをする機会が少ないことからTerraformの使用を取りやめ、AWSコンソールを利用したセットアップに変更しました。
またSSL証明書は「let”s Encrypt 」は使用せずに、AWS ACM生成のS証明書をCloudFront経由で承認させています。 なおCloudFrontで承認させるACMはバージニア北部リージョンで作成したものしか設定できませんので注意が必要です。
使用サービス
サービス
- CMS : WordPress
- 基盤サーバ: Amazon Lightsail
- DNSサーバ: Amazon Route53
- 暗号化: ACM
- アクセス解析: Google Analytics、Google Search Console
システム
CMSにはWordPressを利用しています。
WordPressのテーマには自作テーマを使用しています。 CSSフレームワークにTailwind CSSを使用しており、WordPressテーマ開発には「TailPress」「XAMPP環境」を使用しました。
基盤環境
基盤サーバーにはAmazon Lightsailを使用させていたしました。
5分くらいコンソール上のボタンぽちぽちしているだけでWebサーバーが構築できます。
アクセス解析
アクセス解析にはGoogle Analysis、SEO等にGoogle Search Consoleを利用しています。
アクセス解析を用いるとサイトへのアクセス数、ページ毎のアクセス数、アクセス元の国などを解析しまとめて表示することができます。
今後に関して
とりあえずサイトをLiightSail上に移動し作成することができましたが、いくつか課題は残っています。 今後の課題をまとめます。
- AWS SESを用いたメール送信の有効化
- SaaS等を用いたサーバアクセスの監視
- ユーザービリティの強化など
上記課題に取り組む際は作業過程を数週間以内を目安に投稿しますのでよろしくお願いします。