疎結合とは?(What)
システムを構成するコンポーネント同士が互いに依存しあわない状態を疎結合といいます。AWSは特にこの疎結合を重要視しています。
疎結合のメリット?(Why)
AWSで疎結合とするメリットは、コンポーネントを構築し、あるコンポーネントが故障したり、反応しなくなったり、反応が遅くなったりした場合、別のコンポーネントを生成しシステムとして処理を継続できるようになるからです。つまり疎結合により、システム全体の可用性と拡張性の向上が可能になります。
どのように疎結合を実現するか(How)
AWSで疎結合を実現するために利用するサービスを紹介します。
サービス | 説明 |
ELB
(Elastic Load Balancing) |
ELBは負荷分散機能を持ったサービスです。一般的にWEB・APサーバを疎結合化する時に用いられます。仮想マシンをELBに登録し、DNSレコードをELBを参照するようにするだけで、疎結合が実現できます。 |
SQS
(Simple Queue Service) |
SQSはメッセージをキューイングするサービスです。キューイングはメインフレーム時代からある概念でエムキューと言われます。送信側はキューにメッセージを送り、受信側はキューに問い合わせて受け取ります。具体的には、キャンペーンなどでRDSへのアクセス負荷増が見込まれる場合、SQSを利用することで負荷増時もキューがバッファとなりRDSへの負荷が平準化されます。
SQSは容量無制限でデータセンタ間冗長化されるため、メッセージ消失の可能性は低いです。料金の課金は100万件/月までは無料でそれ以降課金されれます。 |
SNS
(Simple Notification Service) |
SNSはメッセージを登録しているエンドポイントへプッシュ配信するサービスです。SNSではメッセージ送信側を「パブリッシャー」、受信側を「サブスクライバー」と呼びます。パブリッシャーからサブスクライバーのメッセージ受け渡しはトピックと呼ぶ箱で行います。
利用方法は、マネジメントコンソールのAPIを介してトピックを作成しアクセス制限のためトピックを通信できるパブリッシャーとサブスクライバーをポリシー定義します。例えばCloudWatchから受け取った障害通知をメールで送信することも可能です。 |