AWSアーキテクチャー(疎結合化編)


AWSアーキテクチャーの5つの設計原則と11のベストプラクティス
具体的な説明は以下のリンクをご参考ください。
https://qiita.com/Jenny1025/items/ce55c8724daeef626201

コンポーネントの疎結合化

コンポーネントの疎結合化というのは、コンポーネント間の依存関係を減らし、コンポーネントの変更や障害が発生する際に、影響を減少できるようなアーキテクチャーを作り上げることです。

関連するサビース         説明
Lamba サーバーインスタンスではなく、Lambaによるトリガー処理で連結すること。
SQS SQSのキューイングを通信でインスタンス間関連を結ぶこと。
ELB サーバー間のトラフィック量を調整と連結をELBを起点により疎結合化を実現すること。
SNS SNSのアプリケーション間でインスタンス間関連を結ぶこと。

密結合と疎結合設計のバターン比較

SQS

SQS: Amazon Simple Queue Service はポーリング型のフルマネーネジ型のキューサービスである。(60秒〜14日間データ保持する、ディフォルトで4日間保持可能)。
*ポーリングとは、複数のプログラム間、一定時間内に問い合わせがあった場合(一旦中継所見たいなところでデータを貯めて)受信側がいいタイミングで通信を行う方式です。

SNS

SNS: Amazon Simple Notification Service
フルマネージド型プッシュ型の非同期通信サービスである。

他のサービスと連携
Amazon CloudWatch: Billing Alertの通知
Amazon SES: Bounce/Complaintのフィードバックの通信
Amazon S3: ファイルがアップロード時の通知
Amazon Elastic Transcoder:動画変更完了/失敗時の通知

SES

Amazon Simple Email Service
フルマネージド型Emailサービスである。

Lambda

インフラに気にする事なくアプリケーションコードを実行できるデータ処理サービスである。

CLI(SQS)

メモ:

キューの作成
aws sqs create-queue --queue-name ${SQS_NAME}

キューの確認
aws sqs list-queues --queue-name-prefix ${SQS_NAME}

メッセージ数の確認
aws sqs get-queue-attributes \
  --queue-url ${SQS_NAME} \
  --attribute-names ApproximateNumberOfMessages \
  --query 'Attributes.ApproximateNumberOfMessages' \
  --output text

キューの削除
aws sqs delete-queue --queue-url ${SQS_NAME}