こんにちは、しらすです。
先日AWSのソリューションアーキテクト-アソシエイト(SAA-C02)の資格を取得したので勉強したことを備忘録として残しておきたいと思います。SAA-C02はAWSのCloud Practitionerの上位の資格となっています。ネット上でも色々情報はありますが、これからSAA-C02を受ける方の参考になれば幸いです。
SAA-C02 試験概要
概要
出題数:65問 前後
試験時間:130分
合格ライン:720 / 1000点
受験費用:15,000 円(税別)
Amazonの公式ページはこちらからアクセスできます。試験の申込も公式ページから可能です。
難易度
クラウドサービスの中級試験です。AWSの実際のユースケースについて実際に構築するための知識を聞かれます。初級資格のAWS Cloud Practitionerを合格した人の次のレベルの資格となっており、実際にAWSサービスでクラウドを作成するための入り口としての知識がつきます。
受ける人の知識量によって学習時間は異なりますが、AWSCloud Practitionerを合格された方なら30~40時間ほどで合格できる内容かと思います。
評価されるスキル
- 第 1 分野: 弾力性に優れたアーキテクチャの設計 (30%)
- 第 2 分野: 高性能アーキテクチャの設計 (28%)
- 第 3 分野: セキュアなアプリケーションとアーキテクチャの設計 (24%)
- 第 4 分野: コストを最適化したアーキテクチャの設計 (18%)
学習用のツール
Amazon公式のクラスルームが用意されており、無料で利用できるものもあるようです。ただ、あまり効率は良くないと思います。
おすすめはUdemyのSAAコースです。通常時は1万以上しますが、頻繁にキャンペーンをやっていて私は1個1,200円で以下の2つのコースを購入しました。
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版) | 試験範囲のモジュールを体系的に学習できます。模擬試験も3回分ついていて、これ一つをしっかり勉強すれば合格に到達できるレベルになります。 |
【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問) | 上記の試験対策だけでは不安な方は模擬試験問題集も実施するのといいです。難易度は回を重ねるほど上がっていきますが、4回目くらいまで実施しておけば十分かと思います。 |
私はUdemyの講座のみで勉強しました。ギリギリでパスしましたが、模擬試験の問題もしっかり勉強しておけばよかったと思いました。また、今後のレベルを受けていくなら、演習などもしっかり実施していかないといけません。
試験結果
受験回数 | 1回 |
受験日 |
2021年6月1日 |
結果 |
737 点 合格 |
勉強時間 | 30時間 |
筆者の情報
C,C++を中心に組込系エンジニアとして約7年勤務。趣味でPythonを3年ほど書いており、機械学習と画像処理は専門的な知識があります。
クラウドは完全に初心者でオンプレミスとの違いなども全く分からない状態でした。5月初旬から仕事の合間を縫って徐々に勉強してAWS Cloud Practitionerを取得し徐々にわかってきた、という段階です。
学習時のメモ
IAM
IAMポリシー
JSON形式で記載される
Access Advisor
Last Accessed DataにIAMエンティティ(ユーザー、グループ、ロール) が最後にAWSサービスにアクセスした⽇付と時刻が表⽰されます。
インラインポリシー
⾃⾝で作成および管理するポリシーであり、プリンシパルエンティティにアタッチすることができます。
VPC
サブネット
パブリックサブネットとプライベートサブネットがある。インターネットゲートウェイへのツーティング有無でサブネットタイプが分かれる。
パブリックはルートテーブルを指定して直接外部と接続できる。プライベートからは、パブリックにNATゲートウェイを設定し、それを経由して接続する。
VPCフローログ
ログ監視
NAT
プライベートIPをグローバルIPに変更
IPマスカレード
複数のプライベートIPを一つのグローバルIPにまとめて変更
Elastic IP
静的 IPv4 アドレス
OSI参照モデル
TCP/IPモデル
セキュリティグループ
EC2インスタンスのトラフィックのアクセス可否を設定するファイアーウォール機能を提供
インバウンドのみ設定すればアウトバウンドも許可される(ステートフル)
許可のみ指定
ネットワークACL
サブネットに対してトラフィックのアクセス可否を設定する
インバウンドのみ設定してもアウトバウンドも許可されない(ステートレス)
許可/拒否を設定
Direct Connect
自社機器との専用線接続を構築。VPNよりコストはかかるが信頼性が高く高速
VPCエンドポイント
グローバルIPを持ちAWSサービスに対してVPCないから直接アクセスするための出口。以下2つの接続方式がある。
Gateway型 | サブネットに特殊なルーティングを設定 冗長性はAWS側でフルマネージ アクセス制御はエンドポイントポリシーを設定 無料サービス |
PrivateLink型 | サブネットにエンドポイント用のプライベートIPアドレスを生成、DNSが名前解決でルーティング 冗長性はマルチAZ アクセス制御はセキュリティグループを設定 有料サービス |
VPC Flow logs
CloudWatchでネットワークトラフィックをモニタリングできるようにするサービス
セキュリティグループとネットワークACLのルールでAccepted/rejectされたトラフィックログを取得
無料サービス
VPC Peering
2つのVPC間でのトラフィックルーティング
1対1の接続になるため通信が発生する組み合わせはすべて設定が必要
Transit Gateway
EC2
ハードウェア占有インスタンス
一つのAWSアカウント内で専用の物理領域を利用する。
Dedicated Host
EC2インスタンスの物理領域を一つのアカウントのユーザ専用として利用できる。
インスタンスストア
インスタンス用のブロックレベルの一時ストレージを提供します。インスタンスストアは、頻繁に変更される情報の一時ストレージに最適です。
ストレージタイプ
汎用 | SSD対応の一般的なもの |
プロビジョンドIOPS | 高いI/O性能向け |
マグネティック | HDD、低性能 |
高いI/O性能向け
インスタンスタイプ
汎用インスタンスとメモリ最適化が存在する。
汎用 | バランスが取れた対応が可能なMファミリ(M4,M5)と、バーストパフォーマンスが提供されるTファミリ(T2,T3)がある。 Mファミリはエンタープライズ系のンようで使用。 |
メモリ最適化 | メモリ負荷の高い処理に最適化された安価なRファミリ、大規模処理に対応したXファミリ、高度なZファミリがある。 |
S3
バケットポリシー
S3バケットとオブジェクトに対するアクセス権限を設定します。
暗号化方式
SSE-S3とSSE-KMSとSSE-Cをサーバーサイド側暗号化方式として利用することができます。
クライアントサイドではCSEを利用する。
Intelligent-Tiering
アクセス頻度によってアクセス層を自動的に前後させるサービス。アクセス頻度がわからない場合にとりあえずこれを設定しておけば利用可能
S3のデータ解析
Well Architected Framework
AWSのベストプラクティスを集めてまとめた公式ガイド。
信頼性
ELB
ヘルスチェック | EC2の振り分けを行う |
負荷分散 | 配下のEC2の負荷に応じて、複数のAZに跨るEC2イ 負荷分散 ンスタンスの負荷分散を行う |
SSLサポート | ELBでSSL Terminationできる |
スティッキーセッション | セッション中に同じユーザから来たリクエストを全て同じEC2インスタンスに送信する |
Connection Draining | インスタンスが登録解除されるか異常が発生した場合に、そのバックエンドインスタンスへの新規リクエスト送信を中止する |
S3へのログ保管 | ELBのアクセスログを指定したS3に自動保管 |
NLB/ALB/CLB
Network Load Balancer、Application Load Balancer、Classic Load Balancerの3つ。基本的にCLBは使用しない。
ALBはL7(HTTP)で動作、NLBはL4(TCP,UDP)で動作。通常のWebアプリケーションではALBを利用するのが一般的。
ALBはURLのパスに基いてルーティングが可能。NLBは調停遅延で高スループットのロードバランサー。
Auto-scaling
垂直スケーリング | スケールアップ:メモリやCPUの追加/増強 スケールダウン:メモリやCPUの削減/低性能化 |
水平スケーリング | スケールアウト:機器やサーバー台数を増加 スケールイン:機器やサーバー台数を低減 |
Auto-Scaling グループ | インスタンスの最大数/最小数 起動台数をAZ間でバランシング |
Auto-Scaling configuration 起動設定 | 起動するインスタンスの内容 |
スケーリングプラン | スケーリング方法の定義 手動スケーリング、スケジュールベース、動的スケーリングの設定できる |
需要が減った時にスケールインの方法としてターミネーションポリシーを設定する。
ELB、CloudWachをベースにAuto-Scalingを設定する。
RDS
マルチAZによるマスタ/スレイブ構成が容易に作成でき、同期レプリケーションや自動フェイルオーバーが容易に構成できる。
非同期で参照専用のリードレプリカの作成も可能。最大5台(Auroraは15台)。
非同期で参照専用のリードレプリカの作成も可能。最大5台(Auroraは15台)。スナップショットやトランザクションログを実装し、S3に保存する構成を容易に作成可能。
データベースシャーディングによって書き込み先のRDSを分けて高速アクセスを実現できる。
インスタンスとスナップショットの暗号化が可能。以下が対象。インスタンス作成時にのみ設定可能。
- DBインスタンス
- 自動バックアップ
- リードレプリカ
- スナップショット
高速化のためにはリードレプリカの増設、キャッシュによる高速化が可能。
Route53
ルーティングの種類
シンプルルーティング | 静的ルーティング。単純に均等にルーティングする方式 |
加重ルーティング | 重みづけにより分散する方式 |
レイテンシールーティング | リージョン間の遅延が少ない方へルーティングされる方式 |
位置情報ルーティング | 特定の地域・国からのクエリに対して特定のアドレスを応答する方式 |
マルチバリュールーティング | IPアドレス単位で経するチェックしてルーティングする方式 最大8つのルーティングが可能。ELBとほぼ同じだが、DNSレベルの上位の負荷分散システム。 |
フェイルオーバールーティング | 2つのリージョンにスタンバイ構成を構築したうえで、リージョンをまたいだフェイルオーバーを提供する方式 |
ホストゾーン
ドメインとサブドメインのトラフィックのルーティングする方法
パブリックホストゾーン | インターネット上に公開されたルーティングを管理 |
プライベートホストゾーン | VPCに閉じたルーティングを管理 |
DNSレコード方式
SOA | DNSサーバー、ドメイン管理者のメールアドレス、シリアル番号など |
A | ホスト名とIPアドレス |
MX | メールの配送先のホスト名を定義 |
CNAME | 外部の正規ホスト名に対する別名を定義 |
ALIAS | AWSサービス用のレコード ZoneApexを設定可能で、高速で利用可能 |
DynamoDB
キーバリュー(ワイドカラム型)のデータベース
以下の特徴がある。
- プロビジョンドスループットでテーブルごとにスループットの指定が可能
- ストレージの容量制限がない
- 自動で3か所のAZに保存
整合性には結果整合性モデルを採用している。
パーティショニングによって分散処理している。
ビックデータ処理、アプリケーション向けに活用される。
ハッシュキー | ハッシュとして利用。パーティションを決定するキー |
レンジキー | ハッシュキーと合わせて使う付属属性 |
暗黙的なキー | ハッシュキーやレンジキー。検索に利用するインデックス(1テーブルに1つ) |
明示的なキー | ローカル・セカンダリ・インデックス(LSI)→追加で設定する別のレンジキー(1テーブルに5つ) グローバル・セカンダリ・インデックス(GSL)→ハッシュキーの代わりになるもの。全データに対してグローバルに付与(1テーブルに5つ) |
DynamoDB Streams
24時間のテーブルの操作履歴を保存/送信するサービス。Lambdaを経由してテーブル更新をトリガにしたアプリを作成できる(クロスリージョンレプリケーション、プッシュ通知、など)
DynamoDB Accelerator (DAX)
DynamoDBにインメモリキャッシュ型の機能を付加する。マイクロ秒単位まで結果整合性が必要なアプリを使用。
グローバルテーブル
DynamoDBの性能のまま、ほかのリージョンにレプリケーションを作成できる。
オンデマンドバックアップ
任意のタイミングでバックアップ可能な大規模ストレージサービス
Read/Writeキャパシティオンデマンド
オンデマンドで自動的に読み込み速度をスケーリングできるサービス
Aurora
新しいRDBの構造。NoSQL型の分散高速処理とRDBのデータ解析性能を提供する。MySQLの2.5~5倍の性能かつ商用サーバーの1/10のコストで利用可能。
3つのAZに書く2つのコピーを設置可能、10GB~64TBをシームレスに拡張可能(Auto-Scalingにより実質無制限)、15個のリードレプリカを作成して高速読み込みできる。
仮想ボリューム
6つのコピーはAZをまたいでいるが、一つの仮想DBと認識できる
DBクラスタ構成
マスタとリードレプリカをまとめたもの。書き込みか読み込みかによってエンドポイントで判断してアクセスするDBが決まる
マルチマスター
書き込みが可能なマスタデータもAZをまたいで複製できるようになった。Write性能の可用性と書き込み性能が向上。
Auroraサーバレス
オートスケーリングのような機能。自動でスケールアップ/スケールダウンしてくれる。
AuroraグローバルDB
ほかリージョンにリードレプリカを高速/低遅延で作成可能なサービス
EFS
保存容量、IOPS性能がスケーラブルで自動で増減。NASのような用途として使用でき、何千もの同時アクセスが可能。セキュリティグループでアクセス制限する。
EC2からはマウントターゲットをエンドポイントとしてアクセスする。
Kinesis
IoTシステムを構築するシステム。大量のデータ処理をする仕組み。
Data Streams
ストリームデータを処理するアプリケーションを構築できる。
Data Firehose
S3やRedshiftに簡単にストリームデータを配信する
Data Analytics
ストリームデータをリアルタイムで可視化・分析する
Redshift
スケーラブルなDWH/データレイク分析サービス。ペタバイト単位までスケール可能。単一AZ構成される。
列志向のRDBで、高速にアクセスできる。
RA3インスタンス | 大規模かつ高性能のインスタンス |
DC2インスタンス | 基本的な安価なインスタンス |
マテリアライズドビュー
SQLのビューと同様のもの。よく使うものを保存しておける。
機械学習によるクエリの効率化
テーブルメンテナンスやクエリの実行順序などを機械学習で自動で最適化してくれる。
クエリエディタ
マネジメントコンソール内でクエリを作成できる。
RedShift Spectrum
ユーザー管理のS3バケットに対してRedShiftから直接データ解析を実行可能。
データ連携
S3, Kinesis, RDS, DynamoDB, Amazon EMRからデータを取得できる。
QuickSight、S3、Amazon Machine Learning、RDSに出力できる。
AWS Lake Formation
Best Practiceに基づき、データレイクを容易に構成できる仕組み。
キャッシュ
ElastiCache
キャッシュをメモリに保存することで高速に処理する仕組みを分散的に容易に構築できるサービス
データアクセスを高速にしたいケースがあればキャッシュを利用する。
Redis、Memcachedの2つのオープンソースを利用可能。Memcachedの方がシンプルで利用しやすい。Redisを使う場合、バックアップやフェイルオーバーなどが使えるため、インメモリデータベースに近い用途で使える。
CloudFront
AWSが提供するWEBコンテンツ配信を高速処理するためのサービス(CDNサービス)。
設定要素としてはDistributionを設定する。
WEB Distribution | HTTPプロトコルを利用したWEB配信を利用 |
RTMP Distribution | Adobeを利用して配信する場合はこちらを利用 |
- キャッシュ対象設定(対象のURLを設定する)
- TTLの設定(キャッシュ時間TTLを設定する)
サーバレス
SQS
送信側から制御やデータなどをキューとして保存し、受信側から問い合わせがあった時に送信するための中継点としてのサービス。
直接接続すると、受信側がBusyで受け取れない場合処理が止まるが、SQSにキューとして処理をためることで、送信側/受信側の処理を止めることなく継続的に処理できる。
効果用、高スケーラブル、高スループットかつ安価なサービス
メッセージ保持期間は最大14日間までユーザで設定できる。
キューメッセージの処理順序は、標準キューかFIFOキーが存在する。
SNS
プッシュ型でメッセージを送信するシンプルなサービス。
SES (Simple Email Service)
メール送受信が可能なサービス。
メールサーバーとしての利用も可能だが、アプリケーション間の連携としても利用可能。
ドメインの登録やメールの事前申請が必要。
Lambda
単体で起動可能なファンクションサービス。
サービス/アプリから起動されるPushモデルと、Lambdaから実行するPullイベントがある。
サンプルコード集としてブループリントというものがあるので、こちらをベースに作成する。
共通機能をライブラリとして格納できるLambda Layerがある。
また、ロードバランサーからの呼び出しも可能になった。
エッジロケーションでの利用も可能
環境の自動化
Elastic Container Service (ECS)
Dockerコンテナをサポートする拡張性とパフォーマンスに優れたレジストリサービス
Elastic Container Registry (ECR)
レジストリサービスでDockerコンテナのイメージ保存サービス
Elactic Kubernetes Service (EKS)
オープンソースのKubernetesを実行するサービス
AWS Fargate
コンテナを実行するECSに対応したコンピューティングエンジン
セキュリティ
CloudHSM
不正使用防止策がとられている専用HWモジュールによる暗号キーを保護するサービス。
AWS Directory Service
ユーザにかかわる各種情報を保存して利用する。AD Connectorを使うことでオンプレで使用しているActive directoryの情報などを取得できる。
Security Token Service (STS)
限定的で一時的なセキュリティ認証情報を提供するサービス
Amazon Cognito
モバイルアプリケーションの認証に利用
AWS Certificated Manager (ACM)
SSL/TLS証明書のプロビジョニング、管理、デプロイを実行するサービス
運用
AWS Config
変更管理や構成変更を管理するサービス。
スナップショットをS3に保存
Stream, History, Snapshotの3つのサービスにより構築される。
AWS Service Catalog
AWSで承認されたITサービスのカタログを作成、管理する支援サービス。使用できるリソースを定義できる。
CloudFormationのテンプレートを使用して定義する。
AWS Artifact
重要なコンプライアンス関連情報の一元管理のリソース。各国のコンプライアンスレポートを提供する「Reports」と、契約の確認/受諾/管理を実施する「Agreements」からなる。
Pricing Calculator
簡易コスト計算ツールよりも細かい設定をして確認できる。
AWS Systems Manager
運用タスクを自動化するサービス。
EC2のパッチ適用やデプロイの自動化、運用の可視化などが可能。
検出制御サービス
CloudTrail
ユーザの操作をロギングするサービス
ログファイルは暗号化されてS3に保存される
KMSによる暗号化もサポート
CloudWatch
Billing機能により請求額に対するアラートを設定できる
AWS GuardDuty
AWS CloudTrail、Amazon VPC フローログ、DNS ログを利用して、AWS上の異常な振る舞いを検出するサービス。機械学習による解析ができる。
Amazon Inspector
ベストプラクティスからの逸脱性を確認してセキュリティ評価を実施する
AWS WAF
ウェブアプリケーションファイアフォール
ウェブアプリ、APIを保護する。
AWS Shield
DDoS用の保護サービス。デフォルトのスタンダード、有料のアドバンスドがある。
AWS Security Hub
セキュリティーアラートを一元的に表示して管理できるサービス
運用コスト
AWS Budgets
CloudWatchよりも細かくサービスなどに分けてアラートを設定できる。
AWSのコストと使用状況レポート
最も細かく包括的に出力されるレポート
コメント