[クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜]
AWSでECサイトを構築する【第3回】
2017年4月10日(月)清野 剛史(クラスメソッドAWS事業部ソリューションアーキテクト)
前回までにクラウドの「可用性の担保」や「負荷対策」を解説した。今回は、それらを元にして、「ECサイトの構築」をテーマにしたアーキテクチャーを実際に構築していきたい。
オートスケールにするか冗長構成にするか
次に考えるべきはEC2の形態を(1)AutoScalingにするか、(2)単体のEC2を冗長的に偶数台配置するか、という選択だ。いずれにも利点と欠点がある。選択のポイントは「リクエストの増減が激しいかどうか」「サーバーがダウンした時の運用をどうするか」だろう。
AutoScalingが有効なのは、リクエストが時間帯や曜日によって5倍や10倍も差があるといったサイトである。しかし、その増減度合いが急激な場合、例えば「木曜の夜9時から1時間、割引キャンペーンを実施するため必ず急激なアクセス増が見込まれる」といったケースでは、最初の数分間はAutoScalingがリクエスト増を検知してスケールアウトするのが追いつかず、毎週つながりにくい時間帯ができてしまう。その場合は単体EC2を配置し、手動またはスケジュールによってリクエスト増の20分前位に台数を増やしておくと良いだろう。
サーバーがダウンした時は、バックアップしているAMIイメージを利用して新しいサーバーを立ち上げることになる。AutoScalingなら必要な台数(desired)に足りなければ自動でサーバーを立て直してくれる。クラウドの場合、OSより低いレベルの原因でサーバーがダウンした場合、その原因を探るのはAWSサポートと連携するなど骨の折れる作業になる。だがAutoScalingであれば「LifeCyclehook機能」を使うことで、サーバーがダウンした時に任意のコマンドを流せる。サーバーログなどをストレージサービスの「S3」に流しておけば障害探索の一助になるだろう。
会員登録(無料)が必要です
- > 前へ
- 1
- 2
- 3
- 4
- 次へ >
- AWSのAIサービスを使って自動化を進める【最終回】(2017/08/07)
- AWSにおけるシステム障害通知を自動化する【第10回】(2017/07/24)
- 「AWS IoT」でソリューションを実現する:第9回(2017/07/03)
- AWSでの環境構築の自動化と開発環境の管理【第8回】(2017/06/19)
- AWSにおける認証の仕組みを活用する【第7回】(2017/06/05)