【AWS SAA】試験対策用備忘録メモ

AWS Certified Solutions Architect(ソリューションアーキテクトアソシエイト)試験(SAA-C03)の試験対策用の備忘録メモになります。
AWSの概要
Well-Architected Frameworkの「一般的な設計原則」は以下の6つ
必要キャパシティーの推測が不要に
本稼働スケールでシステムをテストする
自動化によってアーキテクチャでの実験を容易にする
発展するアーキテクチャが可能に
データに基づいてアーキテクチャを進化させる
ゲームデーを利用して改善する
SaaS (Software as a Service)はアプリケーションを含むすべての機能を提供するサービス
EC2
AMI(Amazon マシンイメージ)はEC2インスタンスを起動するためのOS・ミドルウェアなどのテンプレート
EC2インスタンスはユーザーが選択したAMIから選択される
AMIに含まれないOSの設定や、ミドルウェアの導入は個別に実施する必要あり
OS・ミドルウェアのセキュリティパッチはユーザーで管理・適用する必要あり
EC2の購入オプション
スポットインスタンスではスポットフリートのオプションで必要なインスタンス数を指定できる
ハードウェア専有インスタンスは他のAWSアカウントとは分離された専用ハードウェアでEC2インスタンスを利用できる購入オプション
Dedicated Hosts(専有ホスト)は他のEC2インスタンスとは分離された専用ハードウェアで利用できる購入オプションで購入価格が一番高い
プレイスメントグループは、複数のEC2インスタンスをグループ化し、インスタンス間の低遅延通信やハードウェア障害の影響を軽減できる機能
クラスタープレイスメントグループは、グループ内のEC2インスタンスを単一AZ内の物理的に近い距離に配置し、通信遅延を減らす
パーティションプレイスメントグループでは、グループをパーティションとよばれる論理グループに分割し、各パーティション(1つのラックが対応)に1つ以上のEC2インスタンスを配置し、ハードウェア障害による影響を減らす
スプレッドプレイスメントグループは、グループ内のEC2インスタンスを異なるラックに配置し、ハードウェア障害による影響を減らす
インスタンスストアは、EC2インスタンスの稼働中にだけ利用できるブロックストレージ
一時的なストレージとして利用でき、EBSよりも高いパフォーマンスを持つ
EC2インスタンスの停止・終了・削除時・障害発生時にはデータは消える
利用料金はEC2に含まれておりインスタンスストア自体は無料
キーペアは、EC2インスタンスに安全に接続するための暗号鍵のペア(SSHキー)
- AWS上に保管されるパブリックキーとユーザー環境上に保管するプライベートキーの2つで構成される
S3
バケットはS3のオブジェクトが保存される領域
バケットにはオブジェクト数が無制限で保存できる
バケット名はグローバルで一意にする必要あり
作成したバケットのバケット名は変更できない
S3バケットに一度にアップロードできる最大サイズは5GB
- 5GB以上の時はマルチパートアップロードでファイルを複数に分割しS3バケットにアップロードする
S3のアクセス制御
ユーザー(IAM)ポリシーは、自分のAWSアカウントのIAMユーザー・グループ・ロールに対してアクセスと、アクセス元のIPアドレス・ドメイン名によるアクセス制御ができる
バケットポリシーはバケット単位でアクセス権限を設定でき、他のAWSアカウントに対してもアクセス制御ができる(アクセス元のIPアドレス・ドメイン名のアクセス制御も可能)
ACLは、他のAWSアカウントからの読み取り・書き込みを許可できるが、アクセス元のIPアドレスやドメイン単位でのアクセス制御はできない
S3のオブジェクトロックは、S3バケットに保存したオブジェクトに対して更新・削除を制限する
オブジェクトロックはS3バケット作成時にのみ設定可能
オブジェクトロックには保持期間が無期限のリーガルホールドと、期限付きのリテンションモードがある
リーガルホールドは、権限を持たないユーザーに対し、リーガルホールドが解除されるまでオブジェクトを読み取り専用にする
リテンションモードはガバナンスモードとコンプライアンスモードのどちらかを選ぶ
ガバナンスモードでは権限を持たないユーザーに対し、指定の保持期間中オブジェクトを読み取り専用にする
コンプライアンスモードではルートユーザーを含む全てのユーザーに対して、指定した保持期間中オブジェクトを読み取り専用にする
S3 Glacierにはボールトロックという機能があり、ボールト内のアーカイブに制限をかけることが可能
- ボールトロックを有効にすると、指定した期間中は設定内容を変更できない
SSE(Server-Side Encryption)は、データをS3に保存する時にサーバーで暗号化する方法
SSE-S3ではS3が管理している鍵を使用する
SSE-KMSではAWS KMSに保存されているKMSキーを使用する
SSE-Cではユーザーが管理している鍵を使用する
MFA Deleteは、S3のバージョニング機能を使用して管理されているオブジェクトを削除する際に、MFAデバイスの認証が必要となる機能
- MFA Deleteを利用すると、ルートユーザーのみが世代管理されたデータの削除権限を持つようになる
Transfer Accelerationは、S3上のデータをAWSネットワーク内から最速で通信できるルートを経由して転送させる機能
VPC
ENI(Elastic Network Interface)はAWSリソースのネットワークインターフェイス
VPC内のEC2インスタンスやNATゲートウェイなどに割り当てて利用する
VPCフローログは、VPC内のENIで通信するネットワークトラフィック情報をキャプチャする機能
AWS Transit Gatewayは、複数のVPCや複数のオンプレミスネットワークを相互に接続するハブ機能を持つ
- VPC以外にDirect ConnectやAWS VPNで接続されたオンプレミスネットワークとも接続可能
サブネットのルートテーブルはデータをどこに転送するかを定義する機能
インターネットゲートウェイをターゲットにすることでVPCからインターネットへ接続できる
ルートテーブルがないサブネットはVPC全体に適用されるメインルートテーブルに従ってルーティングする
インターネットゲートウェイは、インターネットとVPC内のAWSリソースを接続する機能
- インターネットゲートウェイへのルーティングが設定されたサブネットはパブリックサブネットになる
NATゲートウェイ・NATインスタンスは、プライベートサブネットからインターネットへの通信を可能にするIPv4専用の機能
NATゲートウェイはAWSによってAZ内で冗長化されている
NATインスタンスはEC2インスタンスから作成し、ユーザーが管理を行う
NATインスタンスはNATゲートウェイでは利用できないポート転送機能を設定できる
NATインスタンスはVPC外からプライベートサブネット内へ接続する際の踏み台サーバーとして利用可能
Egress-Onlyインターネットゲートウェイは、VPCからインターネットへの接続開始要求を通すIPv6専用のインターネットゲートウェイ
VPCエンドポイントはプライベートサブネット内のAWSリソースから、インターネットゲートウェイを経由せずにVPC外のAWSサービスへアクセスする機能
VPCエンドポイントポリシーでVPCエンドポイントからの接続先を制限する
VPCエンドポイントにはゲートウェイ型とPrivateLinkがある
ゲートウェイ型はS3とDynamoDBで利用でき、PrivateLinkは多数のサービスで利用できる
IPアドレスの種類
プライベートIPアドレスは、VPC内のリソース間の通信に使用し、AWSリソースを停止・起動しても同一のIPアドレスが使われ、AWSリソースの削除時にIPアドレスが解放される
パブリックIPアドレスは、インターネットと通信可能なIPアドレスでAWSリソースが停止する時にIPアドレスが解放され、AWSリソースが起動する時に新規のIPアドレスが割り当てられる
Elastic IPアドレスは、インターネットと通信可能な固定のパブリックIPアドレスでAWSリソースが削除されても同一のIPアドレスが保有される
IAM
IAMポリシーはAWSリソースに対する権限を定義する
IAMポリシーにはアイデンティティ(ユーザー)ベースとリソースベースのポリシーがある
アイデンティティベースのポリシーはIAMユーザー・IAMグループ・IAMロールにアタッチする
リソースベースのポリシーは、S3バケットなどのAWSリソースに対してアタッチするポリシー
ELB
ELB経由のクライアントからWebサーバーまでの通信の暗号化
ALB・CLBでELBとターゲットにサーバー証明書を導入する(クライアントとWebサーバー間の暗号化通信はHTTPS)
NLB・CLBでターゲットにサーバー証明書を導入する(クライアントとWebサーバー間の暗号化通信にHTTPSを利用、経由するELBはTCPを利用する)
ELB経由でクライアントからWebサーバーまでのインターネット通信を暗号化
- ELBにサーバー証明書を導入する(クライアントからELBまでの通信が暗号化される)
ALBでHTTPのリクエストをHTTPSに変換するには、HTTPリスナーを作成しHTTPSへリダイレクトするルールを設定する
SNI(Server Name Indication)は、サーバー証明書をパブリックIPアドレスではなくドメイン名によって判断する昨日
アクセスログを有効にするとクライアントの接続情報が記録される
Auto Scaling
Auto Scalingグループはスケーリングの管理単位で、グループ内でのリソースの最小・最大数やスケールアウト・インの実行条件などを指定する
グループのスケールイン時にリソースを削除する優先順位を終了ポリシーにて設定する(デフォルトは最も作成時刻が古い起動テンプレートを利用して起動されたリソース)
グループでスケールアウトが発生した時に起動するリソースは、起動テンプレートで指定する
ライフサイクルフックは、スケーリングの起動・終了時に任意の処理を実行する機能
動的スケーリングは、CPUやネットワークなどのパフォーマンスの負荷状況に応じてスケーリングを実施する
Lambda
Lambda関数はLambda専用のVPCに配置される
Lambda専用のVPCからプライベートサブネット内のAWSリソースへはアクセスできない
VPCアクセスを設定したLambda関数は、ENIを作成したサブネットへアクセスできるようになるがインターネットへアクセスできなくなる
ECS
ECSにはクラスター・タスク・サービスがある
クラスターは1つ以上のタスク・サービスで構成される
クラスターではコンテナが動作するVPC・サブネットなどを設定する
タスクはECSで管理するコンテナの実行単位
サービスでは起動するタスクのタスク定義、クラスター内で必要なタスク数などを設定する
タスク定義は実行コンテナイメージ・CPUやメモリのスペック・タスクロールなどを定義する
ECSで実行・管理するコンテナは、AWS FargateとEC2起動タイプがある
AWS Fargateはコンテナ実行環境のCPUやメモリのスペック・アクセス権限などを設定すれば、サーバーの環境構築や管理をすることなくコンテナを実行できる
EC2起動タイプはユーザーが管理するEC2インスタンス上でコンテナを実行する
Amazon ECR(Elastic Container Registry)はコンテナイメージを登録・管理するサービス
EBS
Amazon EBS(Elastic Block Store)はEC2インスタンスに割り当てられる可用性・堅牢性に優れたブロックストレージ
インスタンスを終了してもデータを永続的に保持することができる
スナップショット機能・暗号化機能がある
暗号化する際はAWS KMSを利用する
HDDのボリュームタイプ(st1、sc1)はEC2インスタンスの起動ボリュームには指定できない
DeleteOnTerminationの値をfalseにするとEC2インスタンス終了時にデータが削除されない
EBSで扱えるデータ量の上限は16TiB
アタッチしているEC2インスタンスのOSの機能を利用してEBSボリュームのRAID構成を組むことができる
EFS
EFS(Elastic File System)はNFS(Network File System)プロトコルをサポートするファイルストレージサービス
複数のコンピュータからストレージを共有することができる
EFSではデータ量で自動的に拡張・縮小のスケーリングがされる
ACID特性のあるストレージ
ファイルシステムに対する読み取り・書き込みパフォーマンスを設定できる
パフォーマンスの設定にはファイルシステム作成時にのみ設定するパフォーマンスモードと運用中に変更できるスループットモードがある
パフォーマンスモードには一般的な用途向けの汎用パフォーマンスモードと、ビッグデータ解析などの大容量データや数千台のクライアントの処理向けの最大I/Oパフォーマンスモードがある
スループットモードにはベースライン性能の2倍まで性能向上できるバーストスループットモードと、ユーザーが予約した性能からスループットを提供するプロビジョンドスループットモードがある
EFSのストレージ容量は無制限
FSx
Amazon FSxはAWSが提供するファイルストレージサービス
Amazon FSx For Windowsファイルサーバーは、SMBプロトコルを介してWindows Server上に構築されたファイルシステムを提供するフルマネージドのストレージサービス
DFSR機能を備えたファイル共有を利用できる
Active Directoryによるユーザー認証が行える
NTFS(NT File System)を利用できる
ファイルサーバーにはオンプレミス環境とAWSの両方からアクセスできる
Amazon FSx For Lustreは、Lustreという既存のファイルシステムをAWS上で利用できる
LustreファイルシステムはS3と連携できる
HPC(High Performance Computing)や機械学習用途に適したストレージサービス
Storage Gateway
AWS Storage Gatewayは、オンプレミスからAWSストレージサービスへのアクセスを高速・セキュアに行うサービス
ファイルゲートウェイは、オンプレミスからNFSまたはSMBを介してS3バケットへアクセスする
オンプレミスにキャッシュストレージを持ち低レイテンシでのアクセスも可能
IAMロールでユーザーごとにアクセスするバケットを制御可能
ボリュームゲートウェイはS3をiSCSI接続のブロックストレージボリュームとして提供する
キャッシュ型(キャッシュボリューム)は、データをS3に保存し、高頻度アクセスのデータのみオンプレミスのキャッシュストレージにコピーする
保管型(ストアドボリューム)は、データをオンプレミスのボリュームストレージに保存し、S3に非同期でバックアップを保存する
DataSync
- AWS DataSyncは、ストレージ間のデータ転送サービス
Snow Family
AWS Snowファミリーにはデータの量・用途で3つのサービスがある
Snowconeは最小のデバイスで、オフラインの転送およびAWS DataSyncを使用したオンラインでの転送に対応
Snowballは最大でHDD80TBのストレージ
Snowmobileはエクサバイト規模(100PBのストレージ搭載のトレーラー)
Snowball Edge Compute Optimizedはコンピューティング向けのデバイス
RDS
RDSは、フルマネージド型のリレーショナルデータベースサービス
マルチAZでは、プライマリDBインスタンスとスタンバイDBインスタンスを異なるAZに配置することによって可用性を向上させる
データベースインスタンスの暗号化を行うとバックアップ・スナップショット・ログ・リードレプリカへも暗号化が行われる
RDSでは参照専用のデータベースとして動作するRR(リードレプリカ)参作ることができる
- インスタンスクラスやストレージタイプ、マルチAZのほか、サブネットの設定、自動スケーリングの有無、認証方法などの設定が可能
DBパラメータグループ(DBクラスターパラメータグループ)・オプショングループでタイムゾーン・最大接続数・監査ログの有効化などデータベースの設定を変更する
Aurora
Amazon Auroraは、MySQL/PostgreSQL互換のデータベースエンジン
データベースインスタンスとストレージが分離しており、データベースインスタンスだけを必要に応じて増減できる
デフォルトで3つのAZに2つずつのデータコピー・自動修復機能でストレージの高い耐障害性がある
Redshift
Redshiftはペタバイト級のデータウェアハウス
Leaderノードは各クラスタに一台だけ存在する
ComputeノードはLeaderノードからの命令を処理する
クロスリージョンスナップショットでスナップショットを異なるリージョンへ保存できる
DynamoDB
シンプルな構造でありデータアクセスのパフォーマンスは非常に高い
ストレージの容量制限がない
インデックスを作成してテーブル内のデータに高速にアクセスが可能
自動的に3つのAZにデータが保存される
テーブルへの書き込み・読み込みのスループット単位をキャパシティユニットとして管理する
キャパシティユニットを自動的にスケールに設定するとコストを抑えられる
リザーブドキャパシティで予約購入しコストを抑えられる
DynamoDB Streamsでテーブルに対して行われた直近の24時間の変更(追加・更新・削除)をログに保存する
オンデマンドバックアップでユーザーが任意のタイミングでバックアップを作成する
ポイントインタイムリカバリ自動的に差分バックアップを行う
Amazon DynamoDB Accelerator(DAX)は、DynamoDBのインメモリのキャッシュクラスタ
ElastiCache
ElastiCacheはフルマネージドのKey-Value型インメモリデータベース
RedisはMemcachedよりも高機能なデータベースエンジン
自動フェイルオーバー・マルチAZ機能を持つ
データを永続的に保持できる
データの暗号化・SSL/TLSでの通信の暗号化に対応している
CloudWatch
複数のメトリクスでアラームを通知したい場合は複合アラームを作成する
標準メトリクスとして取得可能な項目はCPU使用率・ディスクI/O・ネットワーク使用率
Amazon EventBridgeはAWS上のリソースの状態変化やスケジュールに応じてアクションを実行する
- アクションでLambda関数を実行できる
Amazon CloudWatch LogsはAWSサービス・EC2インスタンスのOS・アプリケーションのログを収集・管理する
ログの内容をフィルタリングして管理者に通知できる
EC2インスタンスのOSのログを収集するにはEC2インスタンスにCloudWatchエージェントをインストールする
CloudWatch Logs Insightsは収集されたログを解析するサービス
Kinesisなどの別のサービスへ転送するには、サブスクリプションフィルターでデータの転送先を設定する
CloudTrail
過去90日間のログを無料で参照できる
証跡情報を登録することによりCloudTrailのログをS3バケットへ保存することができる
- データイベント(S3上のオブジェクトの操作・Lambdaの実行)・インサイトイベント(書き込みAPIの呼び出しなど通常と異なる操作)のログを取得するには証跡情報を登録する
Elastic Beanstalk
AWS Elastic Beanstalkは、アプリケーションが動作する定番の構成を提供する
- 単一インスタンス・複数インスタンスの構成を選択できる
Dockerに対応している
シングルコンテナ・マルチコンテナを選択できる
コンテナが動作する環境はElastic Beanstalkによって管理されるが、コンテナ上の環境はユーザーが管理する
CloudFormation
AWS CloudFormationは、AWSのリソースをコード化・構築する
- テンプレートを共有することで同じ環境を複数作成できる
スタックセットを利用することでターゲットアカウント・リージョンを指定して環境を複製できる
Trusted Advisor
コスト最適化
- EC2のリザーブドインスタンスの最適な購入数をチェック
パフォーマンス
- EC2インスタンスの使用率をチェック
セキュリティ
- アクセス元の制限がない(0.0.0.0/0)セキュリティグループが定義されていないかをチェック
フォールトトレランス
- ELB配下のインスタンスが複数AZで稼働しているかをチェック
サービスの制限
- サービスの制限値と利用状況をチェック
Shield
- AWS Shield Advancedは、EC2インスタンス・ELB・CloudFrontなどを対象にDDoSから保護する
WAF
AWS WAFは、CloudFront・ALB・API Gatewayなどを保護する
Web ACLのアクセスコントロールリストで、IPアドレスなどに対してフィルタリングできる
- 接続元のIPアドレスから国別にアクセスを制限できる
KMS
鍵の作成者ではないIAMユーザー・IAMロールが鍵で暗号・復号をしたい場合はキーユーザーとして使用者を追加する
鍵の使用ログはCloudTrailに記録される
CloudHSM
AWS CloudHSMでは、専用のハードウェアデバイスで鍵を生成・管理する
鍵の管理はユーザーが行う
ハードウェアの管理はAWSが行う
Route 53
ゾーン情報はホストゾーンで管理する
パブリックホストゾーンはインターネットなどVPC外に公開されたドメインのDNSレコードを管理する
プライベートホストゾーンはVPC内に公開されたドメインのDNSレコードを管理する
エイリアスレコードはDNSレコードの1つで、AWSサービスのドメイン名に割り当てた別名から直接IPアドレスへ名前解決ができる
- Zone Apex(最上位のドメイン名)の別名を登録できる
位置情報ルーティングポリシーはクライアントの位置情報に基づいてIPアドレスを決める(例えばクライアントに合った使用言語ページを表示できる)
地理的近接性ルーティングポリシーはクライアントと地理的に近いリージョンのIPアドレスを決める
複数値回答ルーティングポリシーとフェイルオーバールーティングポリシーはヘルスチェックの結果に基づいて回答する
CloudFront
フィールドレベル暗号化は送信されたHTMLフォームのPOSTリクエストの一部のフィールドを暗号化し、特定のアプリケーションでのみ復号可能とする機能
OAIはS3へのアクセスをCloudFront経由でのアクセスに限定する機能
地理的制限はクライアントからのアクセスを国別に制限できる機能
Global Accelerator
AWS Global Acceleratorは、ユーザーからAWSリソースまでのアクセス経路を最適化するサービス
複数のリージョンで展開しているWebアプリケーションなどへのリージョン間の負荷分散が可能
固定のパブリックIPアドレスが利用可能
Direct Connect
Direct ConnectロケーションはオンプレミスとAWSのデータセンターとを相互に接続するポイント
Direct ConnectエンドポイントはDirect Connectサービス提供範囲にあるオンプレミス側の終端のルーター
Direct ConnectゲートウェイはDirect Connectエンドポイントと仮想プライベートゲートウェイの間に配置される
VPN
Site-to-Site VPNは、カスタマーゲートウェイ(オンプレミスのルーター)とVPCの仮想プライベートゲートウェイをインターネットVPNで接続する
- VPNトンネルを経由したネットワークトラフィック情報は、Amazon CloudWatchで収集できる
SQS
SQSはフルマネージドのメッセージキューイングサービス
可視性タイムアウトは、メッセージを受信した後に指定時間が経過するまでそのメッセージが他のクライアントから受信できないようにする
遅延キュー・メッセージタイマーは、送信したメッセージを指定時間経過後に受信させる
デッドレターキューは、エラーが一定回数に達したメッセージを隔離する
ショートポーリングではメッセージがない場合に空のレスポンスを返す
ロングポーリングではメッセージが空である場合に設定された時間を待つ
似たサービスで、Apache ActiveMQ・RabbitMQに対応したフルマネージドのメッセージブローカーサービスであるAmazon MQがある
SNS
SNSはプッシュ型のメッセージングサービス
通知方法は、Eメール・HTTP/HTTPS・モバイル端末へのプッシュ通知などを利用できる
Kinesis
Amazon Kinesisはストリーミングデータをリアルタイムで収集・処理する
Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析を行う
Kinesis Data FirehoseはストリーミングデータをS3・Redshift・OpenSearch Serviceなどへ配信する
Kinesis Data Streamsは外部から送信されるストリーミングデータを収集する
EMR
EMRはビッグデータの処理や分析を行う
- サーバー(EC2インスタンス)の管理が必要
HDFSでHadoopのファイルシステムを利用できる
EMRFSでS3をEMRクラスターからファイルシステムとして利用できる
Glue
Glueは、フルマネージドのサーバーレスETLサービス
- サーバー等の管理が不要
クローラーはデータソースからデータを抽出しデータカタログを作成する
データカタログは抽出データのメタデータ(データの属性情報)が保存されたもの
データカタログはEMR・Athenaから参照できる
AWS Data Pipelineは、データの移動や変換を自動化するサービス
- S3からDynamoDBへデータを取り込んだり、RDSからRedshiftへのデータコピーが可能
Athena
AthenaはS3上のデータに対して標準SQLを実行できる
CSV・JSON・Parquetなどのデータ形式に対応している
Transcribe
- Transcribeは、機械学習を利用して音声をテキストに変換する
Comprehend
Comprehendは、機械学習を利用してテキストデータを解析する
Comprehend Medicalは医療情報に特化したサービス
Textract
Textractは、機械学習を利用したOCR(光学的文字認識)サービス
スキャンしたドキュメントやPDFからテキストやデータを抽出する
SSM
SSM(Systems Manager)は、複数のAWSリソースをグループ化し、グループ内リソースの運用管理サービス
AWS Systems Manager Session Managerは、EC2インスタンスへブラウザ・CLIからセキュアにログインできる
AWS Systems Manager Parameter Storeは、DBなどにアクセスする際のパラメーターを管理する
AWS Systems Manager Patch ManagerはEC2インスタンスのOSパッチ適用を自動化する
Config
- AWS Configは、AWSリソースの設定を管理・記録・評価するサービス
Directory Service
- AWS Directory Serviceは、MicrosoftのActive Directory (AD) をAWS上で提供するマネージドサービス
Secrets Manager
AWS Secrets Managerは、データベースのログイン時の認証情報などを管理する
ローテーション機能で定期的にシークレットを更新する
Cognito
- Amazon Cognitoは、モバイルアプリケーション・Webアプリケーションのユーザー認証機能を提供する