コスト3分の1を実現したAWSサーバ構成を大公開!
制作/開発 2022.02.04
パンタグラフ運営の大学受験生応援メディア「受験のミカタ」では、立ち上げ時にはレンタルサーバでスタート。その後、試行錯誤を重ね、現在はレンタルサーバとクラウドサーバ「AWS」を組み合わせて、サイトを運営しています。
今回は、エンジニアがそんな「受験のミカタ」のサーバ構成を紹介します。
目次
サーバをAWSに移行した経緯
もともと「受験のミカタ」では、マネージドレンタルサーバでサイトを構築。60万PV程度までは、特に問題はありませんでした。
しかし、センター試験時にアクセスが急増。 [503 service temporarily unavailable] エラーでサイトへアクセスできなくなるという事態が発生しました。
その際に、完全にAWS(自動スケーリングなし)へサイトを移動しました。
AWSに移行したことで、ページ表示速度等に問題はありませんでしたが、データ転送速度に基づく料金については、従量課金のため、料金が高くなってしまうという課題に直面しました。
その課題に対し、負担となっているファイルを調べたところ、
- 画像
- CSS
- JavaScript(js)
が重いことが判明し、固定価格で利用できるレンタルサーバに一部を移動することにしました。
現在のサーバ構成
サーバ構成の検討をする中で、目的はサーバとメンテナンスコストを最小にして最大のパフォーマンスを達成することでした。
そのため、「受験のミカタ」では現在以下のサーバ構成をとっています。
- LB(ロードバランサー): Webサーバ向けにALBとNLBの 2種類のロードバランサーがあります。NLBは、レイヤー4 (トランスポート層)で機能し、データパケットを開く必要がないため、速度が早いため、受験のミカタでは、速度を考慮してNLBを選択しています。
- ASG:サーバへのアクセスは、ピーク時とオフピーク時で異なりますので、コストとメンテナンスのことを考えてWebサーバー(EC2)のスペックは最小限にしておいて、アクセスに応じてWebサーバー(EC2)のインスタンス数を増減できるようにしています。
- EFS:Elastic File Serverの略で、Amazonが管理しているマネージドNFSサービスです。すべてのWebサーバが同じソースとアセットを取得するため、ドキュメントルートとしてEFSを使用します。EFSは複数のEC2に接続できます。
- Amazon EC2:Amazon Elastic Compute Cloudの略で、スケーラブルなコンピューティングキャパシティーを提供してくれます。EC2を使用すると、必要な数 (またはそれ以下) の仮想サーバの起動、セキュリティおよびネットワーキングの構成、ストレージの管理ができます。EC2 は、需要増に応じてスケールアップまたはスケールダウンできるため、5分間のcpu/memory負荷が70%以上の場合はスケールアップ、15分間のcpu/memory負荷が40%以下の場合はスケールダウンする設定にしています。
- Amazon RDS:すべてのWebサーバで同じDB(データベース)へデータを読み書きできます。
- Amazon CloudWatch:CloudWatchを使用して以下を行っています。
- アクセス&EC2のCPU, メモリを監視してスケールイン/スケールアウトを実行
- サーバ(EC2, RDS)の状態を管理者にメール/SMSを送信
- EC2のログを保存
- S3:WordPressサイトの管理ウィンドウからアップロードされたすべてのアセットは、WordPressプラグインを使用してS3にアップロードされます。
- Amazon CloudFront:S3からアセットを取得し、CDNとして使用しています。
- 共有レンタルサーバ:AWSの帯域幅は高価($0.114 per GB、2022年2月時点)であるため、静的アセットにはレンタルサーバを使用しました。レンタルサーバでは、まず、要求されたアセットが存在するかどうかがチェックされます。存在していれば応答をレンタルサーバから送信します。存在してない場合Amazon CloudFrontからアセットを取得してキャッシュし、応答を送信します。同じアセットに対するすべてのリクエストは、レンタルサーバのキャッシュから処理されます。
サーバ構成を変更した結果
上記構成にしたことにより、受験のミカタはサーバ150万超/月間のアクセスにも耐えられるサイトになりました。
表示スピードに変化はなく、センター試験(現在の大学入学共通テスト)時に急増したアクセスに対しても、対応できています。
また、費用面でも効果を発揮しています。
AWSのみを使用した2017年4月のコストとサーバ構成を変更した2020年5月のコストを比較してみましょう。
時期 | PV | コスト |
2017年4月 | 702,349 |
AWS 料金 $182 |
2020年5月 | 1,780,439 | $151.76 |
もし、2017年4月時点のインフラ構成のまま、2020年5月のPVになっていたとすると、PV比2.53倍として簡易的にコストを同じ倍率で計算すると、2020年5月では約$460となっていました。しかし、インフラ構成を変更していたことで、実際は$151.76と約1/3のコストに抑えることができています。
このようにサーバは、サイトの条件や状況に応じてカスタマイズすることで、最小コストで最大のパフォーマンスを実現できます。
パンタグラフでは、インターネット事業を中心とした戦略立案に向けて、課題抽出から企画提案まであらゆるサポートを実施しています。今回紹介したのはあくまで一例になりますので、サーバ周り、サイト周りでお悩みの方はぜひご相談いただければと思います。ご相談は無料ですので、お気軽にお問い合わせください。
関連する記事