全8826文字

 コーポレートサイトの可用性、拡張性をさらに高める方法の一つとして、「疎結合」が挙げられます。ここでいう疎結合とは、複雑なシステムを互いに過度に依存し合わないシンプルなコンポーネントに分割することです。疎結合にすることで、各コンポーネントが拡張しやすくなったり、耐障害性を高めたりすることができます。

 実はこれまでに強化してきたコーポレートサイトでも、ELB(Elastic Load Balancing)によってWeb・APサーバーを疎結合化しています。Web・APサーバーの1台に障害が発生したとき、ELBが検知してそのサーバーにトラフィックを流さないようにして、システム全体として処理を継続します。

 スケーリングでは、Web・APサーバーの仮想マシンを新規作成してELBに登録するだけです。その際、DNS(Domain Name System)のレコードはELBを参照するようにしておくことで、設定変更の必要がなくなります。DNSサーバーに登録するのはELBの情報だけ。Web・APサーバーを登録する必要はありません。

 ELBが無いとDNSサーバーに全てのWeb・APサーバーの情報を登録する必要があり、仮想マシンの追加や故障のたびにDNSレコードを更新しなければなりません。

 疎結合はメインフレーム全盛の時代から脈々と続いてきた考え方ですが、AWSをはじめとするパブリッククラウドではELBのようなサービスによって疎結合化を進めやすくなっています。

 ここでは、疎結合化を進めるうえでカギとなるAWSのサービスとして、メッセージキューイングの「Amazon SQS(Simple Queue Service)」とプッシュ配信の「Amazon SNS(Simple Notification Service)」を取り上げます。