AWS認定試験の合格に必要な知識を確認します。
本稿では下記の略語を使用します。
略称 | 原語 |
---|---|
AZ | Availability zones |
I/O | Input/Output |
ACL | Access control list |
GW | Gateway |
IGW | Internet Gateway |
FW | Firewall |
IPS | Intrusion prevention system |
RI | Reserved instances |
SSO | Single sign-on |
SG | Security group |
SF | Step Functions |
AD | Active Directory |
GSI | Global Secondary Index |
LSI | Local Secondary Index |
前提
本稿では,アソシエイトレベルのソリューションアーキテクト(SAA:AWS Certified Solutions Architect Associate)に関する直前対策を行います。SAAは従来C02とよばれる旧形式の試験が行われていましたが,現在ではC03とよばれる新形式の試験が実施されています。
アソシエイトレベルのソリューションアーキテクトは,基礎レベルのクラウドプラクティショナーの知識を前提としています。したがって,本稿は下記のクラウドプラクティショナー前提対策の内容を前提としています。
CloudFront
CloudFrontのキャッシュ数は料金に影響を与えるか。
与えない。CloudFrontの料金は下記によって定まる。
- 配信地域
- リクエスト数
- エッジロケーションからのデータ転送アウト
CloudFrontにはSGをアタッチできるか。
できない。CloudFrontではOrigin Access Control(OAC)という機能を用いてオリジンとのアクセス制限を行う。
オリジンがELBではない場合,CloudFrontとオリジン間をTLS化する方法を簡単に説明せよ。
サードパーティーのCA証明書をCloudFrontとオリジンの両方に導入する。ただし,オリジンがELBの場合はACMによって発行されたSSL/TLS証明書を導入する。
CloudFrontのファイル圧縮は,エッジロケーションとLambda@エッジのどちらで行われるか。
エッジロケーション
認証・認可
SCPとアクセス許可の境界の違いを説明せよ。
SCPはOUに設定されたAWSアカウント全体を対象とし,アクセス許可の境界は個別のAWSアカウントを対象とする。詳しくは下記の記事を参照されたい。
STSは一時的なアクセス権限の委譲を行うか。
STSはあくまでも認証情報の提供のみを行うが,結果としてアクセス権限を移譲することになる。
Cognitoによる認証とアクセスキーによる認証の違いを説明せよ。
Cognitoは一時的,アクセスキーは永続的な認証のユースケースに利用される。
AUTHコマンドはRDS/ElastiCacheで利用できるか。
RDSでは利用できないが,ElastiCacheでは利用できる。
IAM Access AnalyzerとCloudTrailの違いを説明せよ。
- IAM Access Analyzer:インターネットや別アカウントからのアクセスを解析
- Cloudtrail:同じアカウント内のアクセスを解析
固有のプロファイル認証情報を利用してRDSデータベースへのアクセスを可能にするサービスは何か。
IAMデータベース認証
オンプレミスのADに保管されている情報を用いたフェデレーション方式の一例を説明せよ。
Microsoft Active Directoryフェデレーションサービスを利用して,SAML2.0ベースの設定を行う。Web IDフェデレーションでは,GoogleやOpenID Connect互換のIdPなど外部IDプロバイダーを使用するため,要件とは合致しない。
利用しているIDストアがSAML2.0と互換性がない場合,どのように対応するか。
カスタムIDブローカーアプリケーションを構築し,同様の機能を実装する。
主なActive Directoryサービスをまとめよ。
- Simple AD
- AD Connector
- AWS Managed Microsoft AD
AD Connectorを利用してMicrosoft Active Directory(AD)を構築できるか。
できない。構築できるのは,AWS Managed Microsoft ADであり,AD Connectorはあくまでも既存のADと連携する機能を提供する。
CognitoとSSOの違いを説明せよ。
- Cognito:不特定多数のユーザーに対する認証・認可
- SSO:組織内のユーザーに対する認証・認可
your user poolsとfederated idの違いは何か
- your user pools:Cognitoの認証基盤
- federated id:外部のIdP経由でのSSOで割り振られるid
コンピューティング
EC2の「XX中」ステータスと課金の関係について説明せよ。
status | 課金の有無 |
---|---|
保留中 | 無 |
停止準備中 | 無 |
削除準備中 | 無 |
休止準備中 | 有 |
AMIとリージョン・アカウント間の共有に関して説明せよ。
AMIはリージョン間でコピーが可能であり,アカウント間で共有が可能である。
起動設定を説明せよ。
AutoScalingでインスタンスの作成に利用される設定。EC2単体の設定には起動テンプレートが利用され,起動設定は起動テンプレートに置き換わっている。
AMIとゴールデンイメージの違いを説明せよ。
AMIをベースに個別のユースケースに最適化したリソースがゴールデンイメージ。DockerのベースレイヤーがAMIで,ビルドされたイメージがゴールデンイメージとざっくり理解する。
アクティブなスポットリクエストをキャンセルすると,関連づけられたインスタンスは停止するか。
停止しない。
EC2インスタンスタイプと拡張ネットワーキングを説明せよ。
拡張ネットワーキングは,広帯域幅と低レイテンシを提供する。コンピューティング最適化インスタンスで利用できる。
復元後のインスタンスID・パブリックIP・プライベートIPは,復元前と比べてどうなるか。
すべて変わらない。
ハイバネーションを説明せよ。
停止したインスタンスを再起動する際に,前回の状態から続行するための機能。メモリ内のデータをHDDに一時避難させてから,インスタンスの停止・再起動を行う。
ENIのEC2インスタンスへのアタッチ方法を三つ述べよ。
- ホットアタッチ:実行中のインスタンスにアタッチ
- ウォームアタッチ:停止中のインスタンスにアタッチ
- コールドアタッチ:起動中のインスタンスにアタッチ
ENIのアタッチは,主にENIを切り替えるときに行う必要がある。ホット・ウォーム・コールドはバックアップリソースの切り替えに関する一般的な用語で,温度が高いほど瞬時に切り替えることができると理解しておくとよい。すなわち,ホットアタッチでは瞬時にENIを切り替えるために,起動中のインスタンスにアタッチする。ウォームアタッチではそこそこ早くENIを切り替えるために,起動予定だが停止中のインスタンスにアタッチする。コールドアタッチでは,新しいインスタンスの起動中にアタッチする。ウォームアタッチのアタッチ先は停止中のインスタンスであり,真っ新な状態からインスタンスを作成するコールドアタッチよりも実行中のステータスに近いことに注意する。
AutoScalingのスケーリングポリシーを列挙し,それぞれ説明せよ。
- 静的スケーリングポリシー
- 常にDesired countだけ起動する
- ターゲット追跡ポリシー
- CloudWatchメトリクスを指定された値で維持するようにスケーリングする
- ステップポリシー
- CloudWatch Alarmの閾値にもとづいてcount数を定める
- スケジュールドスケーリングポリシー
- 静的スケーリングポリシーを指定期間中に発動する
- 予測スケーリングポリシー
- 機械学習の予測に基づいてスケーリングする
ヘルスチェックタイプを説明せよ。
- EC2ヘルスチェックタイプ:EC2の状態のみを調べる
- ELBヘルスチェックタイプ:EC2に加えてELBの状態を調べる
仮想化方式を二つ述べ,それぞれを簡単に説明せよ。
- PV AMI
- Paravirtual(準仮想化)の略称で古くから提供されている仮想化方式
- 後述のHVMに置き換えられている
- HVM AMI
- Hardware-assisted VM(完全仮想化)の略称
- 拡張ネットワーキングが利用可能
lambdaにSGは付与可能か。
可能。むしろlambdaでは,サブネットとSGの組み合わせが大切。
ECS on EC2ではEC2にIAMロールをアタッチして制御を行うか。
行わない。ECS側で制御する。
Auto Scalingが正常に起動せず24時間経過した場合,何が起こるか。
起動プロセスが停止する。
HTTP経由でLambdaを呼び出す方法を二つ述べよ。
- 前段にAPI Gatewayを設置する
- 関数URLをPublicに設定する
SGのルール変更はEC2インスタンスに即時反映されるか。タイムラグが生じるか。
即時反映される。
EventBridgeでLambdaを実行するのに必要なアクセス許可を付与する方法を述べよ。
lambda側でEventBridgeルールからのlambda:InvokeFunction
を許可する
オンデマンドのキャパシティ予約・RI・Saving Planの違いを説明せよ。
オンデマンドのキャパシティー予約 | RI | Saving Plan | |
期間 | コミットメント不要 | 1年 or 3年 | 1年 or 3年 |
概要 | 特定AZのキャパシティを予約 | 特定AZ/リージョンのキャパシティを予約 | - |
割引 | - | あり | あり |
制約 | 各リージョンでインスタンス数制限が異なる | 各AZ/リージョンでインスタンス数制限が異なる | - |
旧来は,オンデマンドのキャパシティ予約の代わりにスケジュールドリザーブドインスタンスが利用されていた。イメージとしては,「RI」と「Saving Plan+オンデマンドのキャパシティー予約」が概念的には並列になる。後者の方が柔軟性が高いような印象。
メモリ利用率はAutoScalingのトリガーに設定できるか
デフォルトではできない。
RIのコンバーティブルで変更可能でスタンダードで変更不可の属性は何か。
インスタンスのファミリー。インスタンスのサイズはどちらでも変更可能。
ユーザーの最適なEC2インスタンス設定をサポートするサービス(用語)を二つ述べよ。
- EC2 Image Builder
- ゴールデンイメージ
AWSが提供するAMIやサードパーティが提供するAMIでは,今後ユーザにとって最適でなくなる可能性がある。
EC2への書き込みスループットが遅いとき,VPCの拡張ネットワークは有効な手段か。
有効ではない。たしかに,VPCの拡張ネットワーキングはインスタンス間の低レイテンシを実現するが,EC2自体の処理速度が改善しないことにはボトルネックの解消には繋がらない。
プレイスメントグループを設定できないインスタンスタイプの例を述べよ。
T2などのバーストパフォーマンスタイプ。
ネットワーク
Route53
Zone Apexとは
サブドメインを含まないドメイン名。www.academ-aid.comではなく,academ-aid.comのことを指す。
エイリアスレコードについて説明せよ。
RFC1912により,CNAMEと他のレコードが共存できないことが定められている。一方で,Route53でホストゾーンを作成すると,デフォルトでホストゾーンと同じ名前のNSレコードが自動的に作成される。したがって,デフォルトでZone Apexに対してCNAMEを設定することはできない。
エイリアスレコードは,デフォルトでCNAMEを設定できないという問題を解決するために開発されたAWS独自の機能。例えば,ALBのDNS名に対してacadem-aid.comというドメインを設定し,Aレコードを指定したい場合は,下記のように指定する。
academ-aid.com | NS | Route53が自動作成した権威DNSサーバのDNS名 |
academ-aid.com | ALIAS(A) | ALBのDNS名 |
Route53ではアクティブ/アクティブ構成に対してフェールオーバールーティングを設定できるか。
できない。アクティブ/アクティブ構成に対しては,フェールオーバールーティング以外のルーティングポリシーを選択し,そのうえでフェールオーバー設定を行う必要がある。一方で,アクティブ/パッシブ構成に対してはフェールオーバールーティングを設定することが可能。
配信先の地域制限を行うことができるサービスとその機能を二つ挙げよ。
- Route53の位置情報ルーティングポリシー
- CloudFrontの地域制限
複雑なルーティングを比較的簡単に設定する方法を説明せよ。
トラフィックフローを用いて順序が設定されたトラフィックポリシーを作成する。なお,トラフィックポリシーというのは,トラフィックフローを用いて作成されたルーティングポリシーやエンドポイントの集合のことを指す。
オンプレミス環境からVPC内の名前解決を行うための設定を簡単に説明せよ。
- オンプレミス上のDNSリゾルバがDNSクエリをVPC上のRoute53リゾルバに転送できるように,Route53リゾルバでインバウンドエンドポイントを作成する。
- VPC上のRoute53リゾルバがDNSクエリをオンプレミス上のDNSリゾルバに転送できるように,Route53リゾルバでアウトバウンドエンドポイントを作成する。
地理的近接性ルーティングポリシーと位置情報ルーティングポリシーの違いを説明せよ。
- 地理的近接性:ユーザを近くのリソースに(自動的に)ルーティングする
- 位置情報:ユーザを特定の地域に(カスタムルールに基づいて)ルーティングする
ACMでサポートされていないリージョンでSSL証明書を管理するサービスは何か。
IAM。Route53はあくまでもSSL証明書とドメインの対応関係を検証するだけである点に注意する。
他リージョンのバックアップに迅速に切り替えるためのサービスとその機能は何か。
Route53のフェールオーバールーティング。Route53のフェールオーバー設定(アクティブ・アクティブ)では,常に両方のリージョンを利用することになり,迅速にバックアップに切り替えるという要件に適さない。
CA証明書とDV/EV/OV証明書の違いを説明せよ。
まず,TLS証明書はルート証明書・中間証明書・サーバ証明書の三種類に分けられる。これらの三種類が信頼の連鎖を構築している。CAは証明書の発行機関であることから,「CAがルート証明書・中間証明書・サーバ証明書」を発行するという関係性にある。そして,CAが発行した証明書はCA証明書と呼ばれることがあるため,DV/EV/OV証明書はCA証明書であるともいえる。なお,AWSはDV証明書のみに対応しており,EV/OV証明書には対応していない。
フェールオーバールーティングとRoute53のフェールオーバー設定の違いを説明せよ。
Route53のルーティング方法の一つにフェールオーバールーティングがあり,Route53のフェールオーバー設定はフェールオーバールーティング以外のルーティングに対しても適用できるという関係にある。
オンプレミス環境で保有しているIPアドレスをAWSに移行する際に利用されるドキュメントは何か。
Route Origin Authorization(ROA)
Webサーバにカスタムドメインを設定するときに利用するRoute53の設定を説明せよ。
- EnableDnsHostnames:パブリックDNSホスト名を取得する
- EnableDnsSupport:VPC内ホストの名前解決を行う
VPC・AZ・サブネット・LB
ENI/EFA/ENAの違いを説明せよ。
- ENI(Elastic Network Interface):プライベートIP・Elastic IP・SGを利用できる
- EFA(Elastic Fabric Adapter):ハイパフォーマンスコンピューティングを利用できる
- ENA(Elastic Network Adapter):拡張ネットワークを利用できる
デフォルトVPCとそれ以外のVPCにおけるDNSホスト名の割り当てについて説明せよ。
VPC | プライベートDNSホスト名 | パブリックDNSホスト名 |
---|---|---|
デフォルト | ○ | ○ |
それ以外 | ○ | ×(追加可) |
VPCウィザードで作成する「VPNアクセスを備えたVPC」の構成を説明せよ。
プライベートサブネットのみをもつVPC。
サブネットとAZの関係について説明せよ。
各サブネットは単一AZに属する。
メインルートテーブルを説明せよ。
サブネットがデフォルトで関連付けられるルートテーブル。自分で作成するルートテーブルをカスタムルートテーブルとよび,カスタムルートテーブルを指定する場合は,メインルートテーブルとの関連付けは解除される。
プライベートサブネットからインターネットへの通信を可能にする二つの技術を説明せよ。
- NATゲートウェイ:IPv4
- Egress-Onlyインターネットゲートウェイ:IPv6
NATゲートウェイとNATインスタンスの違いを説明せよ。
NATゲートウェイはマネージド型サービスで,NATインスタンスはユーザが管理するEC2上動作するサービス。NATインスタンスでは,NATゲートウェイでは実現できなかったポート転送や踏み台サーバ機能を提供できる。
ネットワークACLのデフォルト設定のデフォルト値とカスタム設定のデフォルト値について説明せよ。
デフォルト設定ではインバウンド・アウトバウンドいずれもデフォルトで許可,カスタム設定ではデフォルトで拒否する。
VPCフローログを取得できる対象をいくつか述べよ。
- VPC
- サブネット
- ENI
ALB・NLBはリージョンをまたいだ分散は可能か。
可能ではない。ただし,リージョン内であればVPCをまたいだ分散は可能である。
ALBとNLBはどちらの方がパフォーマンスが高いか。
NLB。1秒あたり数百万リクエストに達するようなユースケースで利用可能。
NLBの接続先にインスタンスIDを指定すると,IPアドレスはパブリックになるか。
プライマリプライベートIPアドレスになる。
クロスゾーン負荷分散とAZ間トラフィックに関して説明せよ。
クロスゾーン負荷分散を有効にすると,AZ間のトラフィックの均衡は保たずに,AZという括りを無視して各ターゲットに対して均等にトラフィックを分散させる挙動になる。
デフォルトSGとLinuxインスタンスに対するカスタムSGのデフォルトの違いを説明せよ。
- デフォルトSG
- SGを指定しない場合に自動付与されるSG
- sourceが同一SGのすべてのプロトコルに対するインバウンドがデフォルトで許可
- destinationが0.0.0.0/0のすべてのプロトコルに対するアウトバウンドがデフォルトで許可
- カスタムSGのデフォルト
- sourceが0.0.0.0/0のsshに対するインバウンドがデフォルトで許可
VPCとオンプレミスを接続するための方法をまとめよ。
下記の記事をご参照ください。
Transit GatewayでVPNをまとめることはできるか。
できない。CloudHubを利用する。
S3のGatewayエンドポイントとInterfaceエンドポイントを比較せよ。
Gateway | Interface | |
エンドポイントポリシー | △(必要に応じて) | △(必要に応じて) |
SG | ×(不要) | ○(必要) |
ルートテーブル | ○(必要) | ×(不要) |
InterfaceエンドポイントでSGが必要でおよびルートテーブルが不要なのは,作成されるENIに対して通信を行うためです。
ALBのリスナーではSSL設定とHTTPS設定のどちらを行うか。
HTTPS設定。Applicationレイヤーを扱うサービスであるため。
VPCが相互アクセス可能であれば複数リージョンで利用可能なホストゾーンの種類は何か。
プライベートホストゾーン
「SGは番号の順序通りにルールを適用する」は正しいか。
正しくない。全てのルールを適用する。SGはデフォルトでトラフィックを拒否するホワイトリスト形式であるため,全てのルールを評価する際に矛盾しにくい設計になっている。
sshのアウトバウンド接続のポートは何か。
1024〜65535のいずれか。22ではないため注意。
DNS hostnamesオプションはどのリソースで設定できるか。
VPC
ストレージ
共通概念
アクセスセマンティクスを説明せよ。
メモリアクセス時に満たすべき性質のこと。例えば,結果整合性と強整合性が挙げられる。
- 結果整合性:データ変更後に参照されたデータが最新とは限らない
- 強整合性:データの変更が完了するまで参照できない。
マウントヘルパーを説明せよ。
インスタンスに対するストレージのマウントを簡素化するプログラム。AWSではEFSマウントヘルパーがよく利用される。
S3
S3静的サイトのエンドポイント形式を二つ挙げよ。
- http://bucket-name.s3-website-Region.amazonaws.com
- http://bucket-name.s3-website.Region.amazonaws.com
リージョンをまたいだS3のレプリケーションでクロスオリジンリソースシェアリングの設定は必要か。
不要。
S3オブジェクトが正常に保存されたことを確認する方法を述べよ。
HTTPステータスコードの200が返り,かつMD5チェックサムが適切であることを確認する。
S3のキー名にハッシュ値を利用すると何が嬉しいか説明せよ。
検索性能が向上するため,アクセス速度が大きくなる。ハッシュだけでなく,カスタムプレフィックスを用いたパフォーマンス向上も可能である。
S3のストレージクラスとその取り出し時間をまとめよ。
下記の記事を参照ください。
S3 Glacierのボールトアクセスポリシーとボールトロックポリシーの違いを述べよ。
- ボールトアクセスポリシー:各ボールトに対して付与するリソースベースのポリシー
- ボールトロックポリシー:1つのボールトアクセスポリシーに付与してコンプライアンス要件を実現
S3のオブジェクトロックとボールトロックの違いを説明せよ。
オブジェクトロックはS3バケット内のオブジェクトを不変にするための機能であり,ボールトロックはS3 Glacierに保存されたアーカイブデータを保護するための機能である。
S3の署名付きURLを説明せよ。
IAMなどの認証基盤を用いずに,URLを知っている人のみにS3へのアクセス権限を与える仕組み。URLを知っていれば誰でもアクセス可能になる点に注意する。
S3のオブジェクトロックは,オブジェクトを格納する前と後のどちらで設定するか。
前。オブジェクトロックを有効にしたバケットにオブジェクトを格納するという順番。個々のオブジェクトそれぞれにオブジェクトロックを設定するのではなく,バケット作成時にオブジェクトロックを有効にするという点に注意する。
S3のパフォーマンスを向上させる方法を説明せよ。
日付などのプレフィックスを用いて並列化を行う。以前はハッシュを用いてランダムなプレフィックスを設定する必要があった。少なくとも,アップロードで3500rps,データ取得で5500rpsを実現可能。
S3バケットに保存することができるオブジェクトの最大ファイルサイズはいくらか。
5TB。ただし,単一のPUTでアップロードできる最大オブジェクトサイズは5GBであるため,5TBのオブジェクトをアップロードするためにはマルチパートアップロードを利用する。
S3の共有データセットへの大規模なデータアクセスの管理を行うサービスは何か。
S3アクセスポイント
S3のACLはどのようなときに利用されるか。
オブジェクト単位でのアクセス制御を行うとき
S3の暗号化方式を簡単にまとめよ。
- SSE-S3
- S3がキーの生成と管理を行う。最も手軽だがオブジェクトにアクセスできる人は復号可能。
- SSE-KMS
- KMSがキーの生成と管理を行う。キーへのアクセス制限を実現でき,CloudTrailで追跡可能。
- SSE-C
- ユーザがキーの生成と管理を行う。サービスの要件に準拠したい場合など。
EC2上のWebアプリケーションからのみS3へのアクセスを許可するための簡単な設定方法を述べよ。
バケットポリシーの referer
キーを利用して特定のURLからの参照のみを許可する
EBS
EBSで最新のスナップショット以外のスナップショットを削除するとバックアップは不可能になるか。
EBSのバックアップは増分バックアップであるが,最新スナップショットだけでバックアップが可能な仕組みになっている。
EBSのスナップショット作成を自動化するツールの名前は何か。
Amazon Data Lifecycle Manager(DLM)。EBSのバックアップの有効化だけでは定期的なライフサイクルを設定することはできないため,DLMで設定する。DLMではAMI管理も自動化できる。
EC2のルートボリュームにアタッチされているEBSは,EC2の削除時にデフォルトで削除されるか。
削除される。
EBSボリュームの暗号化対象を説明せよ。
- ボリューム内のデータ
- ボリュームとインスタンス間で移動されるデータ
- ボリュームから作成されたスナップショット
- スナップショットから作成されたボリューム
EBSの分類とその特徴をまとめよ
下記の記事をご参照ください。
EBSボリュームを使用するための初期設定を説明せよ。
ボリュームにファイルシステムを作成する。/dev/xvda
や/dev/sdf
みたいなやつ。
プロビジョニングされたIOPSと要求されたボリュームサイズ(GiB単位)の最大比はいくらか。
io1ボリュームの場合50:1で,io2ボリュームの場合は500:1となる。例えば,100 GiBのio1ボリュームは最大5,000 IOPSでプロビジョニングでき,100 GiBのio2ボリュームは最大50,000 IOPSでプロビジョニングできる。
EBSはAZをまたいでデータ共有できるか
できない
EFS
EFSのマウントターゲットを説明せよ。
EC2インスタンスとEFSのプロキシ的な役割を果たすENI。EFSはVPC外に存在するため,EC2インスタンスからはマウントターゲット経由でアクセスする。マウントターゲットはAZ毎に作成する。
POSIX準拠の共有ネットワークファイルシステムを提供するAWSサービスは何か。
EFS
EFSの分類方法をまとめよ。
下記の記事を参照ください。
ファイルアクセス時に最小レイテンシーとなるEFSのパフォーマンスモードを述べよ。
汎用モード。最大I/Oモードは,レイテンシを犠牲にしてスループットを高める。
Storage Gateway
Storage Gatewayのキャッシュ型ボリュームと保管型ボリュームをまとめよ。
下記の記事を参照ください。
サービス比較
EBS汎用ボリュームとEFS標準はどちらの方がコストが高いか。
EFS標準の方が高い。
EFS・EBS・S3はSMBプロトコルに対応しているか。
いずれも対応していない。SMBを利用するには,Amazon FSxなどを利用する。EFSはNFSv4・NFSv4・NFSv4に対応している。S3はSFTPに対応している。
データベース
共通概念
代表的なデータベースエンジンのポート番号を述べよ。
- MySQL:TCP/3306
- PostgreSQL:TCP/5432
- リモートデスクトップ:TCP/3389
RDS・Aurora
RDSのスナップショットとトランザクションログの頻度を述べよ。
- スナップショット:毎日
- トランザクションログ:5分ごと
Aurora Serverlessの利点と欠点を簡単に説明せよ。
- 利点:インスタンス自体の管理が不要で自動スケーリングすること。
- 欠点:別VPCに設置されるため,VPCエンドポイント経由でAPIを噛ませて通信する必要がある。結果として,Auroraと比べて性能が出にくい。
Amazon Aurora Global Databaseというサービス(機能)は存在するか。
存在する。単一のAuroraを複数のリージョンで運用できる機能。
RDSのオートスケーリング機能を説明せよ。
あくまでもデータ容量のスケーリング。読み取り負荷の分散という要件には合致しない。
RDSとAuroraはどのように使い分けるべきか。
- MySQL/PostgreSQL以外のエンジンを利用したい:RDS
- フェールオーバを重視したい:Aurora
- コストを削減したい:多くの場合Aurora
DBインスタンスのプロセスのCPU・メモリの使用率はCloudWatchで取得可能か。
デフォルトでは,データベースインスタンスのCPU・メモリの使用率は取得するが,スレッドのCPU・メモリの使用率は取得しない。RDSの拡張モニタリング機能を用いることで,取得できるようになる。
RDSではライフサイクルポリシーによるバックアップの設定は行えるか。
行えない
RDSとlambdaはどのように接続するべきか。
RDSプロキシとして接続する。RDSエンドポイントとlambda関数を接続すると,毎回新しいコネクションを張るため非効率である。
DynamoDB
DynamoDBストリームにおける格納イベントをトリガーとしてSNSに通知することはできるか。
できない
DynamoDBのインデックスをまとめよ。
まず,キーの種類には下記がある。
- パーティションキー
- ソートキー
- プライマリキー
パーティションキーは,データがどのパーティションに保存されているかを定める識別子。ソートキーはパーティションの中でどのようにデータを並び替えるかを定める識別子。プライマリキーは,パーティションキーもしくはパーティションキーとソートキーの複合キーとなる。
次に,インデックスの種類には下記がある。
- グローバルセカンダリインデックス(GSI)
- ローカルセカンダリインデックス(LSI)
グローバルセカンダリインデックスは,あるテーブルから異なるパーティションキーおよびソートキーが設定されたテーブルを作成する仕組み。ローカルセカンダリインデックスは,あるテーブルからパーティションキーはそのままで異なるソートキーのテーブルを作成仕組み。
DynamoDBのキャパシティモードを説明せよ。
DynamoDBの料金は下記の三要素によって定められる。
- キャパシティユニット
- ストレージ容量
- データ転送量
キャパシティユニットとは,事前に設定する書き込み/読み込み容量の上限のこと。書き込みキャパシティユニットはWCU,読み込みキャパシティユニットはRCUと称される。
- WCU
- 1KBまでの項目を1回書き込むのに1個のCUが必要
- RCU
- 4KBまでの項目で結果整合性を担保して1回読み込むのに0.5個のCUが必要
- 4KBまでの項目で強力な整合性を担保して1回読み込むのに1個のCUが必要
- 4KBまでの項目でトランザクションを1回読み込むのに2個のCUが必要
DynamoDBが自動的にスケーリングしないことは起こり得るか。
起こり得る。プロビジョニングモードでDynamoDBを使用した上で設定されたスループットを超えた場合には,自動的にスケーリングせずにHTTP400とProvisionedThroughputExceededExceptionエラーを返す。
DynamoDBでデータ変更イベントをトリガーしたい場合に利用するサービスは何か。
DynamoDBストリーム。CloudWatchEventsよりもよく使われる。
DynamoDBでホットキーの問題に対処するための機能は何か。
Amazon DynamoDB Accelerator(DAX)
DynamoDBテーブルはスナップショットを取得可能か。
取得できない。代わりにポイントインタイムリカバリを利用してバックアップを取得する。
DynamoDBストリームはモニタリング機能を有するか。
有さない。lambdaなどでテーブルの変更ステータスの履歴を処理する。
DynamoDBと連携してリアルタイム処理機能を実現するサービスを答えよ。
AppSync
DynamoDBとQuickSightは連携できるか。
連携できない
Redshift
RedshiftではマルチAZ構成およびマルチリージョン構成は可能か。
マルチAZ構成は可能だが,マルチリージョン構成できない。代わりに,スナップショットを別リージョンに保存して冗長性を確保する。
RedshiftをVPCエンドポイントを使って制御するとき,ルートテーブルはどのように変更するか。
Redshiftではルートテーブルごとマネージドされているため,拡張VPCルーティングとよばれる機能を使う。
Redshiftをキューと連携させたい場合,どのようなサービス or 機能を利用すればよいか。
RedshiftのWLM(Work Load Management)を利用する。SQSとは連携しない。
コストを抑えるためには,コンピュートノードとリーダーノードのどちらに注目するべきか。
コンピュートノード。リーダーノードに対しては料金は発生しない。
Kinesis
Kinesisの代表的なサービスを三つ説明せよ。
- Kinesis Data Streams:ストリーミングデータの処理
- Kinesis Data Firehose:ストリーミングデータの配信
- Kinesis Data Analytics:ストリーミングデータの分析
Kinesisストリームは非同期処理に向いているか。
向いていない。
ストリーム/シャード/データレコード/BLOB/シーケンス番号/パーティションキーを説明せよ。
- ストリーム
- データを格納する箱
- もしくはストリーミングデータそのものを表す
- 複数のシャードから構成される
- 性能はシャード数によって左右される
- データレコード
- シャードに格納されるデータの塊
- BLOB/シーケンス番号/パーティションキーで構成される
- BLOB
- ストリーミングデータそのもの
- BLOBは一般的に「通常のデータ型のフィールドには格納することができないバイナリ」を表す
- シーケンス番号
- データレコードの識別子
- パーティションキー
- ハッシュ値がシャードへの割り当てに利用される
- シーケンス番号が適切に振り分けられないとホットシャードの問題が生じる
Kinesis Data Streamsのデータ保持期間のデフォルト値を述べよ。
24時間
Kinesis Data Firehoseにてデータの絞り込みを行う方法を説明せよ。
lambdaと連携する。Kinesis Data Firehose自体に高度なフィルタリング機能は存在しないため注意。
Kinesis Data Firehoseと連携できるサービスを列挙せよ。
- lambda
- S3
- Redshift
- OpenSearch Service
- Splunk
なお,DynamoDBを連携することはできないため注意する。
Kinesis Data StreamsをFirehoseの配信ストリームのソースとして設定する際の注意点を述べよ。
FirehoseのPutRecordおよびPutRecordBatch操作が無効となるため,Kinesis AgentによるFirehose配信ストリームへの書き込みができなくなること。Kinesis Data StreamsをFirehoseの配信ストリームのソースとして設定する場合は,Kinesis Agentを利用しないようにする。
Kinesis Data StreamsのAuto scalingの注意点を述べよ。
Amazon Kinesis Data Streams自体にAuto scaling機能がある訳ではないため,AWS Application Auto Scalingを利用する。
Kinesisのホットシャードとコールドシャードを説明せよ。
- ホットシャード:想定以上のデータを受信するシャード
- コールドシャード:想定以下のデータを受信するシャード
Kinesisのパフォーマンス・コスト戦略をホット・コールドシャードに着目して説明せよ。
ホットシャードを分割して,コールドシャードをマージする。分割は容量を半分にするのではなく,同じ容量のシャードを生成するイメージで,この操作はリシャーディングと呼ばれている。分割するとコストは増えるため注意。
Kinesis Data AnalyticsでSQL処理を行いS3に配信する場合,Firehoseを経由する必要はあるか。
ない。Kinesis Data Analyticsから直接S3に配信できる。
Kinesis Data FirehoseとStreamsはどちらの方がリアルタイム処理に向いているか。
Streams。Streamsと比べてFirehoseは実行レイテンシーが高い。
Kinesis Data Firehoseでデータの形式を変換することはできるか。
できない。lambdaと連携する。
Kinesisはデフォルトで順序を守るか
守る。
サービス比較
処理負荷が一定でないSQLデータベースとして適切なサービスは何か。
Aurora Serverless
RedisとMemcachedの違いとして最も狙われやすいポイントは何か。
Redisは,スナップショットの取得やレプリケーションに対応している。Memcachedは,マルチスレッドに対応していてシンプルな設計が可能。
Database Migration ServiceとApplication Migration Serviceの違いを説明せよ
DMSはデータベースの移行,MGNはアプリケーションの移行。MGNの方がスコープが大きいイメージ。
Redshift SpectrumとAthenaのごく簡単な比較を行え。
Redshift Spectrumはクラスター構成の手間とコストがかかり,Athenaは簡易的にS3バケット内のデータをクエリ解析できる。Redshift Spectrumのキーワードはクラスターとビックデータ解析。
メッセージング
S3イベントと連携できるSQSの種類を述べよ。
標準キュー。FIFOキューはS3イベントと連携不可。
SQSをAutoscalingする場合に公式が推奨しているスケーリングポリシーを簡単に説明せよ。
EC2フリートを用いてAutoScalingさせる方式を説明している。具体的には,各インスタンス上で構成されたSQSにおいてインスタンスあたりのバックログ
と呼ばれる基準を採用する。これはキューの長さをフリートの実行キャパシティで割った値で,これを基準にしたターゲット追跡ポリシーの利用が推奨されている。
可視性タイムアウト・遅延キュー・メッセージタイマーを簡単に説明せよ。
- 可視性タイムアウト
- キューの重複処理を防ぐことが目的
- 最初にポーリングされたインスタンス以外から一定時間キューを隠蔽する
- 遅延キュー
- すべてのメッセージに対してキューへの追加を遅らせる
- メッセージタイマー
- 特定のメッセージに対してキューへの追加を遅らせる
FIFOキューは1秒あたり最大でいくつのメッセージを処理可能か。
300メッセージ/秒
FIFOキューはバッチアクションで最大何個のメッセージを同時処理可能か。
10個
IAMポリシーとSNSポリシーでできることの違いを簡単に説明せよ。
- IAMポリシー:自アカウント内の権限制御
- SNSポリシー:自アカウントおよび他アカウントの権限制御
前者はアイデンティティベースのIAMポリシー,後者はリソースベースのIAMポリシーとよばれている。詳しくは下記を参照されたい。
SESでアラームのメール通知は実現できるか。
できない。SNSを利用する。SESはあくまでもアプリケーション側でメールの一斉送信などを扱いたい場合に利用する。
SQSでデフォルトのメッセージ保持期間を述べよ
4日間
SQSのキューサイズとは何か。
SQSに格納されているメッセージの総容量。SQS自体の容量ではないため注意する。
SQSのスループットについて説明せよ
- 標準キュー:無制限
- FIFOキュー:300件/秒
セキュリティ
代表的な暗号化方式を4つ述べよ。
暗号化方式 | 暗号化される場所 | 鍵の管理場所 |
---|---|---|
CSE | クライアント | クライアント |
SSE-C | サーバ | クライアント |
SSE-KMS | サーバ | KMS |
SSE-S3 | サーバ | S3 |
エンベロープ暗号化を説明せよ。
データを暗号化する鍵とは別の鍵を用意し,データを暗号化する鍵自体を暗号化する技術。
エンベロープ暗号化にCloudHSMは利用されるか。
されない。KMS APIが利用される。
ベストプラクティスによる暗号化の仕組みを実装するためのサービスを述べよ。
AWS暗号化SDK。AWS KMS SDKという名前ではないため注意する。
「ルートユーザーのアクセスキーをローテーションする」は正しい方針か。
正しくない。ローテーションではなく削除が推奨されている。
その他
HTTP API GatewayとREST API Gatewayの違いを説明せよ。
HTTP API GatewayはREST API Gatewayの主要機能に特化することで,低コストかつ特定のユースケースにおいて高性能なAPIを構築することができるサービス。
API Gateway + lambdaが置換するべき代表的な構成を説明せよ。
public subnetに配置したEC2とprivate subnetに配置したRDSでシンプルなリクエスト・レスポンスを実現するアプリケーション。public subnetに配置したEC2の代わりに,API Gateway + lambdaを利用すると,サーバレスなアプリケーションを構築可能。
API Gatewayのスロットリングを説明せよ。
過剰なリクエストを制限することで,サーバの負荷軽減を行うこと。具体的には,バックエンドまたは特定のクライアントを基準として,あるリクエスト数の上限を超えた場合に,HTTPステータスコードの 429 Too Many Requests
を返すなどといった実装例が挙げられる。
CloudFormationテンプレートとそれによって展開したリソースとの間の差分を何と呼ぶか。
ドリフト
事業継続性計画における災害復旧(DR)の方式に関してまとめよ。
- マルチサイト(アクティブ/アクティブ)
- セカンダリではプライマリと同程度のスペックのDBとアプリケーションを起動させて同期しておき,プライマリからの切り替えを可能にする。
- ウォームスタンバイ(アクティブ/パッシブ)
- セカンダリではスペックの低いDBとアプリケーションを起動させて同期しておき,復旧時はスケールアップすることによりプライマリからの切り替えを可能にする。
- パイロットライト(アクティブ/パッシブ)
- セカンダリではスペックの低いDBを起動させて同期しておき,復旧時はスケールアップすることによりプライマリからの切り替えを可能にする。
- バックアップ&リストア
- 定期的なバックアップを取得して,災害発生時には特定ポイントに復旧する。
RTOを復旧時間目標(Recovery Time Objective),RPOを目標復旧時点(Recovery Point Objective)とすると,これらの方式は下表のようにまとめられる。
マルチサイト | ウォームスタンバイ | パイロットライト | バックアップ&リストア | |
---|---|---|---|---|
RTO | 短い | 比較的短い | 比較的長い | 長い |
RPO | 最終同期時点 | 最終同期時点 | 最終同期時点 | 最終バックアップ時点 |
AWS Shield Advancedの利点をコスト観点でAWS Shield Standardと比較せよ。
長時間のDDoS攻撃を受けてコストが急増した場合に,保護を受けられること。
「DR環境をAWSに移行してなるべく自動化したい」場合に有効なサービスは何か
Route53。マスターアカウントやルートアカウントが介在するとマニュアルの準備が必須になり,自動化という要件と合致しなくなる。
AWS Organizationsでは,アカウントごとに請求の比重を設定できるか。
できない。
リザーブド購入オプションに対応しているサービスを列挙せよ。
- EC2リザーブドインスタンス
- RDSリザーブドインスタンス
- ElastiCacheリザーブドキャッシュノード
- DynamoDBリザーブドキャパシティ
- Redshiftリザーブドノード
EMRのユースケースとして,リアルタイムストリーミング処理とデータ結合はどちらが適しているか。
リアルタイムストリーミング処理
オンプレミスのワークロードをAWSに移行するサービスは何か。
AWS Application Migration Service(MGN)。以前はAWS Server Migration Service(SMS)が利用されていた。
「タグを多く利用するのは避けた方がよく,変更は避けるべきである」は適切な方針か。
適切な方針ではない。ベストプラクティスとしては,タグは少なすぎるよりも多く利用した方がよく,必要に応じてタグの変更を行うべきであるとされている。ただし,将来的な変更の影響を見越してタグの設計を行う必要がある点に注意する。
オンデマンドバックアップとは何か
任意のタイミングで取得するバックアップのこと。AWS Backupで設定できる。
コメント