AWS SAA-C03
AWS SAA-C03
試験内容
AWS Certified Solutions Architect – Associate 認定
参考資料
-
AWS Black Belt Online Seminer
AWS Black Belt Online Seminer on Youtube -
AWS サービス別資料
サービス別資料 | AWS クラウドサービス活用資料集 -
AWS ハンズオン資料
ハンズオン資料 | AWS クラウドサービス活用資料集
CIDR(Classless Inter-Domain Routing)
IPアドレスとサブネットマスクを組み合わせた方法で、IPアドレスの範囲を効率的に表現するための技術。インターネットの成長と共に、従来のクラスベースのIPアドレス割り当てを代替するもの。
CIDR表現
IPアドレスとスラッシュ(/)に続くプレフィックス長で示されます。例えば、**192.168.1.0/24
というCIDRブロックは、192.168.1.0から192.168.1.255までのIPアドレス範囲を表す。ここでの/24
**は、先頭から24ビットがネットワーク部分であることを示す。
CIDRのメリット
- 効率的なIPアドレスの割り当て: クラスベースのIPアドレス割り当てでは、一定の大きさのブロックしか割り当てることができなかったが、CIDRでは必要な大きさのブロックを柔軟に割り当てることができる。
- ルーティングの簡素化: CIDRの採用により、ルーティングテーブルのエントリ数が大幅に減少した。これにより、ルータのメモリ使用量やCPU負荷が低減し、インターネットのスケーラビリティが向上した。
- アドレスの再利用: CIDRの導入により、未使用のIPアドレスブロックを再利用することが容易になりました。
CIDRの考え方
- CIDRでは、IPアドレスのビット列をネットワーク部分とホスト部分に分ける。
- プレフィックス長(/の後の数字)は、ネットワーク部分のビット数を示す。
- プレフィックス長が長いほど、ネットワークは小さく、利用可能なホストアドレスの数も少なくなる。
- 例: /24は、256のアドレス(2^8)を持つネットワークを示し、/25は128のアドレス(2^7)を持つネットワークを示す。
CIDR
インターネットの成長に伴うアドレス割り当ての問題を解決するためのキーとなる技術であり、現代のインターネットアーキテクチャにおいて重要な役割を果たす。
OSI参照モデルとロードバランサの関係
AWS Elastic Load Balancer
-
Classic Load Balancer (CLB)
- L4とL7での負荷分散をサポート。
- AWSの初期のロードバランサ。
ロードバランサ
多くのユーザーからのリクエストを複数のサーバーにうまく分散するサービス。これにより、1つのサーバーに負荷が集中することを防ぎ、ウェブサイトやアプリケーションの動作を安定させる。 -
Application Load Balancer (ALB)
- L7レイヤーで動作し、HTTP/HTTPSトラフィックのルーティングをサポート。
- パスベースやホストベースのルーティング、HTTPヘッダーやクエリパラメータを使用した条件付きルールを利用可能。
L7ロードバランサ
具体的な内容やデータを扱う部分で働く。プロトコル上でのリクエストの具体的な内容からトラフィックを適切なサーバーに送る。例として、ユーザーがウェブサイトの特定のページを要求すると、そのページに最適なサーバーにリクエストを送るなどが挙げられる。 -
Network Load Balancer (NLB)
- L4レイヤーで動作し、TCP, UDP,およびTLSトラフィックのルーティングをサポート。
- 高スループット、低遅延の性能が求められる場面や、静的またはElastic IPアドレスが必要な場面で使用される。
L4ロードバランサ
通信を制御する基盤的な部分で働く。IPアドレスやポート番号といった基本的な情報を見て、トラフィックをどれが送信するのに最適なサーバーか決める。
OSI(Open Systems Interconnection)参照モデル
ネットワーク内の異なる層を定義するフレームワークであり、7つの層から成り立っている。
-
物理層 (Layer 1)
- データリンクを通じてビットの伝送を行う。
- ケーブルやスイッチがこの層で動作。
-
データリンク層 (Layer 2)
- フレームの伝送とエラーの検出。
- MACアドレスを使用して通信。
- スイッチやブリッジがこの層で動作。
-
ネットワーク層 (Layer 3)
- IPアドレスを使用してパケットのルーティング。
- ルーターがこの層で動作。
-
トランスポート層 (Layer 4)
- ポート番号を使用してセッションの確立・管理。
- TCP/UDPなどのプロトコルがこの層で動作。
- L4ロードバランサ:Network Load Balancer(NLB)はこの層で動作。
-
セッション層 (Layer 5)
- 2台のデバイス間のセッション確立、維持。
-
プレゼンテーション層 (Layer 6)
- データ形式の変換や暗号化など、アプリケーション層とトランスポート層の間の変換。
-
アプリケーション層 (Layer 7)
- エンドユーザーと直接対話するアプリケーションが動作。
- L7ロードバランサ: Application Load Balancer(ALB)がこの層で動作。
Elastic Load balancerとAuto Scalingによる設計
Auto Scaling グループにロードバランサーをアタッチする。その後、グループがロードバランサーに登録され、Auto Scaling グループへのすべての受信トラフィックのエンドポイントとして機能。高負荷時に自動でスケーリングさせてサービスを安定稼働させたい場合によく用いられる。
Auto Scaling
EC2の利用条件に応じて自動的にインスタンスの台数を増減する機能。
これにより、リソースの最適化、耐障害性の向上をもたらす
設計において気を付けること
-
ステートレス設計にする
アップロードされたファイルなどをインスタンス外に保持することで、スケールアウトによりスパイクにも耐えることが可能となる。ステートレス設計
状態を保持しない設計 -
ヘルスチェック機能を利用する
ELBがヘルスチェック機能を持つため、リクエストの失敗/成功から周期を計画的に調整する必要がある。例として周期が長すぎることで切り離し/紐付けるのが遅れるが挙げられる。ヘルスチェック機能
対象ファイルにおいて周期を設定し配下の各インスタンスが正常に動いているかを確認し、異常があれば切り離し/正常であれば紐付ける機能 -
AZをまたがってインスタンスを配置
稀なAZ全体の障害が発生する場合に備えるめに実施する。例として4台のWebサーバであれば、2台をap-northeast-1aと2台をap-northeast-1cに配置するなどが挙げられる。これにサービス全停止が避けられる。
AWS ECS - Fargate / Lambda
+α AWS Codepipeline - CI/CD
- Zenn - Reactアプリをdocker composeとECS(Fargate)でデプロイする
- Zenn - ReactをCloudFront+S3でCICDする
-
AWSコンテナ設計・構築[本格]入門
コンテナの概要からAWSにおけるコンテナ設計・構築について学べるハンズオン形式の本。データベース接続ありのWebアプリケーション構築とその発展が書かれている。
- ハンズオン形式
- CloudFormation
- ECS / EKS
キャッシュサービス
-
Amazon ElastiCache
インメモリデータストアキャッシュサービス。主にRedisやMemcachedといったキャッシュ技術を提供しており、高速なデータアクセスを実現。 -
Amazon CloudFront
CDN(Content Delivery Network)サービスで、ユーザーに近い位置にコンテンツをキャッシュすることでウェブページや動画、APIの応答時間を短縮。
キャッシュについて
一度取得または計算されたデータを高速にアクセスできる場所に一時的に保存しておく技術や手法。
キャッシュを使用する目的
再度同じデータが必要となった際に、オリジナルのソース(例:ディスク、遠隔サーバなど)からデータを取得するよりも速やかにデータにアクセスできるようにすること。
AWS キャッシュサービスの用途
Webアプリケーションの高速化
- Webアプリケーションはデータベースから頻繁にデータを取得するが、その都度、データベースへのクエリが遅延を引き起こすことがある。
- Amazon ElastiCache (RedisやMemcached)を導入。
- よくアクセスされるデータや結果をElastiCacheに保存。
- ユーザーからの次回のリクエストでは、先ずElastiCacheを確認し、そこにデータがあればデータベースへのアクセスを省略して高速にデータを返す。
グローバルコンテンツ配信
- 世界中からのユーザーがあるWebサイトやアプリケーションにアクセス。
- Amazon CloudFrontを導入し、Webサイトのコンテンツ(画像、スクリプト、スタイルシートなど)をグローバルに分散されたエッジロケーションにキャッシュ。
- ユーザーがコンテンツにアクセスする際、最も近いエッジロケーションからキャッシュされたコンテンツを高速に取得。
ストレージサービス
-
ブロックストレージ : EBS
HDDやSSDに似ている。特定のEC2インスタンスにアタッチして使用。 -
ファイルストレージ : EFS・Fsx
複数のサーバーやインスタンスから同時にアクセスできる、共有ファイルシステムを提供します。一般的なファイルとして保存・共有するのに適する。 -
オブジェクトストレージ : S3・S3Gracier
データをオブジェクトとして保存。各オブジェクトには一意のIDが割り当てられ、そのIDを使ってデータにアクセス。大量のデータを保存するのに適する。S3 Glacierは長期間のアーカイブ保存に特化。
マルチAZ構成
1つのリージョン内の2つのAZ(: アベイラビリティゾーン)にDBインスタンスをそれぞれ配置する構成。
-
メリット
- 障害やメンテナンス時のダウンタイムを短縮
- 高可用性とデータ耐久性。
-
デメリット
- 書き込み速度が遅くなる
- フェイルオーバーに60-120秒
フェイルオーバー
稼働中のシステムで問題が生じてシステム・サーバーが停止してしまった際、自動的に待機システムに切り替える仕組み
リードレプリカ
マスターDBの非同期レプリケーションされた参照専用DBインスタンス
-
読み込みのスケーラビリティ
読み取り要求のワークロードを分散、マスターDBの読み取りパフォーマンスを向上させる。 -
データベースのバックアップ
マスターDBから独立してバックアップを取得するための追加のデータソースとして利用。
データベースサービス
Amazon DynamoDB / Aurora / Redshift
-
DynamoDB
KVSおよびドキュメント型DBと分類されるNoSQL型のDB。
自動スケーリング。リージョンに作成。 -
Aurora
クラウド設計前提となるRDB。
リードレプリカの追加・インスタンスのスケールアップによって可用性を向上。AZに作成。 -
Redshift
データ分析特化型RDB。
大量のデータ処理と高速な分析クエリのサポートする。AZに作成。
OLTP (Online Transaction Processing | オンライントランザクション処理)
主に業務系システムから定常的に実行。単一行の参照/更新/挿入/削除処理。
実行頻度が高いが、処理内容は単純である。
トランザクションにおけるSQLクエリの典型例 :
SELECT ... FROM A WHERE id = N;
UPDATE A SET value = 'x' WHERE id = N;
INSERT INTO A VALUES (...);
DELETE FROM A WHERE id = N;
OLAP (Online Analytical Processing | オンライン分析処理)
主に分析系システムから一時的に実行。表結合を伴う大量データの集計処理。
実行頻度は低いが、処理内容は複雑である。
データ分析におけるSQLクエリの典型例:
SELECT ..., SUM(A.z) FROM A INNER JOIN B ON ... INNER JOIN C ON ... GROUP BY ...;
大規模基盤データ分析の流れ
- OLTP: Online Transaction Processing - データ更新
- ETL: Extract,Transform,Load - データ収集
- OLAP: Online Analytical Processing - データ分析
ETL: Extract,Transform,Load
業務用データベースから抽出・変換・書き出しにより分析用データへ移行すること
AWS re:Invent 2022 | Enabling operational analytics with Amazon Aurora and Amazon Redshift
ETLパイプラインを構築・管理する必要がありコストがかかっていたが、AuroraからRedshiftへ数秒以内にデータ統合された。
ネットワーキングとコンテンツ配信
CDN: Content Delivery Network
ユーザーに対してコンテンツを高速に配信するための分散型ネットワークシステム。DNS・オリジンサーバー・キャッシュサーバーで構成される。
DNS: Domain Name System
インターネット上でドメインからIPアドレスへ変換するシステム。ユーザーのリクエストを最も近いエッジロケーションにルーティングする役割を果たす。
キャッシュサーバ
バックエンドサーバーから受け取ったコンテンツを一時的に保存するサーバ。CloudFrontではエッジロケーションがキャッシュサーバーの役割を果たす。
バックエンドサーバ (オリジンサーバ)
アプリケーションやコンテンツの生成、処理、ストレージを行うサーバ。
ex) ELB, EC2, S3の静的ホスティング, API Gateway, オンプレ etc.
導入対象事例
- 動画など配信するコンテンツが大容量
- アクセスが集中している状況
- 物理的に離れた場所からのアクセス
CDNの動作原理
- ユーザーがコンテンツ(例:ウェブページや画像)をリクエスト。
- DNSがリクエストをCloudFrontのエッジロケーションにルーティング。
- エッジロケーションはリクエストされたコンテンツがキャッシュに存在するか確認。
- キャッシュにある場合
エッジロケーションはコンテンツをユーザーに提供。 - キャッシュにない場合
エッジロケーションはバックエンドサーバーからコンテンツを取得し、ユーザーに提供した後、将来のリクエストのためにキャッシュする。
- キャッシュにある場合
これらのプロセスを通してユーザーは自分に最も近いエッジロケーションから迅速にコンテンツを受け取る。
AWS Global Accelerator / CloudFront の違い
どちらもグローバルネットワークとエッジロケーションを利用するサービス。Global Acceleratorはオリジンまでのアクセスを最適化する。一方で、CloudFrontではできるだけエッジロケーションからレスポンスを返すようにするもの。
Global Accelerator | CloudFront | |
---|---|---|
目的 | ゲームやIoT, リアルタイムビデオなどの可用性およびパフォーマンスを向上 | マルチリージョンアプリケーションの可用性およびパフォーマンスを向上 |
対応プロトコル | TCP / UDP | HTTP / HTTPS |
キャッシュ機能 | なし | あり |
オリジン | NLB, ALB, EC2, EIP | HTTP(S)のレスポンスを返すもの |
使用例 | マルチリージョンアプリケーションやリアルタイムゲーム など | 動画配信プラットフォーム など |
勉強資料
- Amazon Route 53 について
- CloudFront / Global Acceleratorの違い
Amazon CloudFrontとAWS Global Acceleratorを使ったAWS global networkの活⽤|AWS
クラウドセキュリティにおける7 つの設計原原則
-
強力なアイデンティティ基盤の実装
最小限の権限付与の原則を実装する。役割分担を徹底し、各AWSリソースへの適切な認証を実行。長期にわたる静的な認証情報に依存しないようにする。
AWS IAM: Identity and Access Managementを利用してユーザーとリソースに権限を一時的なものとして必要最小限に付与。
-
トレーサビリティの実現
リアルタイムで使用環境に対する監視、アラートを行うことができるようにすること。ログとメトリクスの収集、自動的に調査・検証の実行を実現する。
AWS CloudTrailを使用してAPIコールを監視。
Amazon CloudWatchやAWS Configを用いたログとメトリクスの収集。
アラートの自動化と異常検知のためのAWS Lambdaなどのサービスとの統合。
-
全レイヤーでのセキュリティ適用
エンドツーエンドでセキュリティ対策を実施し、ネットワークの境界からアプリケーション、データ、オペレーティングシステムまでのすべてのコンポーネントを保護する。
エッジレベル(クラウドと外部インターネットの直接接続している部分)でAWS WAFとAWS Shieldを利用。
ネットワーク層ではセキュリティグループとネットワークACLsの設定。
アプリケーション層とデータ層ではデータベースの暗号化とIAMロールを適用。
-
セキュリティのベストプラクティスを自動化
バージョン管理されたテンプレートをコードとして定義および管理することで、より安全に、より速く、より費用対効果の高いセキュアなアーキテクチャを作成を実現する。
AWS CloudFormationやTerraformを使用したIaC: Infrastracture as a Codeの実現。
AWS CodePipelineやAWS CodeBuildを利用したCI/CD。
-
伝送中および保管中のデータ保護
データを機密性レベルに分類し、暗号化、トークン分割、アクセスコントロールなどのメカニズムを使用する。
AWS Certificate ManagerによるTLSを用いた転送データの暗号化。
保存データにはAmazon S3やEBSの暗号化オプションを利用。
キー管理にはAWS KMS: Key Management Serviceを使用。
SSL / TLS
TLS: Transport Layer Security
インターネット上でデータを暗号化し、安全に送受信するためのセキュリティプロトコル。
SSL: Secure Sockets Layerの後継として開発。
- 通信の秘匿性:データを暗号化して第三者による盗聴を防止。
- 通信の完全性:データが改ざんされていないことを保証。
- 認証:サーバー、場合によってはクライアントの身元を証明。
-
データに人の手を入れない
データを直接的にアクセス・データを手動での処理をする必要性を削減・排除するメカニズムとツールを使用する。
自動化されたデータ処理のためのAWS GlueやAmazon Data Pipelineの活用。
AWS Glue
フルマネージド型のETL: Extract, Transform, Load サービス。
データの準備とロードに必要な作業を簡素化し、DWH(データウェアハウス)とデータストア間でのデータ移動を簡潔にさせることができる。
-
セキュリティイベントに備える
組織の要件に合わせたインシデント管理および調査のポリシーとプロセスを導入、インシデントに備える。
AWS CloudWatch, CloudTrailによって監視(S3にデータ収集後)、アラートとしてAmazon SNS / SES を用いて通知と自動対応の仕組みを構築。
セキュリティ対策
セキュリティサービス一覧
ネットワークセキュリティ
-
VPC: Virtual Private Cloud (私有地のゲート)
インターネットからリソースを隔離することで外部からの不正なアクセスを防ぐファイアーウォールの機能を持つ。 -
セキュリティグループ (建物のゲート)
EC2インスタンスやRDSインスタンスなどに適用、不要なプロトコル・ポート・リソースからのアクセスを制限。 -
WAF: Web Application Firewall(部屋のゲート)
HTTP/HTTPSのトラフィックを監視し、クロスサイトスクリプティングやSQLインジェクションなどの特定のウェブベースの攻撃から保護。 -
ACL: Access Control List
通過する各パケットごとにリソースへのアクセス可否リスト。-
WebACL
WAFの一部でありアプリケーションレベルに対するHTTP/HTTPSトラフィックに対してウェブアプリケーションを標的とした攻撃から保護する。 -
Network ACL
ネットワークレベルでVPC内のサブネットへの入出力トラフィックに対して不正アクセスや不要なトラフィックを防ぐ。アプリケーションレベルの保護は提供しない。
-
WebACL
データ暗号化
-
AWS Certificate Manager
AWSにおける環境で使用するSSL/TLS証明書を管理するサービス。 -
KMS: Key Management Service
データの暗号化する各種鍵(CMK, CDK, AWSリソース)の生成と管理。 -
Secrets Manager
暗号化後のキー・APIキー・認証情報を管理。
ユーザー認証とアクセス管理
-
IAM: Identity and Access Management
個々のAWSリソースへのアクセスを制御。 -
MFA: Multi-Factor Authentication
マルチファクタ認証を設定しセキュリティ強化。
モニタリングとロギング
-
CloudTrail
IAMの操作履歴の監視、ログ情報を記録。いつ誰が何をどのように操作したかを記録。 -
CloudWatch
リソースとアプリケーションの監視、異常時アラートを設定。
インシデント対応
-
GuardDuty
ユーザの動作や通知をモニタリング、潜在的なセキュリティ脅威検出サービス。 -
AWS Shield:
L3、L4、L7を対象としたDDoS攻撃から保護とサポートサービスを提供。
コンプライアンスと監査
-
AWS Config
コンプライアンスルールの側面からリソースの設定を評価、監査、審査することができるサービス。
AWSの入門本・試験概要本等を終えた後、問題集を軸にわからないサービス・問題等では下記の資料を参考にし理解を深めるということを繰り返していました。
情報処理 - 入門本
AWS / Cloudについて初めての方は以下の本がおすすめです。理解が深い方は省略可です。
本が苦手な方も無料教材(Youtube・参考サイト)として下記の項目内容では沢山あると思います。
-
インターネットはなぜ繋がるのか
ネットワークはなぜつながるのか 第2版 -
TCP/IPについて
図解入門TCP/IP 仕組み・動作が見てわかる -
クラウド / AWSとは
AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解) -
AWS入門ハンズオン
Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラ
試験概要・サービス紹介本
試験概要・AWSのサービスについて勉強しました。しかし、これ一冊のみでは問題演習として心細い印象です。
AWS・クラウドを使ったことがない人はサービス間の関連や図解が多い入門本を買っても良いと思います🙆♂️
AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第3版 (AWS認定資格試験テキスト)
目的別の問題演習 ← おすすめ
オンプレ系の問題も多く解説も良かったです。AWSの構成図を思い浮かべ問題解決できるようにするために、可能な限り図解での解説がある問題集をおすすめします。
ハンズオン+模試 ← おすすめ
これから始まると量に圧倒されますが、動画かつ図解が多く実際に手を動かして学べるので非常に良かったです。模擬試験は実際の問題よりも難しい印象です。
結果
無事にAWS Certified Solutions Architect - Associate 試験 (SAA-C03) 合格しました!☺️
受験目的
- AWSアーキテクチャに関する体系的な知識
- 高可用性・耐障害性を持つアーキテクチャへの理解
- セキュリティ分野における優位なアーキテクチャへの理解
学習内容[1]
- コンピューティング、ネットワーク、ストレージ、データベースのAWSサービス、および AWS のデプロイと管理サービスに関する知識およびスキル
- AWS 上でのワークロードのデプロイ、管理、そしてオペレーション、およびセキュリティコントロールとコンプライアンス要件の実装に関する知識およびスキル
- AWS マネジメントコンソール、および AWS コマンドラインインターフェース (CLI) の使用に関する知識とスキル AWS Well-Architected フレームワーク、AWS ネットワーク、セキュリティサービス、AWS グローバルインフラストラクチャに関する理解
- 提示された技術的要件を満たす AWS のサービスを特定し、AWS ベースのアプリケーションの技術的要件を定義する能力