Closed38

AWS認定 SAA試験対策勉強メモ

Dev-kentaDev-kenta

模擬試験高難度1回目での気づき

問題傾向

  • プロビジョニングってキーワード出てきたらElastic Beanstalk率高い?Dockerとかキーワードが合わせて問題文に入っているとECS、EKSと間違え易いが両方ともオーケストレーションサービスっていうのを忘れずに。
  • S3のストレージクラスをどれを選択するかは間違え易い。しっかり用途に合わせて選択できるように復習する(ログなどの非マスターデータはOneZoon使うなど)
  • Route53の位置情報と地理的近接性ルーティングは名前からして似ていてわかりにくい。国を指定するなどの要件なら位置情報ルーティングで、AWSリソース位置とユーザーの距離の2点のみで判定するなら地理的近接性。

今回の模擬試験で初見だった機能・サービス

CloudHSM

専用のハードウェアでキーを管理する分、KMSよりセキュリティが厳重。
今回の問題では「EUのセキュリティ基準( FIPS 140-2 レベル 3 標準)に合致させる必要があります。」だった。よりセキュアな管理が求められる場合はCloudHSMが正解になるか。
https://qiita.com/ayumi_imai/items/6a74c6327e0f6a1ac7db
https://aws.amazon.com/jp/cloudhsm/

EBS DLM(Data Lifecycle Manager)

ライフサイクルポリシーを管理
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/snapshot-lifecycle.html

S3 Glacier ボールトロック

名前の通りボールトをロックして書き込み・更新できなくするもの。

ボールトロックポリシーは、ボールトアクセスポリシーとは異なります。どちらのポリシーも、ボールトへのアクセスを制御します。ただし、ボールトロックポリシーでは、ロックによって変更を禁止することにより、コンプライアンス管理を強力に実施することができます。ボールトロックポリシーは、データへの詳細なアクセス制御が求められることの多い、規制やコンプライアンス管理のデプロイに使用できます。

ボールトアクセスポリシーはアクセスを制御するもの。
ボールトロックポリシーはさらに強力に変更自体をを禁止する。
試験ではリードオンリーみたいな存在しない機能を選択肢として出してくるかもなので注意。
https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/vault-lock.html

IAM データベース認証

RDSやAuroraなどデータベースにパスワードではなくトークンで認証する仕組み。
固有のプロファイル認証情報を使うというのが肝?
https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/vault-lock.html

Route Origin Authorization

これ解説読んだが理解が6割程度。。
オンプレで使ってるIPアドレスのここからここまでの範囲をAWSでも使いたいから、Amazonに承認してもらうみたいな?
誰か詳しい人いたら教えて欲しい。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-byoip.html

RAID0とRAID1

RAID0

複数のストレージをまとめて一つのストレージ的に扱い、読み書きを高速化する。ただし一台でも故障すると停止するので信頼性が下がる。

RAID1

複数のストレージにミラーリングする。冗長性や可用性は高まるがパフォーマンスは上がらない。
https://qiita.com/tomiyama0119/items/d70861b4634378d763fb

SAML フェデレーション

SAML(Security Assertion Markup Language)はインターネット上で、IDやパスワードなどの認証情報を連携するためのXMLベースの仕様

AWS SSO( Single Sign-On)を使うことで他のオンプレ環境など、SAMLをサポートしているサービスへのSSOが可能になる。
https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/samlfederationconcept.html

振り返り

高難度模試だと53%しか取れなかったので、もう少し復習が必要。
やっぱS3やEBSなどのストレージ系とデータベースのサービスはよく出るし細かいところまで勉強しとかないと厳しそう。
セキュリティも点数悪かった。

Dev-kentaDev-kenta

RDSのプロビジョンド IOPS (SSD) ストレージ使うユースケース

このストレージタイプは I/O 負荷の高いトランザクション (OLTP) データベースのワークロード向けに最適化されています

OLTP(オンライントランザクション処理)

一般的には業務システムなど多数のユーザーからランダムにトランザクションが発生するもの。I/O負荷が高い。

OLAP(オンライン分析処理)

大量データの分析などのユースケースが想定される。

https://www.gixo.jp/blog/2934/

インスタンス終了時にEBSボリュームを保持する設定

DeleteOnTerminationで設定する
trueの場合にボリュームを削除
falseの場合にボリュームを維持

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination

EBSではRAID5とRAID6は推奨されていない

信頼性が上がるが余計な書き込みが増える分パフォーマンスが下がるため。

https://awsjp.com/AWS/Faq/c/RAID5-RAID6-not-recommended-AC10.html

Dev-kentaDev-kenta

EC2プレイスメイトグループの削除

紐づいているインスタンスの削除または、別のプレイスメントグループへの変更が必要
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html#delete-placement-group

S3のイレブンナイン

99.999999999% の堅牢性
99.99% の可用性
試験では可用性が99.999999999% などと引っ掛けてくるので注意。

RDSのパラメータグループ

静的パラメータ

変更の適応には再起動が必要

動的パラメータ

[すぐに適用] の設定にかかわらず、すぐに変更が反映される
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html

Dev-kentaDev-kenta

RDSのリードレプリカからの昇格

同じ AWS リージョンのリードレプリカを削除せずにソース DB インスタンスを削除すると、各リードレプリカはスタンドアロン DB インスタンスに昇格されます。

スタンドアロンDBインスタンスを削除するとリードレプリカが昇格する?
複数リードレプリカがあった場合はその全てが昇格するの?
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ReadRepl.html

Auroraのレプリカラグ

Auroraのレプリカラグは100ミリ秒未満。
問題で100ミリ秒未満を要件として求めている場合はAuroraが正解。他にもRDSはストレージサイズが16TB
なのでそれ以上を求める場合は、Auroraが正解。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Replication.html#Aurora.Replication.Replicas

S3のマルチパートアップロード

部分的に送るので途中で失敗しても、送れなかった部分を後で再送が可能。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/mpuoverview.html

EC2のメタデータとユーザーデータの暗号化

インスタンスメタデータおよびユーザーデータにはそのインスタンス自体内からのみアクセスできるものの、データは認証または暗号化手法によって保護されていません。

暗号化はされていないので機密データはここでは渡さない。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html

CloudWatchアラームで実行できるリソースの操作

アラームを作成するときに、自動アクションを設定できます。このアクションは、モニタリングするメトリクスがユーザー定義のしきい値を超えたときに実行されます。アラームから実行できることの例としては、メールを送信する、SQS キューに発行する、Amazon EC2 インスタンスを停止または終了させる、Auto Scaling ポリシーを実行する、など

EC2インスタンスの操作などをCloudWatchだけで設定しておける
https://aws.amazon.com/jp/cloudwatch/faqs/#Alarms

Dev-kentaDev-kenta

SWF

完全マネージドなワークフローサービス。
アプリケーションを疎結合にするという点ではSQSと近いサービス?
ワークフローの途中でユーザーに承認を求めるアクションを挟ませることも可能らしい。ビジネス上ダブルチェックが必要な要件に最適か。
https://aws.amazon.com/jp/swf/

NATインスタンスの設定

NATインスタンスは送信元と送信先がそのインスタンスでない時もトラフィックを送受信しないといけない。
SrcDestCheck 属性を無効にする。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_NAT_Instance.html

Dev-kentaDev-kenta

RDSでインスタンスの空き容量を監視するときのCloudwatchメトリクス

FreeStorageSpaceを閾値に設定することによってインスタンスの空き容量が残りどの程度か監視できる
https://aws.amazon.com/jp/premiumsupport/knowledge-center/storage-full-rds-cloudwatch-alarm/

RDSのソースDBを削除したときのリードレプリカの挙動

Amazon RDS for MySQL または Amazon RDS for MariaDB

リードレプリカはトラフィックを受け続ける。自動的に削除はされない

Amazon RDS for PostgreSQL

全てのリードレプリカがスタンドアロンDBインスタンスに昇格される

RDSのCloudwatchで取得できる主な各メトリクス

メトリクス 説明
CPUUtilization CPU使用率
ReadIOPS 1 秒あたりのディスク読み取り I/O 操作の平均回数。
ReadLatency 1 回のディスク I/O 操作にかかる平均時間。(読み込み)
ReadThroughput 1 秒あたりのディスクからの平均読み取りバイト数。
WriteIOPS 1 秒あたりのディスク書き込み I/O 操作の平均回数。
WriteLatency 1 回のディスク I/O 操作にかかる平均時間。(書き込み)
SwapUsage DB インスタンスで使用するスワップ領域の量。このメトリクスは SQL Server では利用できません。
DatabaseConnections 使用中のデータベース接続の数。
FreeableMemory 使用可能な RAM の容量。
Dev-kentaDev-kenta

Blue/Greenデプロイメント

現在稼働中のアプリ→新環境のアプリへダウンタイム無しで切り替える方法。
Route53の加重ルーティングを使う。
https://qiita.com/Terry3/items/f49041a86fce16776af6

CloudformationでネットワークACLでインバウンド/アウトバウンドのトラフィックを設定するとき

Egress:true アウトバウンドの場合
Egress:false インバウンドの場合
https://dev.classmethod.jp/articles/aws-cloudformation-nacl/

DynamoDBを使うユースケース

Dev-kentaDev-kenta

EC2のインスタンスタイプまとめ

ストレージ最適化インスタンスはI(I/O性能高い)、D(最大 48 TB の HDD 搭載)、H(高ディスクスループット)
メモリ最適化インスタンスはR(メモリ最適化)、X(最大メモリ量が大きい)、z(高周波なコア搭載)
https://zenn.dev/matsu7089/articles/meaning-of-ec2-instance-types

Aurora サーバレスのユースケース

可変ワークロードや予測不可能なワークロードなどに向いている。
問題にOLTPというキーワードが入っていたら、Auroraサーバレスを使うべきケースかも。
https://aws.amazon.com/jp/rds/aurora/serverless/

AWSManaged Microsoft AD

Microsoft Active Directory(AD)を管理できる。

AWS と既存のオンプレミス Microsoft Active Directory の間で信頼関係を設定し、シングルサインオン (SSO) を使っていずれかのドメインのリソースへのアクセス権を、ユーザーとグループに提供することができます。

https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/directory_microsoft_ad.html

2つのVPCエンドポイント

ゲートウェイ

S3とDynamoDBが使えるサービス
無料で使える

インターフェース(プライベートリンク)

ゲートウェイの後に出てきた。50種類のサービスで使える。
S3も最近対応になった。有料。

https://dev.classmethod.jp/articles/vpc-endpoint-gateway-type/#toc-1
https://qiita.com/leomaro7/items/cbe8f6e3ff41805c1b49

Dev-kentaDev-kenta

Amazon Kinesis Data Firehose

DynamoDBには直接転送できない。S3などを挟む必要がある。

AWS Data Pipeline

定期的なデータ取得処理を組むことができる。
AWSのサービスやオンプレ間で、信頼性の高いデータ処理やデータ移動のためのサービス。
https://aws.amazon.com/jp/datapipeline/

Cloudfrontのmax-ageディレクティブ

キャッシュの保持期間のこと。
この値が極端に短いと頻繁にオリジンにアクセスすることになるので、Cloudfrontのメリットであるリクエストの高速化を生かせない。
https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Expiration.html

仮想オーバーレイネットワーク

マルチキャストネットワーキングに依存しており、AWSで確実に起動させるためには、仮想オーバレイネットワークをインスタンスのOSレベルで起動させることが求められます。したがって、レガシーアプリケーションを移行するためにオーバーレイマルチキャストを使用することが必要となります。 オーバーレイ・マルチキャストとは,クライアント・パソコンにインストールしたアプリケーション・ソフトでマルチキャスト(1対多通信)を実現する技術です。

マルチキャストネットワーキング依存しているオンプレ環境を移行するには、仮想オーバーレイネットワークという仕組みを使うらしい(難しい)。

Dev-kentaDev-kenta

IAMユーザーを削除した時に合わせて消えるもの

  • ユーザー
  • すべてのユーザーのグループメンバーシップ — つまりユーザーは、所属していたすべての IAM ユーザーグループから削除されます
  • ユーザーのパスワード
  • ユーザーのアクセスキー
  • ユーザーに組み込まれていたすべてのインラインポリシー (グループのアクセス許可を通じてユーザーに適用されているポリシーは影響を受けません)

ユーザーのアクセスキーはユーザー削除に一緒に消える。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_console

EC2 再起動、停止時にどうなるか

特徴 再起動 停止 休止 終了
インスタンスストア 保持 消える 消える 消える
ルートデバイス 保持 保持 保持 デフォルトで削除
Elastic IP アドレス 関連付け維持 関連付け維持 関連付け維持 関連付け解除
ホストOS 同じ 新しいOSで起動 新しいOSで起動 なし

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2-instance-lifecycle.html#lifecycle-differences

Route53のDNSヘルスチェックの間隔初期値

デフォルトでは30秒間隔で設定されている。

https://aws.amazon.com/jp/route53/faqs/#Health_Checks_.26_DNS_Failover

IAM アイデンティティベースとリソースベース

IAMにはアイデンティティベースのポリシーとリソースベースのポリシーがある。

アイデンティティベース

IAM ユーザー、グループ、ロールにアタッチされる。どのIAMユーザーが操作できるかの権限管理。

リソースベース

どのAWSサービスが使用できるかの権限管理。S3やEC2などのリソース単位。管理ベースは無い。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_identity-vs-resource.html

EC2インスタンスのグローバルIPを調べるコマンド

ifconfigやipconfigではプライベートIPしかわからない。
各インスタンスのメタ情報にアクセスすればわかる。

https://awsjp.com/AWS/Faq/c/How-to-check-global-IP-address-from-EC2-instance-54DE.html

Auto Scalingのインスタンス保護

この機能を有効にすることで特定のインスタンスの終了を制限することができる。(デフォルトではこの機能は無効になっている)

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
https://dev.classmethod.jp/articles/auto-scale-protect-from-scale-in/

S3 Glacierの容量

保管できるデータ総量に制限は無し
個々のアーカイブは40TBまで

https://aws.amazon.com/jp/glacier/faqs/#Getting_started

Dev-kentaDev-kenta

TCPポートの割り当て(主なもの)

ポート番号 説明
20 FTP
22 SSH
25 SMTP
23 Telnet
80 HTTP
109 POP2
110 POP3
443 HTTPS

https://ja.wikipedia.org/wiki/TCPやUDPにおけるポート番号の一覧#.E3.82.A6.E3.82.A7.E3.83.AB.E3.83.8E.E3.82.A6.E3.83.B3.E3.83.9D.E3.83.BC.E3.83.88.E7.95.AA.E5.8F.B7_.280.E2.80.931023.29

Auto Scalingのクールダウン

クールダウン期間を設定することでスケールアウトの重複実行を抑止できる。
スポットインスタンスの場合は入札成功後にスケールダウンが有効になる。

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/Cooldown.html

プライマリネットワークインターフェース(eth0)

VPCの各インスタンスにはプライマリネットワークインスタンスというものがデフォルトである。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html#eni-basics

CloudFrontの料金形態

12 か月間以上、1 か月あたり最小 10 TB のデータ転送量をお約束いただけるお客様は、カスタム割引料金でご利用いただけます。割引は契約の金額によって異なります。

EC2インスタンスのリザーブドと同じように1年の継続利用をするなら割引される料金形態がある。

https://aws.amazon.com/jp/cloudfront/pricing/

Dev-kentaDev-kenta

模擬試験高難度3回目での気づき

問題傾向

  • 複数のサービスを使って要件を達成できるアーキテクチャを構築する問題は経験が少ないと難しい印象。

今回初見だったサービス・機能

ELB Connection Draining

既存の接続を維持したままLBから切り離せる機能
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/config-conn-drain.html

Route53 フェイルオーバーのアクティブ/アクティブとアクティブ/パッシブの違い

アクティブ/アクティブ

全てのリソースをほとんどの時間で利用可能にする。利用不可能となったリソースに関してはRoute53は異常として検知する。

アクティブ/パッシブ

プライマリリソースをほとんどの時間で利用可能にして、セカンダリリソースをスタンバイの状態にしておく設定。

EC2 DeleteOnTermination属性

これを非有効化することでインスタンスを削除した時にルートボリュームを保持させることが可能

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/dns-failover-types.html

EC2 Dedicated Hostとハードウェア専有インスタンスの違い

Dedicated Host ハードウェア専有インスタンス
占有度 物理サーバーを占有 ホストハードウェアレベルで他のAWSアカウントと分離
課金 ホストごと インスタンスごと

https://aws.amazon.com/jp/ec2/pricing/dedicated-instances/#:~:text=ハードウェア専有インスタンスは、ホストハードウェアのレベル,に分離されています。&text=Dedicated Hosts では、物理サーバー,長期間使用できます。

AppSync

AWS AppSync は、GraphQL API の開発を容易にする、完全マネージド型サービスです。このサービスは、AWS DynamoDB や Lambda、その他のデータソースとの安全な接続に必要な、面倒な作業を自動的に処理します。

GraphQL APIの開発用のマネージドサービス。API Gatewayとの使い分けか。

https://aws.amazon.com/jp/appsync/

IPフローティング

EIPの付け替えのことらしい。

https://zenn.dev/mn87/articles/112b07f8f269ed

Route53 AAAAレコードタイプ

ipv6用のエイリアスレコード

https://help.onamae.com/answer/7883

ウェブ ID フェデレーションとSAML フェデレーション

AWSのIAMはこの2つのパターンをサポートしている。

ウェブ ID フェデレーション

OpenID Connect を使う場合にこちらを使う。
ウェブ IdP(FacebookやGoogleなど)のモバイルデバイスでのサインオンが可能。

SAML フェデレーション

SAML 2.0 (Security Assertion Markup Language 2.0) と互換性のある IdP をサポートします。
SAML 2.0の場合はこっちを使う。

https://qiita.com/fkooo/items/a6d71407b2bed42332cc

VPCのCIDRブロックのサポート範囲

/28から/ 16まで。

https://dev.classmethod.jp/articles/vpc-cidr/

Amazon MQ

オープンソースのメッセージブローカー向けマネージドサービス。
AWSでのメッセージ処理をするサービスはSQSとSNSが一般的だか、業界標準のメッセージングAPIを使うという要件がある場合はこちらのサービスが正解になる。

https://aws.amazon.com/jp/amazon-mq/?amazon-mq.sort-by=item.additionalFields.postDateTime&amazon-mq.sort-order=desc

AutoScalingのDesired capacity

AutoScalingのタイプによって働きが変わる。

固定(Fixed)

Desired Capacityで動作するべきインスタンス数を指定し、自動では台数が変化しない。

時間(Scheduled)

時間や周期によって動作するべきインスタンス数をDesired Capacityで指定、自動で変化させる設定。

動的(On Demand)

ヘルスチェック等の内容によってインスタンス数を増減させる。
Adjustment Typeの値によってDesired Capacityの働きが変化する。

https://dev.classmethod.jp/articles/comprehend-auto-scaling-desired-capacity/

デフォルトで保存データを暗号化しているサービス

  • AWS Storage Gateway
  • Amazon Gracier
    他には何があるだろう?
    RDSも暗号化してると思っていたが、デフォルトではされていないみたい。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Overview.Encryption.html

AWSアカウントエイリアスを作った場合のサインインページのURL

https://Your_Alias.signin.aws.amazon.com/console/

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/console_account-alias.html

Snowball Edge Compute Optimized とSnowball Edge Storage Optimized

Compute Optimized Storage Optimized
HDD容量 39.5 TB 80TB
用途 大規模なデータ移行と定期的な転送ワークフロー、およびさらに高容量を必要とするローカルコンピューティング 機械学習、フルモーション動画分析、分析、ローカルコンピューティングスタックなどのユースケースに強力なコンピューティングリソース

https://docs.aws.amazon.com/ja_jp/snowball/latest/developer-guide/device-differences.html

AWSのAD用サービス

Simple AD

Active Directory用のマネージドサービス。ADを新規構築する時に使う。

AD Connector

既存のAWS環境とオンプレのADを連携するサービス。

https://dev.classmethod.jp/articles/cm-advent-calendar-2015-aws-re-entering-directoryservice/

S3の静的ホスティングで読み込めない時のチェックポイント

バケットポリシーが適切かどうかチェックする

https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/

Dev-kentaDev-kenta

AWS取得している認証プログラム

主なもの

  • ISO27001
  • PCI DSS Level1
  • SOC1
  • SOC2

https://aws.amazon.com/jp/compliance/programs/

EC2インスタンスのネットワークインターフェース辺りのセキュリティグループのデフォルト数

デフォルトでは5つまで。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups

EC2 リザーブドインスタンス

1年か3年で選べる

https://aws.amazon.com/jp/ec2/pricing/reserved-instances/pricing/

S3スナップショットへのAPIでのアクセス

S3 API経由ではアクセスできない
EC2 API経由ではアクセスできる

https://aws.amazon.com/jp/ebs/faqs/#Snapshots

AWS CloudTrailについて

AWSアカウントに対してデフォルトで有効になっている。

https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-getting-started.html

Dev-kentaDev-kenta

EC2 オンデマンドキャパシティー予約

任意の所要時間だけキャパシティの予約が可能。
特定の曜日に定期的に実行される処理などで使うとコスト効率が良い。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html

DynamoDBで履歴を保持する場合

DynamoDBストリームを使う。

DynamoDBストリームはDynamoDB テーブルに保存された項目の変更をキャプチャすることができます。例えば、ユーザーがデータを DynamoDB テーブルに追加した際に、このイベントを起点にして、データ管理者にメールを送信してDynamoDBの変更を通知するといった機能を作ることができます。

https://qiita.com/uenohara/items/a8262b948dbff58b346f

ELBとRoute53のヘルスチェック

ELB Rote53
HTTP応答コード 200 200番台または300番台
インターバル 5秒〜300秒で設定可(デフォルト30秒) 30秒(デフォルト)または10秒(追加料金あり)

https://dev.classmethod.jp/articles/health-check-spec-elb-route53/

CloudFormationのスタック作成失敗時の挙動

デフォルトではエラー時は全てのスタックがロールバックする。

https://aws.amazon.com/jp/cloudformation/faqs/#General

Dev-kentaDev-kenta

VPC デフォルトサブネット

  • ネットマスクは/20
  • デフォルトサブネットはAZごとに作られる

https://aws.amazon.com/jp/vpc/faqs/#Default_VPCs

IAM グループ数の制限

作成できるグループ数には制限がある

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_iam-quotas.html

EC2 CPU使用率のモニタリングができるサービス

  • CloudWatch
  • CloudTrail

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/usage-reports.html

Auto Scalingのライフサイクル

Pending→InService→Terminating→Terminatedの順番に遷移していく。

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html

Dev-kentaDev-kenta

EBS 暗号化

EBSの暗号化を有効にすると以下のタイプのデータが暗号化される。

  • ボリューム内の保存データ
  • ボリュームとインスタンス間で移動される全てのデータ
  • ボリュームから作成されたスナップショット
  • それらのスナップショットから作成されたボリューム

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSEncryption.html

EC2インスタンスストアの使い所

頻繁に更新されるデータ。かつ揮発性なのでインスタンス終了時に消えてもいいもの。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/InstanceStorage.html

EC2 Instance Store-Backed

停止できない。インスタンスの実行が停止するため。
EBS-Backendインスタンスは停止できる。

https://dev.classmethod.jp/articles/ami-from-ephemeral-backed/

DynamoDBのテーブルサイズの制限

格納できるテーブルのサイズに制限はなし。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Limits.html#limits-tables

Dev-kentaDev-kenta

NATインスタンスSrcDestCheck属性

EC2ではデフォルトでSrcDestCheck属性が有効になっている。これが有効だと送信元/送信先をチェックする設定になる。
NATインスタンスをセットアップする際はこの属性を無効にする必要がある。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck

CloudFormationのスタック置き換え

置き換えを要求する変更を行った場合は、新しいプライベートIPを割り当てる必要がある。
スタックが正常に更新されるまで古いリソースは残り続けるため。

https://qiita.com/ot-nemoto/items/dc5b2409eca2994f10e5#インスタンスの更新が発生した場合

VPCピアリングの制限事項

主なもの

  • 同じ 2 つの VPC 間で同時に複数の VPC ピアリング接続を持つことはできません。
  • IPv4 または IPv6 CIDR ブロックが一致または重複する VPC 間で VPC ピアリング接続を作成することはできません。
  • VPC ピアリング接続の最大転送単位 (MTU) は 1500 バイトです (ジャンボフレームはサポートされていません)。
  • VPC ごとに保持できる実行中および保留中の VPC ピア接続の数にはクォータがあります。
  • 中国でのリージョン間ピアリングは、SINNET が運営する中国 (北京) リージョンと NWCD が運営する中国 (寧夏) リージョンとの間でのみ許可されています。

https://docs.aws.amazon.com/ja_jp/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations

Dev-kentaDev-kenta

AWSの転送中の暗号化

IPSecとSSL/TLSをサポートしている。

スナップショットのリージョン制限

作成したスナップショットは作成したリージョンに制限される。
異なるリージョンへのコピーは可能。

instance store-backed AMI を Amazon EBS-Backed AMI への変換

Instance Store-Backed AMI をバンドルするのに使用した X.509 プライベートキーを使う。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Using_ConvertingS3toEBS.html

Dev-kentaDev-kenta

SQS キューのメッセージ数の上限

保存できるキューは無制限

https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html

S3の暗号化(一部のリクエストが失敗するケース)

バケットポリシーに問題がある可能性が高い。
デフォルト暗号化やSSE-KMSの設定に問題がある場合は、すべての暗号化が失敗する。

VPCエンドポイント

ゲートウェイ型

  • S3
  • DynamoDB

プライベートリンク型

  • Amazon API Gateway
  • Amazon CloudWatch
  • Amazon CloudWatch Events
  • Amazon CloudWatch Logs
  • AWS CodeBuild
  • Amazon EC2 API
  • Elastic Load Balancing API
  • AWS Key Management Service
  • Amazon Kinesis Data Streams
  • Amazon SageMaker ランタイム
  • AWS Secrets Manager
  • AWS Service Catalog
  • Amazon SNS
  • AWS Systems Manager
  • 他の AWS アカウントによってホストされるエンドポイントサービス
  • サポートされる AWS Marketplace パートナーサービス
  • S3(追加された)

https://blog.serverworks.co.jp/privatelink-for-amazon-s3_

Kinesis Data Streamsを使用するのユースケース

  • データが欠落しないこと
  • 耐久性があること
  • データを到着順にストリーミングすること(順次実行)
  • リアルタイムで処理する必要があるか
    これらの要件が含まれる場合はKinesis Data Streamsを使用するのに適しているといえる。
    SQSやSNSも選択肢として問題で出される場合があるが、メッセージを到着順に処理するという点で要件と合致しない。ただしSQSに関してはFIFOキューであれば要件を満たせる。

https://aws.amazon.com/jp/kinesis/data-streams/

Route53のマルチバリュー(複数値回答)ルーティング

複数のEC2のIPアドレス単位でルーティングする場合に使う。
フェイルオーバールーティングと間違えやすいが、フェイルオーバールーティングの場合アクティブ/パッシブの構成を取る場合に使うものと覚えておくとわかりやすい、
個々のEC2単位で正常・非正常でルーティングすることも可能だが、プライマリとセカンダリに設定した場合のみに限られる。つまりIPアドレスベースではできない。

https://dev.classmethod.jp/articles/route53-multivalue-response/

S3で直接オブジェクトを参照させてくない場合

CloudFrontのOAI(オリジンアクセスアイデンティティ)というCloudFrontユーザーを作成して、S3バケットへの直接のアクセスを禁止する。

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

EBSの特徴

  • ボリュームサイズやボリュームタイプを変更可能
  • EC2インスタンスから物理的に隔離されたストレージボリューム
  • 同じAZ内のEC2インスタンスにアタッチ可能
  • EBSボリュームはAZ内に自動的に複製されるが、異なるリージョンにレプリケートはされない
  • 99.999% の可用性
  • DLM(データライフサイクルマネージャー)というバックアップする仕組みがある
  • プロビジョンドIOPS(io1)はマルチアタッチという機能を使い、同じAZ内の複数のEC2にアタッチできる

https://aws.amazon.com/jp/ebs/features/

Dev-kentaDev-kenta

S3バケットで利用できるイベント通知先

  • SQSキュー
  • SNSトピック
  • Lambda

EC2 ベアメタルの特徴

ホストコンピュータのOSにアクセス可能

https://aws.amazon.com/jp/ec2/features/

AWS サーバレスワークフローを実現する時に使用するサービス

AWS Step Functions

ワークフローは一連のステップで構成され、あるステップの出力が次のステップへの入力になります。Step Functions は各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが意図したとおりの順序で実行されます。

順序実行する要件のサーバレスワークフローではこちらを使う。

https://aws.amazon.com/jp/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/

Amazon SWF

SWFでもワークフローなどのプロセスを作成できる。

EC2インスタンスを利用したサーバーベースの機能であるためサーバーレスオーケストレーションを提供しません。

サーバーレスオーケストレーションを提供しない。

https://aws.amazon.com/jp/swf/

EC2へアタッチ後にEBSボリュームを使用するのに必要な手順

ボリュームにファイルシステムを作成する。
EFSの場合はマウントターゲットを設定する。ごっちゃにならないように注意。

DynamoDBやS3はファイルロックができない

ファイルシステムのアクセスセマンティクス (強い整合性やファイルのロックなど)が可能な...

問題文にファイルのロックが...などとあったらDynamoDBは要件に合致しない。
EFSはファイルロックが可能。

Lambda Layer

複数のLambda関数でライブラリを共有できる仕組み。
共通の処理を抜き出してLayerにアップロードしておくことで、個々の関数で共通のLayerを使うことができる。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html

CloudFormation スタックセット

一つのテンプレートにより、複数のAWSアカウントやリージョンにリソースを展開できる仕組み。

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html

SQSのデフォルトのキュー保持期間

4日間で設定されている。
SQSは最長保持期間を経過したキューは削除されるので、4日間経過したキューは自動的に削除される。

RedshiftのWLM

ワークロードを管理して順次実行を可能にする機能。

キューに対して割り当てるメモリの割合や並列度、タイムアウトの時間を指定することでクエリに対するリソース配分を決定したり、長時間実行されるクエリを止めてクラスタリソースを無駄遣いしないようにすることができます。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_workload_mngmt_classification.html

Amazon ElastiCacheのユースケース

インメモリデータストアやキャッシュのデプロイ、運用を容易にするサービス。
ランキングやレコメンデーションの実装に使うのに向いている。

https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/elasticache-use-cases.html

AWS Shield

DDos攻撃に対処するためのマネージドサービス。

https://aws.amazon.com/jp/shield/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc

ENIのアタッチの種類

ホットアタッチ ウォームアタッチ コールドアタッチ
実行中のアタッチ 停止中のアタッチ インスタンスが起動中のアタッチ

スタンバイのセカンダリインスタンスにアタッチするという要件の場合はウォームアタッチを使う。

フェイルオーバーを設定する方法

  • Route53のフェイルオーバールーティングを使う
  • CloudFrontディストリビューションのフェールオーバーオプションを使う

ALBにはフェールオーバーを実現する仕組みは提供されていないので注意する。

Dev-kentaDev-kenta

高可用なNATインスタンスを高可用なNATゲートウェイにするには

各AZでNATゲートウェイを起動する。
前段にALBを設置するのは負荷分散にはなるが、高可用にするという意図とはずれる

S3バケットへのアクセスを追跡する

S3バケットへのサーバーアクセスログを有効にする。
CloudTrailを有効にすることでS3へのAPI呼び出し情報は追跡できるが、個々のアクセス情報では無い点に注意。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/ServerLogs.html

SQSのスタンダードキュー

メッセージの順番は保障されない。

順次実行が必要な要件の場合はFIFOキューを使うか、自分でシーケンス情報を仕込む必要がある。

少なくとも一回配信される。

Amazon SQS では、冗長性と高可用性を確保するため、メッセージのコピーが複数のサーバーに保存されます。まれではありますが、メッセージを受信または削除するときに、メッセージのコピーが保存されているサーバーの 1 台が使用できない場合があります。
この場合、使用できないサーバーではメッセージのコピーが削除されず、メッセージの受信時に、そのメッセージコピーをもう一度受け取る場合があります。アプリケーションがべき等になるよう設計する必要があります (同じメッセージを繰り返し処理した場合にも悪影響が発生しないように設計する必要があります)。

https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html

DynamoDB Accelerator

フルマネージド型高可用性インメモリキャッシュでDynamoDBに特化している。
同じクエリが繰り返されることが予想されるサービスでは、パフォーマンスを上げるのに効果を発揮する。

https://aws.amazon.com/jp/dynamodb/dax/

Dev-kentaDev-kenta

ネットワークACLの特徴

ネットワークACLはサブネットとVPCのプトロコル通信設定を行うファイヤーウォール。
その設定でサブネットを指定してインスタンスへの通信許可を設定する必要は無い。
2つのサブネットに配置されたリソースに必要なプロトコル通信が許可されるように設定する。

Dev-kentaDev-kenta

RDSで自動フェイルオーバー発生時にどのレコードが使われるか?

CNAMEレコードが使われる。

RDSの自動フェイルオーバーをルーティングする際はCNAMEレコードが切り替わって、フェールオーバーを実行しています。

https://aws.amazon.com/jp/rds/faqs/

Cloud HSMで暗号化キーを紛失した場合復元できるか?

復元できない。
コピーを有していない場合、新しいキーの取得は不可能。
AWSサポートに連絡しても無理。

ELBのヘルスチェックはHTTPヘルスチェックを使う

HTTPヘルスチェック

アプリケーション層レベルで稼動状況を確認するヘルスチェックです。Web/APサーバ上で稼動するアプリケーションにHTTPリクエストを送信し、応答が正常であれば稼動していると判断します。

UDP/TCPヘルスチェック

トランスポート層レベルで稼動状況を確認するヘルスチェックです。Web/APサーバのTCPポート(またはUDPポート)にリクエストを送信し、応答があれば稼動していると判断します。

Lambda関数を呼び出すたびに使用できる一時ボリューム量

512MBとなっている。

一時ボリューム量 同時実行数 関数とレイヤーストレージ
512MB 1000 75GB

AMIに含まれるもの

  • 1つまたは複数のEBSスナップショット
  • 起動許可
  • インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピング

障害復旧の対策として、別リージョンにEC2インスタンスをコピーする必要がある場合はAMIをコピーすればいい。AMIの中にスナップショットが含まれるため。

数百万の IOPSに対応するストレージ

Amazon FSx for Windows が正解。
プロビジョンドIOPSと間違えやすいが、最大 64,000 IOPSなので数百万のIOPSは実現できない。

https://aws.amazon.com/jp/fsx/windows/

Dev-kentaDev-kenta

VPC内のリソースにアクセスできるようにLambdaを配置する

LambdaをVPC内に置くメリットは基本的には無い。
しかしRDSなどのリソースにアクセスしたいなどの要件がある場合は、該当のリソースと同じVPCに置くことでセキュリティグループの設定などだけでアクセス可能にできる(VPCエンドポイントを用意する必要が無い)

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-vpc.html

T2インスタンスで使えない機能

拡張ネットワーキング

拡張ネットワーキングは、高い帯域幅、1 秒あたりのパケット (PPS) の高いパフォーマンス、常に低いインスタンス間レイテンシーを実現します。

現在はR3、C3、I2でサポートされている。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/enable-configure-enhanced-networking/

準仮想化(PV)とハードウェア仮想化マシン(HVM)

T2インスタンスでは準仮想化はサポートされていない。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/virtualization_types.html

複数のAZに跨ってEBSボリュームを永続的にバックアップする要件の場合

EBSスナップショットを取るのがベストプラクティス。
ミラーリングは複数のAZでできないため誤り。

ALBが特定のIPからのトラフィックを処理できるようにする設定

ALB +アプリケーションサーバー+データベースで構成されるサービスがあったとして、事前に定義されてIP(例えば顧客のIP)などのトラフィックのみを受ける設定には以下が必要。

  • ALBのX-Forwarded-Forに特定のIPを設定
  • ALBのセキュリティグループの設定

ウェブサーバーのセキュリティグループで制限をかけるなどの選択肢で引っ掛けてくるが、ウェブサーバーのトラフィックはALBからくるので間違い。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/x-forwarded-headers.html#x-forwarded-for

SSHへのログイン失敗で疑うこと

  • EC2 のキーペアは適切か
  • AMI用の適切なユーザーで接続しているか
Dev-kentaDev-kenta

読み取り処理の重いRDS解決する方法

  • リードレプリカを追加する
  • 複数のRDSインスタンスを構築してデータをシェアリングする

CloudWatchでCPU使用率を元にスケーリングするのは、あくまでもストレージ容量のスケーリングなので今回の解決方法として正しく無い。

AWSアカウントのの切り分け

本番用のアカウントにアクセスできる開発者がいて、本番用のEC2を削除する懸念がある場合は以下の対策をする

  • EC2インスタンスにタグ付けして、開発者向けの操作許可を限定する
  • AWSアカウントを開発者用に作る

S3 Glacierのアーカイブ容量

250MBまで。
問題に10TBなどの大容量のストレージを必要としている場合はS3(IA)を選ぶ。

Lambda関数のトラフィック量増加が見込まれる場合の対応

Lambda関数に設定されているメモリ量を増やす。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-console.html

承認済みのAWSサービスのみでデプロイする要件に対応する

  1. AWS OrganizationsでOUを作成
  2. すべてのAWSアカウントをOUに配置する
  3. OUに特定のサービスを拒否するSCPを適用する

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps.html
https://aws.amazon.com/jp/organizations/

Dev-kentaDev-kenta

S3の暗号化

デフォルト暗号化を設定することでログも暗号化される。

EC2の詳細なログ取得方法

  • CloudWatchエージェントを使う
  • CloudWatch Logsを使う

フローログを有効化するとネットワークのトラフィックログは取得できるようになるが、EC2の詳細なログは取れない。

Amazon Kinesis Data Analyticsは画像解析データには向いていない

IoTなどのストリーミングデータ向けのサービスのため。
分析系の要件が書いている問題文だと選んでしまいがちだが、用途をしっかり理解しておく。

https://aws.amazon.com/jp/kinesis/data-analytics/

DynamoDBのスループットが低下している場合の対策方法

DAXを使う

キャッシュを使う仕組みのため、対策として使える。ただしキャッシュDBは高コストなため問題文にコスト最適な方法とあった場合は注意。

AutoScalingを使う

アプリケーショントラフィックの変化に応じて自動的にスループットを調整します。 これにより一時的な負荷増加に対して、DynamoDBテーブル処理パフォーマンスの管理が容易になり、アプリケーションの可用性を最大化しつつ、DynamoDBのコストを削減することができます。

コスト最適も求められる場合はこちらが適している。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/AutoScaling.html

S3のクロスリージョンレプリケーション

オブジェクトの登録と同時に実行される。
双方向レプリケーションは設定可能だが、必ずしも実行されるわけでは無い点に注意。

https://dev.classmethod.jp/articles/s3-support-two-way-replication/

最適なIPアドレス数

CIDR IPアドレス数
32 1
31 2
30 4
29 8
28 16
27 32
26 64
25 128
24 256
23 512
22 1024
21 2048
20 4096
16 65536

CIDRが一つ低くなるごとに、IPアドレスは倍になると覚えておく。

https://www.mrl.co.jp/download/manual-online/gl2000/gl2000_02/manual/docs/netlistc.htm

SQSの可視性タイムアウト

EC2と連携して並列処理などを実装する際に、処理するタスクに優先度を付ける場合に使う。
スケール時にオンデマンドインスタンスとスポットインスタンスが立ち上がっていて、優先的にオンデマンでインスタンスの方を使う設定にしておく。
合わせて可視性タイムアウトを設定しておけば、設定した時間を超過すればSQSのキューがスポットインスタンス側でも見えるようになり処理を実行させることができる。

Redshiftクラスターの拡張VPCルーティング

有効にすることで、VPCに出入りするRedshiftクラスターのすべてのCOPYおよびUNLOADトラフィックを監視することができます。

https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/enhanced-vpc-routing.html

EC2 データ解析用のワークロードに適したインスタンスタイプ

ストレージ最適化インスタンスが適している。
D2、D3、 H1、I3など

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/storage-optimized-instances.html

Dev-kentaDev-kenta

暗号化されてないEBSボリュームを暗号化する方法

  1. スナップショットを取得
  2. スナップショットを新しく暗号化されたEBSに復元
  3. 暗号化されたEBSを新たにマウントする

アンマウントしてから、デフォルト暗号化を有効化後に再マウントするだけではダメ。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSEncryption.html#encrypt-unencrypted

RDSの読み込みパフォーマンスを改善する最高レベルのソリューション

ElastiCacheを使う。
読み込みリクエストを改善するとなるとリードレプリカを思い浮かべるが、問題文に最高レベルのパフォーマンスを求める場合はElastiCacheが正解。

https://aws.amazon.com/jp/elasticache/

Dev-kentaDev-kenta

CloudFrontのコスト算出方法

  • トラフィックの分散
  • リクエスト
  • データ転送アウト

以上の要素で決まる。

EMRを使うユースケース

  • MACHINE LEARNING
  • 抽出、変換、読み込み (ETL)
  • クリックストリーム分析
  • リアルタイムストリーミング データ処理
  • インタラクティブ分析
  • ゲノミクス

AWS Server Migration Service (SMS)

オンプレミスのワークロードをAWSに移行するサービス

AWS Application Migration Service は、クラウドへの移行を簡素化し、迅速に行うことができます。AWS MGN を使用すると、変更を加えることなく、最小限のダウンタイムで、アプリケーションをクラウドに移行するメリットをすばやく実現できます。

似たものとしてDMS(AWS Database Migration Service)がある。こちらはデータベースのマイグレーションサービス。
https://aws.amazon.com/jp/server-migration-service/

AWS Globel Accelerator

世界中の顧客に提供するアプリケーションの可用性とパフォーマンスを改善するネットワークサービス。

AWS Global Accelerator は、アマゾン ウェブ サービスのグローバルネットワークインフラを利用して、ユーザーのトラフィックのパフォーマンスを最大 60% 向上させるネットワーキングサービスです。AWS Global Accelerator による、アプリケーションへのパスの最適化は、インターネットが混雑している場合にパケット損失、ジッター、レイテンシーを一貫して低く保つのに役立ちます。

Route53は様々なルーティング方式を提供するが、グローバルに最適なエンドポイントにトラフィックをルーティングするものでは無い。

https://aws.amazon.com/jp/global-accelerator/?blogs-global-accelerator.sort-by=item.additionalFields.createdDate&blogs-global-accelerator.sort-order=desc&aws-global-accelerator-wn.sort-by=item.additionalFields.postDateTime&aws-global-accelerator-wn.sort-order=desc

RDSとAuroraのリードレプリカの最大値

RDS Aurora
5 15

その他のAuroraの特徴

  • MySQL および PostgreSQL と互換性
  • 可用性は99.99%

Route53 パブリックホストゾーン

パブリックホストゾーンはインターネット上に公開されたDNSドメインレコードを管理するコンテナのこと。
インターネットのDNSドメインに対するトラフィックのルーティング方法を定義する。

VPC同士が接続可能であれば異なるリージョン間でも同じホストゾーンを使えるのはプライベートホストゾーンの説明。

セキュリティグループの特徴

  • ルールはすべて適用
  • インスタンスのトラフィックを制御する仕組み
  • デフォルトでは同じセキュリティグループ内の通信のみ許可
  • ステートフル

ElastiCacheにおけるRedisとMemcachedの特徴

Redis

  • 複雑なデータ型を設定できる。
  • インメモリデータセットのソートまたはランク付けが可能である。
  • データをリードレプリカにレプリケートできる。
  • pub/sub機能を提供する。
  • 自動的なフェイルオーバーができる
  • キーストアの永続性が必要である。
  • バックアップと復元の機能がある。
  • 複数のデータベースをサポートしている。

Memcached

  • シンプルなデータ型である。
  • 複数のコアまたはスレッドを持つ大きなノードを実行する。
  • システムでの需要の増減に応じてノードを追加または削除するスケールアウトおよびスケールイン機能が利用できる。
  • データベースなどのオブジェクトをキャッシュできる。
  • キーストアの永続性はない
  • バックアップと復元の機能がない。
  • 複数のデータベースを利用できない

S3マルチパートアップロードの最大アップロードサイズ

5TBまで

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/qfacts.html

ALBの特徴

  • L7に対応
  • URLのパスに基いてルーティングが可能なパスベースルーティングが可能
  • WebSocketとHTTP/2のリクエストが利用可能
  • 1インスタンスに複数ポートを登録可能
  • EC2インスタンスをターゲットグループに割り当てる際、複数ポートを個別のターゲットとして登録することが可能なため、ポートを利用するコンテナをロードバランシング可能
  • ターゲットグループでのヘルスチェックが可能
  • アクセスログが取得できる
  • EC2と同様に削除保護が可能
  • ALB自体が自動的にキャパシティを増減する

よく問題の選択肢に出てくるのはL4とL7両方に対応というものだが、これはCLBの特徴なので注意する。

Dev-kentaDev-kenta

RDSの特徴

セカンダリマスターは許可していない。
データベースの追加負荷を軽減する対策でもリードレプリカを作るのは有効。
読み込みトラフィックが多い等が問題文に入っていなくても、リードレプリカを作る選択肢が正解。

Amazon Kinesis Data系の違い

特徴 Analytics Firehose Streams
管理オーバーヘッドがあるか ない ない ある
リアルタイム性能 ある ある ある

https://aws.amazon.com/jp/kinesis/data-analytics/
https://aws.amazon.com/jp/kinesis/data-firehose/
https://aws.amazon.com/jp/kinesis/data-streams/

Dev-kentaDev-kenta

S3 別のAWSアカウントにバケットの利用許可を与えたいケース

バケットポリシーとIAMポリシーを両方設定する。

タグ付けの際に考慮するポイント

  • リソースフィルタリングに必要な詳細なタグ設定
  • リソースアクセス制御を配慮する
  • 将来の変更の影響を考慮する
  • 個人情報 (PII) などの機密情報や秘匿性の高い情報はタグに格納しない
  • タグには、標準化された、大文字と小文字の区別がある形式を使用し、すべてのリソースタイプに一貫して適用する

https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_tagging.html

AWS managed VPN

AWS managed VPNを利用することで、オンプレミス環境とVPC間とのサイト間接続を実行することができます。

https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-vpc-connectivity-options/aws-managed-vpn-1.html

SSLを管理できるサービス

ACMが定番だが、ACMがサポートされていないリージョンではIAMをSSL証明書マネージャーとして使用する。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_server-certs.html

AWS Application Discovery Service

オンプレミスデータセンター内のサーバーにエージェントをインストールすることで、データセンターの利用情報を収集することができるサービスです。

https://aws.amazon.com/jp/application-discovery/

Auto scalingのクールダウンタイム

インスタンスのウォームアップ期間やその他のアプリケーションニーズに基づいて設定できる。
インスタンスがスピンアップした際に安定するまでの期間を設定するのに使用する。

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/Cooldown.html

Dev-kentaDev-kenta

コストを最小限に抑えつつRDSの負荷を下げる

同じAZにリードレプリカを作る。
別のAZに作ることもできるが、データ転送コストがかかることに注意する。

S3のバケットに外部ベンダーにアクセスさせる方法で最小限の管理オーバーヘッドで済む方法

著明付きURLを使う。
IAMユーザー作成と多要素認証を矯正する方法などは、最小限の管理オーバーヘッドとは言えない。

コンテンツの配信権が国ごとに異なる場合に使う方法

Route53の位置情報ルーティングを使うことで国ごとに設定ができる。

EC2インスタンス 間のデータ転送料金

プライベートIP同士の転送であれば料金は発生しない。
パブリックIPで通信をしてしまうとインターネット経由なので転送料金がかかる。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-ip-addressing.html#vpc-private-ipv4-addresses

Dev-kentaDev-kenta

EC2 スポットインスタンスが適さないケース

一度実行された後に中断できないジョブなどはスポットインスタンスだと適さない。
可能な限りコスト効率が高い方法で〜と問題文に入っていると引っかかりやすいので注意。

Amazon FSx for Lustre

高性能並列処理ストレージを提供するマネージドサービス。

機械学習、高性能コンピューティング (HPC)、ビデオレンダリング、金融シミュレーションといった多くのワークロードは、高性能共有ストレージを介して同じデータセットにアクセスするコンピューティングインスタンスに依存しています。

https://aws.amazon.com/jp/fsx/lustre/

CloudFrontとS3で権限のないユーザーのアクセスを制御する

  1. CloudFrontのOAIを使う
  2. キャッシュ動作で著名付きURLを使う
Dev-kentaDev-kenta

EFSとAmazon FSxのプロトコルの違い

EFS FSx
プロトコル NFSv4 SMB

DynamoDBからレーポートを作成するときに使うサービス

Lambdaを使う。EMRの選択肢に引っかかったが、EMRは高速データ処理やマシンラーニングなどに使われるサービスなのでレポート作成などの要件であればLambdaでいける。

EFS汎用モードと最大I/Oモード

要件 汎用 最大I/O
最小レイテンシー -
スループット求める -

EC2 Savings Plan

スケジュールされたリザーブドインスタンスを購入するプランは無い。
そのためオンデマンドキャパシティ―予約で購入プランとしてSavings Planを使う。

https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html

Lambdaで実行できないこと

画像処理などはLambdaでは実行できない。
画像処理ソフトウェアを実行するにはサーバーとしてのEC2インスタンスが必要なため。

Route53で地理的近接性ルーティングの設定

トラフィックフローで設定する。レコードの設定ではできない。

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-geoproximity

Glacierの取り出し要件

Glacier Deep Archiveでも12時間以内に取り出し可能。

https://dev.classmethod.jp/articles/s3-deep-archive/

別リージョンのS3バケットにVPCエンドポイント経由で繋ぎたいとき

VPCエンドポイントはリージョンサービスのため、S3バケットをクロスリージョンレプリケーションでレプリケートしておく必要がある。

S3バケットのパブリックアクセスを拒否する

パブリックアクセス設定機能でブロックを有効化する。
ACLはバケットとオブジェクト両方に設定できる。

ACLではバケット単位のACLの設定に関係なくオブジェクト単位のACLが優先されるように設定されます。つまり、バケットACLでパブリックアクセスを許可しない設定することに加えて、オブジェクトについてもACLでパブリックアクセスを許可していないことが必要となります。

このような設定は面倒なため、バケット単位でアクセス盛業したい場合はパブリックアクセス設定機能でブロックする方が手っ取り早い。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/access-control-block-public-access.html

EC2 GPUを利用可能なインスタンスタイプ

高速コンピュティングのタイプで利用が可能。
P、 Inf1 など。

https://aws.amazon.com/jp/ec2/instance-types/

AWS Lake Formation

AWS Lake Formation は、安全なデータレイクを数日で簡単にセットアップできるサービスです。データレイクとは、キュレートされた安全な一元的リポジトリであり、すべてのデータが元の形式と分析用に処理された形式の両方で保存されます。データレイクを使用することにより、データのサイロ化が解消され、異なる種類の分析を組み合わせることが可能になります。このような分析から得られるインサイトは、ビジネス上の意思決定に大きく貢献します。

https://aws.amazon.com/jp/lake-formation/

AutoScaling起動設定

AutoScalingで起動するインスタンスタイプなどの設定をする。

SQS トラフィックが急増した場合に処理負荷を軽減するAutoScalingの設定

SQSキューの需要の変化に応じて Auto Scaling グループをスケールすることができます。SQSキューサイズを確認するAutoScalingトリガーを構成することで、SQSキューサイズに応じてEC2インスタンスのAutoScalingを実行できます。

SQSキューサイズに応じてスケールさせる。

https://dev.classmethod.jp/articles/amazon-sqs-cloudwatch-rapid-autoscaling/

大規模なデータ転送のソリューション

Snowball Edgeを使う。Snowballは推奨されていない。
Snowball Edge Storage Optimizedは最大で100TBだが、利用可能容量は80TBになっている点に注意。
問題ではギリギリで90TBを要件にしていたりする。

https://aws.amazon.com/jp/snowball/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc

DynamoDBの書き込み処理のパフォーマンスを上げる

  • Auto Scalingを設定する
  • SQSとLambdaを使って書き込み処理を並列化する

グローバルセカンダリーインデックスを付与する方法は読み込みパフォーマンスを上げるのには効果があるが、今回の書き込み処理負荷を下げる場合は不適切。

EBS ストレージ故障の場合にRTOは1分未満に回復するアーキテクチャ

RAID1構成にして冗長性を高めておく。
Route53のフェイルオーバールーティングでは1分未満に回復するという要件に対応できない可能性がある。

URLに基づいてフィルタリングする

プロキシサーバーによるアクセス制御を使う。
ソフトウェアのアップデートが更新が、その場合に特定のURLのみ許可したい場合はこの方法を使う。
セキュリティグループやネットワークACLでは、URLに基づいたフィルタリングができないため今回の要件では適切では無い。

Redshiftデータベースのデータを確実に暗号化する

KMSとHSMを使う。

HSM を使用するときは、クライアントとサーバーの証明書を使用して、Amazon Redshift と HSM との間で信頼された接続を設定する必要があります。

KMSはRedshift統合しているため必要ないが、HSMは信頼された接続を設定する必要がある。

EC2 汎用インスタンスでプレイスメントグループを設定する

  1. プレイスメントグループを設定する
  2. M5インスタンス群を起動する

先にプレイスメントグループを設定する必要がある。また、T系インスタンスも汎用タイプだがプレイスメントグループには設定できない点注意する。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html

CloudFrontとS3で特定のユーザーに配信する

  • CloudFrontOAIを使ってS3にアクセスするようにする。
  • 署名付き URL または署名付き Cookie を作成してバケットへのアクセスを制限する。

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

Dev-kentaDev-kenta

Auroraのレプリケーション最低数

3つのAZに6つレプリケーションを作る。

IAMの特徴

リージョンを跨いだ設定ができる。
つまり一度作ったIAMポリシーを別のリージョンにAMIから立てたEC2にアタッチできるということ

S3のアクセス制限

バケットポリシーとIAMユーザーポリシーがあるが特定のアプリケーションや個人に対する制限をかけたいときはIAMユーザーポリシーを使う。

EC2メモリ使用量をモニタリングする方法

CloudWatch Agentを使う。
インスタンスメトリクスにはメモリ使用量は無いため。

https://dev.classmethod.jp/articles/monitor-ec2-memory-cw-agent/

AWSのサポートプラン

プラン 形態
ベーシック 無料
開発者 有料
ビジネス 有料
エンタープライズ 有料

以上の4つがある。

SSL接続のみを使用してRDSにつなぐ

公開鍵を参照するMySqlクライアントを使う。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.SSLSupport

S3すべてのオブジェクトをパブリック読み取りにする

  • バケットポリシーで設定
  • アップロードしたオブジェクトのアクセス許可をパブリック読み取りにする

バケットACLよりもバケットポリシーの方が優先される点に注意。

https://dev.classmethod.jp/articles/s3-acl-wakewakame/

Dev-kentaDev-kenta

ELBのトラフィックパターンを分析する

アクセスログを有効化することで可能。
CloudWatchのメトリクスではアクセスログは収集できないので注意。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html

ELBのクロスゾーン負荷分散

有効にするとインスタンス単位で分散してくれる。
そのためAZごとにインスタンス台数が異なる場合も、均等に分散してくれる。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html

独自のファイルシステムを持つレガシーアプリケーションをAWSに移行する場合

EBSを選択する。
ファイルシステム=EFSを選びたくなるが、EFSはPOSIXを準拠したファイルシステムでNFSを使っているため。

Dev-kentaDev-kenta

フェイルオーバーが動作するようにネットワークインターフェースの受信トラフィック使用するもの

セカンダリプライベートIPを設定する。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html#creating-a-management-network

EC2 スポットブロック

指定された期間中断されずに実行できるスポットインスタンスのこと。
継続期間として 1 時間、2 時間、3 時間、4 時間、5 時間、6 時間がまで設定できる。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances

パッチダウンロード時のボトルネックの原因

NATインスタンスやプロキシがすべてのリクエストを処理するのに十分なネットワーク容量がない可能性が考えられる。

Dev-kentaDev-kenta

AWS Storage Gateway ハードウェアアプライアンス

NFSをサポートするS3へのデータのオフサイトバックアップをサポートする。
また仮想化されたコンピューティングリソースが無いためハードウェアアプライアンスをインストールする必要がある。

https://aws.amazon.com/jp/storagegateway/hardware-appliance/

KMSの監査対応

KMSはCloudTrailと統合されているのでKMSによって行われた証跡を確認することが可能。

https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/logging-using-cloudtrail.html

スタンダードリザーブドインスタンスの特徴

VPCのCIDRブロックの変更

初回に割り当てたプライマリCIDRと別にセカンダリCIDRを追加することで可能。
新しいVPCを構築して移行すること実現することも可能だが、アプリケーションの移行が発生するため適切では無い。

https://dev.classmethod.jp/articles/expanding-vpc-cidr/

オンプレのActive Directoryとの連携

  • AD Connector
  • IAMロール
    この二つを使うことでマネジメントコンソールへのSSOが可能。

https://aws.amazon.com/jp/directoryservice/faqs/#IAM_integration

Dev-kentaDev-kenta

試験結果

786点でなんとか合格だった〜

試験所感

VPCエンドポイント、CloudFront、AutoScalingがよく出てきていた印象。
「セキュアなアプリケーションとアーキテクチャの設計」分野が弱かった。

このスクラップは2021/08/09にクローズされました