AWS ソリューションアーキテクト アソシエイト受験に向けて取り組んできた勉強において、
振り返っておくと良さそうな部分をまとめてみました (その1)
メモ程度の内容ですが、同じように AWS の勉強をしている方の参考になれば嬉しいです
IAM
- 1アカウントあたりのIAMの制限(数)
- IAMユーザー : 5000
- IAM ユーザーは10個のIAMグループに所属可能
- IAMグループ : 300
- IAMロール : 1000
- IAMユーザー : 5000
-
AWS Organizations は IAM のアクセス管理を容易にするサービス。
- アクセス権限自体の編集を行うものではない。
EC2
-
EBS のボリュームタイプ
タイプ ユースケース 最大スループット[MiB/sec] 料金 [USD/GB] 汎用SSD バランス良い 250 0.1 プロビジョンドIOPS SSD 大規模なDBワークフロー等IOPS重視 1000 0.125 + 0.065 (IOPS向上分の費用) スループット最適化HDD ビッグデータ処理やログ解析 500 0.045 Cold HDD アクセス頻度の低いデータ(ログデータ等)用 250 0.025 -
ゴールデンイメージ : ソフトウェアがインストールされた最新の状態のAMI
-
Reserved Instance (RI) による価格メリット適用範囲
- 特定の AZ で購入した場合
- RI のインスタンスタイプ/サイズと同じインスタンスのみ
- 特定のリージョンで購入した場合
- RI のインスタンスタイプと同じインスタンスに対して、正規化係数に基づくインスタンスサイズの柔軟性が適用される。
- 上記のルールは RI を購入したアカウントだけでなく、そのアカウントの一括請求グループに所属するアカウントにも適用される。
- 特定の AZ で購入した場合
VPC
- セキュリティグループとACLの違い
- セキュリティグループ : インスタンスに対するトラフィック制御
- ACL : サブネットのトラフィック制御
- どちらの設定内容も即時反映される
-
Direct Connect
- オンプレ環境と AWS リソース間を、高い信頼性&ネットワーク帯域幅の専用線を用いて接続するサービス。
- より短時間で接続設定を完了したい場合は、サイト間VPN (Site2Site VPN) 接続によって VPN トンネルを作成することも可能。
- オンプレ=>クラウド移行に使用されるサービスではない。
-
Transit Gateway
- 1,000 以上のVPCとオンプレ間の相互接続を可能にするマネージドサービス。 (巨大なルーター)
- ネットワークの共用がスコープ。
- アプリケーションの共用が目的であれば、PrivateLink w/NLB を使用する。
- S3, Dynamo DB にアクセスする場合は VPC エンドポイントを用いる。
- 他のリージョンサービスにおいては NAT ゲートウェイを経由する。
DB系
-
なんとなく用途別サービス紹介
- データレイクとしてデータ蓄積, アクセス頻度の少ないデータ保存には S3
- ビッグデータ解析などの高速処理や、一度にアクセスが集中アプリケーションには DynamoDB
- DynameDBでもいけそうなケースだが、より複雑なクエリ処理(JOIN, TRANSACTION, COMMIT, ROLLBACK など)が必要な場合は RDS
- 検索効率重視ときたら ElasticSearch
- リアルタイム処理ときたら ElasticCache
- マッピング表示ときたらグラフDBを提供する Neptune
-
DAX (Data Accelerator) クラスター
- DynamoDB のインメモリキャッシュ。
- マルチAZで構成することで 1秒間に数百万件のリクエスト処理を可能にする。
-
Aurora Serverless
- DBインスタンスクラスを指定せずにデータベースエンドポイントを作成することができるサービス。
- データベースの容量範囲を指定することで、自動的にリソースがスケーリングされる。
- その処理負荷が一定ではないが、高性能なパフォーマンスが必要なケースに適している。
-
(Aurora以外の) RDS vs Aurora
タイプ アクティブなインスタンス 自動バックアップの対象 切替(マルチAZ) 切替え(マルチリージョン) RDS プライマリのみ スタンバイ スタンバイへの自動フェイルオーバー なし Aurora 全インスタンス 共有ストレージレイヤー リードレプリカへの自動フェイルオーバー セカンダリリージョンのマスタ昇格が可能 -
Storage Gateway
- オンプレから実質無制限のクラウドストレージ (RDS, S3, ...) へのアクセスを提供するハイブリッドクラウドストレージサービス。
- 用途ごとにボリュームタイプの設定が必要。
- 保管型ボリューム : オンプレ側をプライマリとして使用したい場合
- キャッシュ型ボリュームクラウドストレージサービスをプライマリとして使用したい場合
S3
- ストレージクラス
クラス | 特徴 | 耐久性[%] | 可用性[%] |
---|---|---|---|
STANDARD | ベーシック | 99.999999999 | 99.99 |
STANDARD-IA(Insufficient Access) | ↑ より安価 低頻度だが高速な取得が要求されるケース | 99.999999999 | 99.9 |
One Zone-IA | ↑と同ケース+低コスト (1 AZのみの運用) | 99.999999999 | 99.5 |
Intelligent-Tiering | アクセス頻度に応じてデータを自動で分類してコスト削減 | 99.99 | 99.9 |
RRS | 低冗長化(現在非推奨) | 99.99 | 99.99 |
Amazon Glacier | 最安 アーカイブ用 | 99.999999999 | N/A |
-
アクセス制御の手段
- バケットポリシー : アクセスを行うインスタンスが不特定多数の場合
- IAMロール : アクセスを行うインスタンスが特定できる場合
-
Glacier の選択余地
- Glacier は最も安価な S3 のボリュームタイプ。
- 低頻度アクセスときたら Standerd-IA を選びがちだが、コスト最適化重視かつ数分でのデータ取得で良い場合は Glacier が最適である。
- データ取り出しのオプションを "迅速取り出し" すれば、1~5分で取得可能になる。
- 必要とされるデータ取得時間が 12 時間以上でも問題ない場合は、Glacier Deep Archive が最適である。
-
バケットとオブジェクトの所有者が異なるケース
- AWS アカウント A が作成したバケットに AWS アカウント B がアップロードしたオブジェクトの所有者はアカウント B であり、デフォルトではアカウント A はそのオブジェクトにアクセスできない。
- アカウント A にアクセス権を付与するためには、アップロードされたオブジェクトの ACL を更新する必要がある。or クロスアカウント設定?
-
5xx エラーが発生する場合のトラブルシューティング
- エラー発生の時点で、S3 がリクエストを処理しきれていない状態にある。特に 503 Slow Down では S3 バケットが許容できるリクエスト率を超えて、非常に高いことを示している。
- 処理できていないリクエストを再試行すため、以下の手順に従って耐障害メカニズムを持たせる必要がある。
- リクエストするアプリケーションの再試行メカニズムを有効にする。
- リクエスト率を徐々に増やすようにアプリケーションを設定する。
- 複数のプレフィックスにオブジェクトを分散する。