背景
SAA 受験に向けて問題を解いていたが、レアケースな問題や、よく理解できていない問題が結構ある。
ので、記憶に定着することを目指して、少しずつメモを貯めることとした。
メモ
Amazon Redshift にデータを転送する要件があるため、Amazon Kinesis Data Firehose を選択する
Kinesis Data Firehose と Kinesis Data Stremas の違いがよく分かってなかったので、クラスメソッド様の記事 を拝読。
それぞれの特徴は、
- Kinesis Data Streams
- レイテンシが速い (1s 以下)
- データをリアルタイムで加工・表示するのに適している
- Kinesis Data Firehose
- ゼロ管理 (Lambda 等のコードが必要ない)
- S3, Redshift 等にデータを貯めて、分析するのに適している
Kinesis Data Firehose については、こちらの記事 も参考になった。
Amazon Redshift のデータの処理については、費用対効果を高めるため、AWS Lambda を使う
どうやってクエリを投げるのかな?と思ったが、Data API 経由でクエリを実行できるようだ。
Amazon DynamoDBにはテーブルで読み込みおよび書き込みを処理するための読み込み/書き込みキャパシティーモードが 2つある
[オンデマンドモードと、プロビジョニングモードの2つがあるようだ] (https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html)。
料金については、クラスメソッド様の記事 がめっちゃ分かりやすい。
Auto Scalingの終了ポリシーは、追加で起動したインスタンスの終了順序を決める
Default の終了ポリシーは、
- インスタンスが最も多い AZ を選択する
- 最古の launch configuration を使用するインスタンスを選択する
- 上記インスタンスが単一の場合、そのインスタンスを終了する
- 複数の場合、次の請求時間が最も近いインスタンスを選択し、ランダムにインスタンスを選んで終了する
という感じのようだ(by クラスメソッド様の記事)。
Elastic BeanstalkのユースケースとしてはWEBアプリケーションやワーカー環境などの構築によく用いられる
Web アプリケーションは分かるが、ワーカー環境って何だかよく分からない。
クラスメソッド様の記事 を読んだ感じでは、
- 処理依頼(ジョブ)を受け付けて、待ち行列(キュー)に追加する
- ジョブの完了に関係なく、制御が依頼元に戻る
という非同期処理を行う環境を指すようだ。
マイクロサービス化されたコンポーネント間の処理を連携するにはSQSを利用したポーリング処理が最適
SQS ではメッセージをキューに追加して、ポーリング処理できるのが強みのようで、マイクロサービスに適しているようだ。
(クラスメソッド様の記事)
AWS は各サービスに対するアクションの権限、各アクションが実行する内容に基づいて、5 つのアクセスレベル (List、Read、Write、Permissions management、または Tagging) のいずれかに分類する
AWS のガイド に、詳しく書かれていた。
IAM Access Analyzer はアクセス権限の最小化構成をモニタリングするための機能
クラスメソッド様の記事 で詳しく解説されている。
別のAWSアカウントに自分が所有するS3バケットへのアクセス利用を許可したい場合、バケットポリシー及びユーザーポリシーの両方の許可設定が必要
何らかのIAMグループに所属しているIAMユーザーに対し、パスワードを変更する機能を制限する
- ユーザーが自分のパスワードを変更できないように IAM パスワードポリシーの設定を変更する
- ユーザーが自分のパスワードを変更できる IAM ポリシーをユーザーグループにアタッチする
上記で実現できる。[AWS 公式の解説]
(https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_passwords_enable-user-change.html)
ElastiCache における Redis と Memcached の違い
項目 | Redis | Memcached |
---|---|---|
負荷分散 | ノードの追加/削除 or レプリカノードの登録、クラスターモード |
ノードの追加/削除 |
単一ノードの性能 | シングルスレッド (CPU のコア数を上げてもそれほど上がらない) |
マルチスレッド (CPU のコア数を上げるほど上がる) |
データ型 | 豊富なデータを扱える | string のみ |
バックアップ | クラスター毎にスナップショットを取れる | AWS でサポートされてない |
クラスメソッド様の記事 を参考にした。
メッセージが256KBを超えなければSQSに保存するのが最も基本的な方法
By AWS 公式。
また、256KBを超えるような場合は、拡張クライアントライブラリを使用してS3にメッセージを保存できるようだ。
クラスタープレイスメントグループを設定できるインスタンスは、バーストパフォーマンスインスタンス・ Mac1 インスタンス以外の現世代のインスタンス
By AWS 公式。