AWS Certified Solutions Architect - Professional の勉強

これから資格取得に向けて学習するため、学習途中でまとめた情報をブログでまとめていきます。

1. 2024/11/9 学習内容

AWS Skill Builderの以下のコースで学習

Exam Prep Standard Course: AWS Certified Solutions Architect - Professional (SAP-C02) (Japanese) 日本語実写

1.1. ネットワーク接続戦略の設計1

IAMとVPCについて

IAMロールとVPCは、実際にはAWSアカウント間で共有することが可能です:

  1. IAMロールの共有:
  • クロスアカウントIAMロールを作成し、信頼ポリシーで別のAWSアカウントを指定できます
    • 開発アカウントのIAMロールでは、直接他のアカウントと共有することはできない
  • 例: アカウントAのロールをアカウントBのユーザーが引き受けることが可能
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT-B-ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
  1. VPCの共有:
  • AWS Resource Access Manager (RAM) を使用してVPCをアカウント間で共有できます
  • 共有できるVPCリソース:
    • サブネット
    • Transit Gateway
    • Route53 Resolver Rules
    • その他のVPC関連リソース

トランジットゲートウェイは、複数のVPC間やオンプレミス環境との接続に使用されますが、IAMロールやVPCの共有に必須というわけではありません。

これらの機能により、組織内での柔軟なリソース共有とアクセス制御が可能になります。

1.2. ネットワークの接続戦略の設計2

VPCフローログとAmazon Inspector、Elastic Network Interfaceについて

  1. トラフィックキャプチャの制限:
  • VPCフローログ:トラフィックの統計情報のみ(送信元、送信先、ポートなど)
  • Amazon Inspector:脆弱性スキャンが主目的で、パケットキャプチャ機能はない
  1. トラフィックミラーリングの正しい方法:
1
送信元 → トラフィックミラー(ENI) → モニタリング用EC2

設定手順:

  1. トラフィックミラーターゲットの作成

    • モニタリング用EC2のENIを指定
  2. トラフィックミラーフィルターの作成

    • プロトコル
    • ポート
    • IPアドレス範囲などを指定可能
  3. トラフィックミラーセッションの作成

    • 監視したい送信元ENIを指定
    • 作成したターゲットとフィルターを関連付け

モニタリング用EC2では:

  • tcpdump
  • Wireshark などのパケットキャプチャツールを使用して詳細な分析が可能

これにより、実際のネットワークトラフィックの内容をキャプチャし分析することができます。

1.3. 信頼性と回復力に優れたアーキテクチャの設計

AWS Data Lifecycle Manager (DLM):

  • デフォルトで同じリージョンにバックアップ
  • EBSスナップショットとAMIの両方をサポート

AWS Backup:

  • タグベースのバックアップ管理が可能
  • デフォルトのバックアップ保管庫は同じリージョン
  • 以下のリソースをサポート:
    • EC2インスタンス
    • EBSボリューム
    • RDSデータベース
    • Aurora クラスター
    • DynamoDB テーブル
    • EFSファイルシステム
    • FSx ファイルシステム
    • Storage Gateway ボリューム
    • DocumentDB
    • Neptune

2. 2024/11/13 学習内容

AWS Skill Builderの以下のコースで学習

Exam Prep Standard Course: AWS Certified Solutions Architect - Professional (SAP-C02) (Japanese) 日本語実写

2.1. ビジネス要件を満たす導入戦略の設計

CloudFrontとLambda@Edgeを使用したトラフィックルーティングについて

Lambda@Edge + CloudFrontでできること:

  1. リクエストの制御
  • ビューワーリクエスト
  • オリジンリクエスト
  • オリジンレスポンス
  • ビューワーレスポンス の4つのポイントで処理可能
  1. セッション維持とv1/v2ルーティングの例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Lambda@Edge (Viewer Request)
exports.handler = async (event, context) => {
    const request = event.Records[0].cf.request;
    const headers = request.headers;
    
    // Cookieからバージョン情報を取得
    const cookie = headers.cookie || [];
    const versionCookie = cookie.find(c => c.value.includes('version='));
    
    if (versionCookie) {
        // 既存セッションのユーザーは元のバージョンへ
        if (versionCookie.value.includes('v1')) {
            request.origin.custom.path = '/v1';
        } else {
            request.origin.custom.path = '/v2';
        }
    } else {
        // 新規ユーザーは v2 へ
        request.origin.custom.path = '/v2';
    }
    
    return request;
}
  1. CloudFrontの設定:
  • 複数のオリジンの設定
  • キャッシュ動作の設定
  • Lambda@Edgeの関連付け

利点:

  • エッジでの高速な判断が可能
  • グローバルな展開
  • 既存セッションの維持
  • トラフィックの段階的な移行が可能

注意点:

  • Lambda@Edgeには実行時間制限がある
  • 関数のサイズ制限がある
  • リージョン制限がある(us-east-1でのみ作成可能)

2.2. 事業の継続性を確保するソリューションの設計

S3の既存データと新規データの別リージョンへの複製方法

  1. 既存データの複製: S3バッチレプリケーション
  • バッチ操作ジョブを作成
  • 既存オブジェクトを一括で別リージョンに複製
  • マニフェストファイルで対象オブジェクトを指定
  • 失敗したジョブの再試行が可能
  1. 新規データの複製: S3レプリケーション(CRR: Cross-Region Replication)
  • バケットレベルでレプリケーションルールを設定
  • 新しくアップロードされたオブジェクトを自動複製
  • バージョニングの有効化が必要

設定手順:

1
2
3
4
1. 送信元・送信先バケットでバージョニングを有効化
2. IAMロールの設定(S3レプリケーション用)
3. レプリケーションルールの作成
4. バッチレプリケーションジョブで既存データを複製

注意点:

  • 暗号化されたオブジェクトは追加設定が必要
  • レプリケーションにはコストが発生
  • バケットのバージョニングは必須
  • 削除マーカーのレプリケーションは別途設定が必要

2.3. パフォーマンス目標を満たすソリューションの設計

最小レイテンシーでコンテンツを提供するためのAWSベストプラクティス

  1. CloudFrontの設定
  • エッジロケーションの活用
  • キャッシュ最適化設定
1
2
3
4
5
6
7
# キャッシュ戦略
- TTLの最適化
  - 動的コンテンツ: 0秒
  - 静的コンテンツ: 長めのTTL
- Originシールドの有効化
  - 二次キャッシュ層の追加
  - オリジンへの負荷軽減
  1. Route 53の設定
  • レイテンシーベースルーティング
  • ヘルスチェック設定
1
2
3
4
# ルーティングポリシー
- プライマリリージョン設定
- フェイルオーバー設定
- 複数リージョンの組み合わせ
  1. 地理的な最適化
1
2
3
4
ユーザー
→ 最寄りのCloudFrontエッジロケーション
→ Route 53で最適なリージョンを選択
→ 最寄りのAWSリージョン
  1. 追加の最適化策:
  • Lambda@Edgeの活用
  • CloudFront Functions
  • リージョナルエッジキャッシュ
  • 適切なオリジンの選択(S3, ALB等)

このような構成により、グローバルでの低レイテンシーを実現できる