[クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜]

AWSでECサイトを構築する【第3回】

2017年4月10日(月)清野 剛史(クラスメソッドAWS事業部ソリューションアーキテクト)

前回までにクラウドの「可用性の担保」や「負荷対策」を解説した。今回は、それらを元にして、「ECサイトの構築」をテーマにしたアーキテクチャーを実際に構築していきたい。

 EC(電子商取引)サイトは、自社商品をオンラインで手軽に販売でき、ターゲットはインターネット経由で全国各地に広げられるだけに、コンテンツを扱う企業にとって需要が高い仕組みの1つである。1台のサーバーから手軽に始められる一方、規模が大きくなるほどに課題が増えていく。大手サイトが取り組んでいるような、例えばメールの一斉配信といった当然必要になる機能の実装や、予期せぬアタックへの対応、なるべくレスポンスを早くするための工夫などである。

 これら要件の一番の問題は「コンテンツの魅せ方」や「ECサイトとしての独自機能」といった“本質”とはかけ離れた部分で人的リソースを割かれるという点にある。システム管理者にすれば、本来ならシステムをより良くするためにリソースを割かなければならないところをシステムの維持管理に振り回されてしまうといった悩みは良くあるパターンだ。そこにクラウドを使う一番のポイントがある。

 クラウドは当初、ハードの管理や維持、HDDの交換、夏場の空調管理などの物理的な資産の管理機能を提供していた。昨今のクラウドは、ただサーバーを提供するだけではなく、クラウドならではのスケーリングやセキュリティを担保した状態での機能を「サービス」として提供している。これを「マネージドサービス」と呼ぶ。これらマネージドサービスをうまく組み合わせれば、最低限のリソースで可用性やセキュリティを担保しつつ、手軽に機能を追加できる。これはシステムの開発・運用にとって大きなメリットだ。

 以下では、AWS(Amazon Web Services)でECサイトを構築する際のポイントと、AWSならではのマネージドサービスを使ったアーキテクチャーを紹介する。

基本構成ではサブネットは6層に

 ECサイトはWebシステムでありモバイルシステムでもある。つまりAWS上でECサイトを組む場合、基本的なWebシステムやモバイルシステムのベストプラクティスに合わせることがベースになる。

図1:AWSでのECサイト構築時の基本構成図1:AWSでのECサイト構築時の基本構成
拡大画像表示

 まずVPC(Virtual Private Cloud)上でのサブネットは6層が望ましい。配置が異なる「AZ(Availability Zone)」ごとに2つに分け、さらにフロントエンド、アプリケーション、データストアに3分割する。AZごとに分けるのは、障害が起こった際の可用性を担保するため。3層に分けるのは、層ごとにオープンするポートやルーティングなどのセキュリティを独立して構築できるようにするためだ。フロントエンド層には「ELB(Elastic Load Balancing)」を立て、アプリケーション層に仮想サーバーの「EC2」、データストア層にデータベースサービスの「RDS」をサブネットグループ化して立てる。これが基本の構成になる(図1)。

 基本構成をベースに、要件によって種々のリソースを選び足していけば良い。例えば、参照データが固定されるような場合にはキャッシュ管理の「ElastiCache」を追加することで負荷を分散しつつレスポンスの高速化が図れる。「いいね!」ボタンのようなものを実装している場合は、そのデータをデータベースに追加する部分をメッセージキューサービスの「SQS」を使って非同期化すれば、ボタン押し下げのリアクションと実際のデータベースへの登録を分離できる。

バックナンバー
クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜一覧へ
関連記事

Special

-PR-

AWSでECサイトを構築する【第3回】前回までにクラウドの「可用性の担保」や「負荷対策」を解説した。今回は、それらを元にして、「ECサイトの構築」をテーマにしたアーキテクチャーを実際に構築していきたい。

PAGE TOP