SAA対策の自分用のメモ。
7/13にSAA合格
SOA対策の自分用のメモ。
どんどん更新して加筆修正していく予定。
構成管理系
CloudFormation
インフラリソースを自動でプロビジョニング
テンプレート:プロビジョニングしたいコードを記述(JSON or YAML)
スタック:テンプレートによってプロビジョニングされるリソース
テキストエディタで書くか、CloudFormationデザイナーを使用する
Elastic Beanstalk
webアプリやサービスをデプロイし、実行環境の管理も簡単にできる。
ブルーグリーンデプロイメント
ブルー(実稼働)からグリーン(準備環境)に切り替えるダウンタイムがないリリース方法。RDSをElastic Beanstalk環境外に指定することで可能。
OpsWorks
サーバーの構築の自動化をする
ChefやPuppetが利用可能
メッセージ系
SNS
通知サービス
-
パブリッシャ
メッセージ送信者 -
サブスクライバ
メッセージ送信者 -
トピック
アクセスポイント、通信チャンネル
パブリッシャが作成したトピックをサブスクライブすることで、サブスクライバはメッセージを送受信可能。サブスクライバにはHTTP(S), Email, SQS, Lambdaがある。トピックに対して、アプリ側からサブスクライバ宛にメッセージを送るのがパブリッシュ。Lambdaでは、その通知をトリガーに何らかの処理を走らせることができる。
☆SQS
メッセージキューイングサービス
バッチ処理など非同期で分散処理が可能
想定外の大量のトラフィックを一旦SQSのキューに受け入れ、後から処理していく時によく使われる。バッファリングすることで、DBの負荷を減らせる。また、オートスケールの運用負荷も下げることができる。
ロングポーリング
キューが空の場合、メッセージ取得までの待機時間を1~20秒で設定し、メッセージ取得要求の数を減らせる(コストダウン)
逆に、もしキューが空でも取得してしまう(ショートポーリング)と、コストだけかかって意味がない。
可視性タイムアウト
メッセージ取得を他の受信者に一定時間見せないようにする。処理の重複やリクエスト数を減らせる。
キュー種類
-
標準キュー
最大のスループットだが、配信順序はベストエフォートで配信回数は少なくとも1回 -
FIFOキュー(First In, First Out)
送信されている順番に配信され、1回で確実に処理する
SQSを利用して2つのSQSキューを使用して優先度を変更可能。優先的に処理されるキューとそうではないキューとに振り分ける。例えば有料会員とそうでない会員とか。(プライオリティキュー、セカンダリキュー)
SES
メールの送信サービス
Amazon MQ
オンプレから既存のアプリのメッセージング機能を移行できる
その他
CodeDeploy
アプリのデプロイの自動化。
インプレイスアップグレードに使える。
EC2インスタンスのライブでのアプリケーションの更新。
CodeCommit
コーディングされた内容をGitリポジトリにホスト
CodeBuild
ソースコードをコンパイルし、テストを実行し、デプロイ可能なソフトウェアパッケージを作成できる
CodePipeline
アプリケーションのビルド、テスト、デプロイまでの処理手順を定義・実行
SWF(Simple Workflow Service)
ひとかたまりの処理の状態管理とタスク間の流れの管理サービス。
分散している(非)同期タスクを一連のフローとし、高耐障害性↑↑