· 19 分で読める · 9,641 文字
AWS Solutions Architect試験合格への実践的な学習ロードマップ
AWS Solutions Architect試験(Associate/Professional)の合格には、単なる知識暗記ではなく、実際のAWSサービス設計経験が不可欠です。本記事では、3ヶ月で確実に合格するための学習戦略、試験に出題される頻出サービスの深い理解、そして実務で即座に活用できるアーキテクチャ設計の原則を解説します。
AWS Solutions Architect試験の全体像と出題傾向
AWS Solutions Architect試験は、単なる選択肢問題ではなく、「どのようなアーキテクチャが最適か」という意思決定を問う試験です。AssociateレベルとProfessionalレベルでは難易度が大きく異なり、適切な準備方法も変わります。
AssociateレベルとProfessionalレベルの違い
実務経験1年未満の学習者はAssociateから始めることを強く推奨します。筆者の経験上、いきなりProfessionalに挑戦すると70%以上が落ちます。Associateは「サービスの基本的な使い分け」、Professionalは「複数サービスの組み合わせによるエンタープライズ設計」が焦点です。
flowchart TD
A[AWS Solutions Architect試験] --> B[Associate Level]
A --> C[Professional Level]
B --> B1["学習期間: 1-2ヶ月
難易度: 中
出題: EC2/S3/RDS基礎
対象: 初学者"]
C --> C1["学習期間: 3-4ヶ月
難易度: 高
出題: マルチリージョン設計
対象: 実務経験2年以上"]
B1 --> D[Associateに合格]
D --> E{進めるか?}
E -->|Yes| C1
E -->|No| F[実務経験を積む]
学習段階別・具体的な対策方法
第1段階: AWSサービスの基礎理解(4週間)
「なぜそのサービスを選ぶのか」という根拠を理解することが最重要です。単に「EC2は仮想サーバー」と覚えるのではなく、「スケーラビリティが必要な場面ではなぜEC2ではなくLambdaを検討すべきか」という比較思考を身につけてください。
実務では以下のサービス間の選択がよく問われます:
- コンピュート: EC2 vs Lambda vs Fargate vs Lightsail
- ストレージ: EBS vs EFS vs S3 vs Glacier
- データベース: RDS vs DynamoDB vs Redshift vs Neptune
- キャッシング: ElastiCache vs DAX vs CloudFront
各選択の判断基準を整理したマトリックスを作成し、毎日15分確認することで、試験での意思決定が高速化します。筆者は以下の3つの質問で判断基準としています:
# サービス選択の3つの判断基準
1. スケーラビリティ要件
- 自動スケーリング必須か? → Lambda / Auto Scaling
- 固定リソースで十分か? → Lightsail
2. コスト効率
- 24時間稼働が必須か? → EC2(オンデマンド)
- 使用量が不規則か? → Lambda(従量課金)
3. 管理負荷
- インフラ管理したくない → Fargate / Lambda
- カスタマイズ必要 → EC2
第2段階: アーキテクチャ設計パターンの習得(3週間)
試験では「顧客の要件を満たす最適なアーキテクチャを選ぶ」という出題形式が大半です。以下の7つの標準パターンを理解し、実装できるようになれば、試験問題の70%以上に対応できます。
パターン1: 高可用性Webアプリケーション
graph LR
A["ユーザー"] -->|Route 53| B["CloudFront"]
B --> C["ALB"]
C -->|AZ-A| D1["EC2 Instance A1"]
C -->|AZ-B| D2["EC2 Instance B1"]
D1 --> E["RDS Multi-AZ"]
D2 --> E
D1 --> F["ElastiCache"]
D2 --> F
style C fill:#ff9999
style E fill:#99ccff
style F fill:#99ff99
この構成が活躍する場面: eコマースサイト、SaaS型アプリケーション、ユーザー認証が必要なWebサービス
特に重要なポイント:
- ALB(Application Load Balancer)はHTTP/HTTPSのパス・ホストベースルーティング対応
- RDS Multi-AZは同期レプリケーション(RPO=0)で自動フェイルオーバー
- ElastiCacheはセッション情報キャッシュに有効
パターン2: マイクロサービス+イベント駆動
graph LR
A["API Gateway"] --> B1["Lambda: Auth"]
A --> B2["Lambda: Order"]
A --> B3["Lambda: Payment"]
B1 --> C["EventBridge"]
B2 --> C
B3 --> C
C -->|ユーザー登録| D["SQS"]
C -->|注文完了| E["SNS"]
D --> F["Lambda: EmailSender"]
E --> G["Lambda: SMSSender"]
E --> H["DynamoDB Streams"]
この構成が活躍する場面: 非同期処理が多い業務、複数マイクロサービス間の疎結合が必要な大規模システム
パターン3: ビッグデータ分析パイプライン
graph LR
A["S3 Data Lake"] -->|Glue Jobs| B["ETL処理"]
B --> C["S3 Processed Data"]
C -->|Athena| D["SQL分析"]
C -->|Redshift| E["DW分析"]
E --> F["QuickSight"]
D --> F
第3段階: 過去問演習と弱点補強(2週間)
AWSが提供する公式の練習問題(AWS認定資格ページ)に加えて、Udemy・A Cloud Guru・LinuxAcademyなどの問題集で最低200問以上解くことが必須です。
重要なのは「正解した問題」よりも「間違った問題」です。間違った問題について、以下の3点を毎回記録してください:
# 間違い分析テンプレート
問題ID: 123
出題サービス: RDS, Aurora, DynamoDB
間違えた理由:
- AuroraのRead Replicaはリージョン間で自動フェイルオーバー非対応
- 正解は「Global Database」の使用
類似の間違いやすいポイント:
- RDS Multi-AZ: 同一AZ内のフェイルオーバーのみ
- Aurora Global Database: クロスリージョン対応、最大5秒の遅延
- DynamoDB Global Tables: 複数リージョンの双方向レプリケーション
試験で頻出する5つのサービス深掘り解説
1. VPC(Virtual Private Cloud)- ネットワークの理解が合格の第一歩
試験ではVPCが必ず出題されます。特に以下の設計判断が問われます:
- パブリックサブネットとプライベートサブネットの使い分け
- NAT Gatewayが必要な条件の判定
- VPN接続とAWS Direct Connect(専用線)の選択基準
実務では、セキュリティグループ(ステートフル)とネットワークACL(ステートレス)の違いが明確に理解できていないと、ネットワークの疎通トラブルが頻発します。以下の実装例を試してください:
# セキュリティグループの設定例(AWS CLI)
aws ec2 authorize-security-group-ingress \
--group-id sg-0123456789abcdef0 \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0 \
--region ap-northeast-1
# ネットワークACLの設定例(インバウンド)
# ルール番号 | タイプ | プロトコル | ポート | ソース | 許可/拒否
# 100 | HTTP | TCP | 80 | 0.0.0.0/0 | 許可
# 110 | HTTPS| TCP | 443 | 0.0.0.0/0 | 許可
# 120 | SSH | TCP | 22 | 10.0.0.0/8| 許可
# * | すべて| すべて | すべて | 0.0.0.0/0 | 拒否
2. IAM(Identity and Access Management)- セキュリティの要
IAMの出題範囲は「ユーザー管理」から「クロスアカウントアクセス」まで広いです。試験では以下の3つのシナリオがよく出題されます:
シナリオA: 複数のAWSアカウント間でのリソースアクセス
# アカウントAのロール設定(アカウントB用)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-B-ID:role/CrossAccountRole"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "unique-external-id"
}
}
}
]
}
シナリオB: 一時的な認証情報の発行(STS: Security Token Service)
# AWS CLIで一時認証情報を取得
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/MyRole \
--role-session-name my-session \
--duration-seconds 3600
# 結果から Credentials を抽出して環境変数に設定
export AWS_ACCESS_KEY_ID=ASIAJ...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
3. S3(Simple Storage Service)- ストレージの中核
S3は単なる「ファイル保管場所」ではなく、複数のユースケースに対応する多機能サービスです。試験では以下の機能が出題されやすいです:
- アクセス制御: バケットポリシー vs ACL
- ストレージクラス: Standard vs IA vs Glacier vs Deep Archive
- バージョニング: 意図しない上書き防止
- ライフサイクルポリシー: 自動的にコスト最適化
- CloudFront連携: グローバルコンテンツ配信
実務では、ストレージクラスの選択によるコスト差が月数十万円単位になります。筆者が実装した例:
# S3ライフサイクルポリシーの実装例
{
"Rules": [
{
"Id": "OptimizeCost",
"Status": "Enabled",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA" # 30日後に低頻度アクセスクラスへ
},
{
"Days": 90,
"StorageClass": "GLACIER" # 90日後にアーカイブクラスへ
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE" # 1年後に深層アーカイブへ
}
],
"Expiration": {
"Days": 2555 # 7年後に削除
}
}
]
}
# コスト比較(月額、1TBあたり)
# Standard: $23.55
# Standard-IA: $12.80 (45%削減)
# Glacier: $4.00 (83%削減)
# Deep Archive: $1.00 (96%削減)
4. RDS(Relational Database Service)- データベース運用の自動化
RDSは「マネージドデータベース」という特性上、試験では「AWS側で自動で対応してくれること」と「手動で対応する必要があること」の区別が問われます。
graph TD
A["RDS構成検討"] --> B{高可用性
必須か?}
B -->|Yes| C{クロスリージョン
対応必須か?}
B -->|No| D["Single-AZ
シンプル構成"]
C -->|Yes| E["Aurora Global Database
最大5秒遅延"]
C -->|No| F["Multi-AZ
同期レプリケーション"]
D --> G["コスト最小
ただし可用性低"]
E --> H["クロスリージョン対応
RPO≒0"]
F --> I["自動フェイルオーバー
ダウンタイム<1分"]
重要な判断ポイント:
- Multi-AZ: RDS標準機能、同一リージョン内の別AZへの同期レプリケーション
- Read Replica: スケールアップ用、非同期レプリケーション、手動フェイルオーバー
- Aurora Global Database: リージョン間での自動レプリケーション、最大5秒の遅延、災害復旧用
5. Lambda - サーバーレス設計のポイント
Lambdaは「コードを実行するだけ」と思われることが多いですが、試験では以下の制約を理解する必要があります:
# Lambda の重要な制約と考慮事項
制約1: 実行時間の上限
- 最大15分(900秒)
- 長時間処理はStep Functionsで複数Lambdaに分割
制約2: コールドスタート
- 初回呼び出しは1-2秒の遅延
- 対策: プロビジョニング済みコンカレンシー、Lambda SnapStart
制約3: メモリとCPU
- 128MB~10,240MB
- CPUは自動割り当て(メモリ量に比例)
制約4: ストレージ
- 一時ストレージ(/tmp)は最大10GB
- 永続化はS3またはDynamoDB
実装例: 大容量ファイル処理の分割
S3トリガー → Lambda-A(分割) → SQS → Lambda-B(処理) → 結果をDynamoDBに保存
試験で頻出するハマりポイント3選
ハマりポイント1: VPC Endpointの存在を忘れる
「EC2からS3へアクセスする際、NAT Gatewayが必須」と思っている方が多いですが、VPC Endpointを使えばNAT Gatewayなしで直接アクセス可能です。試験では「コスト最適化」という条件でこの選択が出題されます。
# 間違った設計: コスト過剰
EC2(プライベートサブネット)
↓
NAT Gateway(月額$30+通信費)
↓
S3
# 正解: コスト最適化
EC2(プライベートサブネット)
↓
VPC Endpoint Gateway(無料)
↓
S3
ハマりポイント2: DynamoDBのスケーラビリティを誤解する
「DynamoDBは無限スケール」という情報が広がっていますが、実際には「パーティションキーの設計が不適切だと、ホットパーティションが発生してスケーラビリティが失われる」という制限があります。
# 悪い例: ホットパーティション発生
パーティションキー: "Country"(日本が90%のトラフィック)
→ 日本のパーティションに集中
→ スケーリング効果なし
# 良い例: 均等分散
パーティションキー: "UserId"(ユーザーIDごと)
→ 複数パーティションに分散
→ 効率的なスケーリング
ハマりポイント3: CloudFrontキャッシュの動作を理解していない
「CloudFrontを使えば全員に同じコンテンツを配信」と思いがちですが、クエリストリングやクッキーが異なるとキャッシュキーが変わります。試験では「ユーザーごとに異なるコンテンツを配信」という条件下での判断が出題されます。
# CloudFront キャッシュキーの構成
URLが同じでも以下が異なるとキャッシュ別
- クエリストリング: ?user_id=123 vs ?user_id=456
- クッキー: session_id=AAA vs session_id=BBB
- HTTPヘッダ: Accept-Language: ja vs en
対策: オリジンシールドの使用
CloudFront → Origin Shield(キャッシュレイヤー)→ オリジン
複数CDNエッジからの同じコンテンツ要求をOrigin Shield で統合
模擬試験と本番試験の対策の違い
模擬試験で70%以上得点できていても、本番試験では落ちることがあります。理由は「本番試験は時間管理が厳しい」という点です。以下の対策を実施してください:
- 時間配分: 65問を130分(1問2分)で解く。最後に15分の見直し時間を確保
- 難問をスキップ: 3分考えても分からない問題は後回しに(試験ソフトにマーク機能あり)
- 選択肢の消去法: 「最適な選択肢」ではなく「最悪な選択肢」から除外
試験合格後、実務で活かすための実装演習
試験合格は出発点です。以下の実装演習を試験合格後1ヶ月以内に行うことで、実務での即戦力化が実現します。
演習1: マルチリージョン高可用性WebアプリケーションのIaC実装
# Terraform による Infrastructure as Code(IaC)例
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
alias = "primary"
region = "ap-northeast-1"
}
provider "aws" {
alias = "secondary"
region = "us-east-1"
}
# Primary Region: EC2 + RDS Multi-AZ
resource "aws_instance" "web_primary" {
provider = aws.primary
ami = data.aws_ami.ubuntu.id
instance_type = "t3.medium"
tags = {
Name = "web-primary-ap-northeast-1"
}
}
resource "aws_db_instance" "primary" {
provider = aws.primary
identifier = "mydb-primary"
engine = "mysql"
engine_version = "8.0"
instance_class = "db.t3.micro"
allocated_storage = 20
multi_az = true # 高可用性有効
skip_final_snapshot = false
}
# Secondary Region: Read Replica
resource "aws_db_instance" "secondary" {
provider = aws.secondary
replicate_source_db = aws_db_instance.primary.identifier
instance_class = "db.t3.micro"
depends_on = [aws_db_instance.primary]
}
演習2: ServerlessアプリケーションのSAM(Serverless Application Model)デプロイ
# AWS SAM テンプレート例(template.yaml)
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Parameters:
Environment:
Type: String
Default: dev
AllowedValues:
- dev
- staging
- prod
Globals:
Function:
Timeout: 30
Runtime: python3.11
Environment:
Variables:
ENV: !Ref Environment
TABLE_NAME: !Ref DynamoDBTable
Resources:
ApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: !Ref Environment
OrderFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: !Sub 'order-${Environment}'
CodeUri: src/
Handler: order.lambda_handler
Runtime: python3.11
Events:
CreateOrder:
Type: Api
Properties:
RestApiId: !Ref ApiGateway
Path: /orders
Method: POST
Policies:
- DynamoDBCrudPolicy:
TableName: !Ref DynamoDBTable
- SQSSendMessagePolicy:
QueueName: !GetAtt OrderQueue.QueueName
DynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: !Sub 'orders-${Environment}'
BillingMode: PAY_PER_REQUEST # オンデマンド課金
AttributeDefinitions:
- AttributeName: OrderId
AttributeType: S
- AttributeName: CreatedAt
AttributeType: S
KeySchema:
- AttributeName: OrderId
KeyType: HASH
- AttributeName: CreatedAt
KeyType: RANGE
OrderQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub 'orders-${Environment}'
VisibilityTimeout: 300
# デプロイコマンド
# sam build
# sam deploy --guided
AWS公式リソースの活用方法
試験合格には、AWSの公式リソースの正確な理解が不可欠です。以下のリソースを活用してください:
- AWS Solutions Architect Associate公式ガイド - 試験トピックの詳細説明
- AWSリファレンスアーキテクチャ図 - 実際の設計パターン
- AWS料金計算ツール - コスト見積もりの実装
よくある質問
A: 可能ですが、学習効率を最大化する必要があります。筆者の経験上、「講座動画を見て、その日のうちに手で過去問を3問解く」というサイクルを毎日繰り返すことで、1日30分でも3ヶ月で合格レベルに到達します。重要なのは「継続性」です。
A: 実務経験に応じて判断してください。Associateの知識だけではProfessionalの60%以上の問題に対応できません。最低2年の実務経験か、Associateの知識を深掘りした3-4ヶ月の学習期間が必要です。給与・キャリア面でAssociateでも十分な場合は、実務経験を積むことをお勧めします。
A: 試験にはCloudFormationが出題されるため、CloudFormationの基本理解は必須です。ただし、実務ではTerraformのほうが複数クラウドに対応でき、使いやすいというメリットがあります。試験対策ではCloudFormation、実装ではTerraformという使い分けが現実的です。
A: AWS認定試験の受験料は150ドル(Associateの場合)です。14日以内の再受験は禁止、2回目以降の再受験は14日間の待機期間が必要です。筆者の推奨は「初回合格までは1回で、初回不合格なら最低2週間のギャップを設けて再度対策」です。
まとめ
おすすめAWSリソース
- AWS Documentation Detailed specs and best practices for every AWS service.
- AWS Skill Builder Free official learning platform. Great for certification prep.
- AWS Pricing Calculator Official tool for estimating costs before deployment.