最近のMovable Typeでの活用方法や取り組みや、3rd Focusで取り扱っているプラグインの活用方法をご紹介していきます。
3rd Focusのブログでは初めまして、株式会社COLSIS(コルシス)の永谷ことonagataniです。
COLSISではエンジニアとして勤務しており主にインフラとサーバーサイドを担当しています。そこで今回はMTとAWSを利用したサーバ構成について簡単にご紹介させて頂きます。
はい、とりたてて特筆するところはございません。サーバ自体は自分が開発しているIZANAMIで自動的に構築する事も可能です。この構成でのデメリットは以下のような感じかなと思います。
正直なところ一般的なサイトは上記構成でもそこそこ運用できると思いますが、セキュリティ・高可用性ともにちょっと心配ですね。(AWSも基本的にMultiAZを推奨していますしね)
サーバ内の構成はほぼ変わりませんが、以下を変更しています
だいぶ良くなりましたね。ALBとWAFでセキュリティにも対応し、DBをRDSとして外出することで情報漏えいリスクも少し下がったかと思います。とはいえまだ以下の懸念点があります。
ALB配下にWebサーバ2台を冗長化して設置し、DBサーバもMultiAZで分離しています。CMSサーバを分離した事でCMSサーバへのアクセスをIPで完全に遮断できるようになりました。なお、サーバが増えましたがawslogsを利用することでCloudwatchにログを集約する事が可能です。
CMSサーバとWebサーバを分離したので、CMSサーバから静的に出力したコンテンツをWebサーバに設置しないといけません、今回は弊社商品であるSmartSync Packを利用しています。要はCMSサーバからrsync等でコンテンツを複数サーバへコピーしています。この構成で基本的には問題なさそうですが以下がちょっと気になります。
ここでCloudFront(CDN)を投入します。これによりオリジンサーバ(Webサーバ)への負荷がなくなった上にCloudFrontのおかげでスパイクアクセス、セキュリティともに向上が見込めます(動的コンテンツがなければオートスケールは必要ありません)。ネットワークも見直しを行いWebサーバはElasticIPを付与せずに外部から見えない場所に設置します。この場合サーバから外部にアクセスできなくなるためAWSのマネージドNATゲートウェイを利用します(CMSサーバをNATインスタンスとして利用する事も可能)。CMSサーバもALB下に配置する事で安心感が向上されました。
とはいえ、若干の疑問が残ります
準サーバレスといった感じの構成になります。CloudFrontとS3でのコンテンツ配信なのでセキュリティも安心ですしスパイクがあっても大丈夫です。なお、S3への転送とCloudFrontのキャッシュ削除には自分が開発しているMT-AWSUtilsプラグインを利用しています。この状態でもほぼ完璧な構成ですが少し注意が必要です。
簡単に説明しましたが如何でしたでしょうか。もうちょっと細かいところが知りたい方もいるかと思いますが、また記事に書くつもりなのでしばらくお待ちくださいませ。
ということで、セキュアで高可用性なサイト構築はCOLSISまでご連絡ださいませ。