Closed14

AWS SAA-C03

Reiji KumeReiji Kume

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のメリット

  1. 効率的なIPアドレスの割り当て: クラスベースのIPアドレス割り当てでは、一定の大きさのブロックしか割り当てることができなかったが、CIDRでは必要な大きさのブロックを柔軟に割り当てることができる。
  2. ルーティングの簡素化: CIDRの採用により、ルーティングテーブルのエントリ数が大幅に減少した。これにより、ルータのメモリ使用量やCPU負荷が低減し、インターネットのスケーラビリティが向上した。
  3. アドレスの再利用: CIDRの導入により、未使用のIPアドレスブロックを再利用することが容易になりました。

CIDRの考え方

  • CIDRでは、IPアドレスのビット列をネットワーク部分とホスト部分に分ける。
  • プレフィックス長(/の後の数字)は、ネットワーク部分のビット数を示す。
  • プレフィックス長が長いほど、ネットワークは小さく、利用可能なホストアドレスの数も少なくなる。
  • 例: /24は、256のアドレス(2^8)を持つネットワークを示し、/25は128のアドレス(2^7)を持つネットワークを示す。

CIDR
インターネットの成長に伴うアドレス割り当ての問題を解決するためのキーとなる技術であり、現代のインターネットアーキテクチャにおいて重要な役割を果たす。

Reiji KumeReiji Kume

OSI参照モデルとロードバランサの関係
AWS Elastic Load Balancer

  1. Classic Load Balancer (CLB)
    • L4とL7での負荷分散をサポート。
    • AWSの初期のロードバランサ。

    ロードバランサ
    多くのユーザーからのリクエストを複数のサーバーにうまく分散するサービス。これにより、1つのサーバーに負荷が集中することを防ぎ、ウェブサイトやアプリケーションの動作を安定させる。

  2. Application Load Balancer (ALB)
    • L7レイヤーで動作し、HTTP/HTTPSトラフィックのルーティングをサポート。
    • パスベースやホストベースのルーティング、HTTPヘッダーやクエリパラメータを使用した条件付きルールを利用可能。

    L7ロードバランサ
    具体的な内容やデータを扱う部分で働く。プロトコル上でのリクエストの具体的な内容からトラフィックを適切なサーバーに送る。例として、ユーザーがウェブサイトの特定のページを要求すると、そのページに最適なサーバーにリクエストを送るなどが挙げられる。

  3. Network Load Balancer (NLB)
    • L4レイヤーで動作し、TCP, UDP,およびTLSトラフィックのルーティングをサポート。
    • 高スループット、低遅延の性能が求められる場面や、静的またはElastic IPアドレスが必要な場面で使用される。

    L4ロードバランサ
    通信を制御する基盤的な部分で働く。IPアドレスやポート番号といった基本的な情報を見て、トラフィックをどれが送信するのに最適なサーバーか決める。

OSI(Open Systems Interconnection)参照モデル

ネットワーク内の異なる層を定義するフレームワークであり、7つの層から成り立っている。

  1. 物理層 (Layer 1)
    • データリンクを通じてビットの伝送を行う。
    • ケーブルやスイッチがこの層で動作。
  2. データリンク層 (Layer 2)
    • フレームの伝送とエラーの検出。
    • MACアドレスを使用して通信。
    • スイッチやブリッジがこの層で動作。
  3. ネットワーク層 (Layer 3)
    • IPアドレスを使用してパケットのルーティング。
    • ルーターがこの層で動作。
  4. トランスポート層 (Layer 4)
    • ポート番号を使用してセッションの確立・管理。
    • TCP/UDPなどのプロトコルがこの層で動作。
    • L4ロードバランサ:Network Load Balancer(NLB)はこの層で動作。
  5. セッション層 (Layer 5)
    • 2台のデバイス間のセッション確立、維持。
  6. プレゼンテーション層 (Layer 6)
    • データ形式の変換や暗号化など、アプリケーション層とトランスポート層の間の変換。
  7. アプリケーション層 (Layer 7)
    • エンドユーザーと直接対話するアプリケーションが動作。
    • L7ロードバランサ: Application Load Balancer(ALB)がこの層で動作。
Reiji KumeReiji Kume

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に配置するなどが挙げられる。これにサービス全停止が避けられる。
Reiji KumeReiji Kume

AWS ECS - Fargate / Lambda
+α AWS Codepipeline - CI/CD

Reiji KumeReiji Kume

キャッシュサービス

  • Amazon ElastiCache
    インメモリデータストアキャッシュサービス。主にRedisやMemcachedといったキャッシュ技術を提供しており、高速なデータアクセスを実現。

  • Amazon CloudFront
    CDN(Content Delivery Network)サービスで、ユーザーに近い位置にコンテンツをキャッシュすることでウェブページや動画、APIの応答時間を短縮。

キャッシュについて
一度取得または計算されたデータを高速にアクセスできる場所に一時的に保存しておく技術や手法。
キャッシュを使用する目的
再度同じデータが必要となった際に、オリジナルのソース(例:ディスク、遠隔サーバなど)からデータを取得するよりも速やかにデータにアクセスできるようにすること。

AWS キャッシュサービスの用途

Webアプリケーションの高速化

  1. Webアプリケーションはデータベースから頻繁にデータを取得するが、その都度、データベースへのクエリが遅延を引き起こすことがある。
  2. Amazon ElastiCache (RedisやMemcached)を導入。
  3. よくアクセスされるデータや結果をElastiCacheに保存。
  4. ユーザーからの次回のリクエストでは、先ずElastiCacheを確認し、そこにデータがあればデータベースへのアクセスを省略して高速にデータを返す。

グローバルコンテンツ配信

  1. 世界中からのユーザーがあるWebサイトやアプリケーションにアクセス。
  2. Amazon CloudFrontを導入し、Webサイトのコンテンツ(画像、スクリプト、スタイルシートなど)をグローバルに分散されたエッジロケーションにキャッシュ。
  3. ユーザーがコンテンツにアクセスする際、最も近いエッジロケーションからキャッシュされたコンテンツを高速に取得。

参考
キャッシュの概要 | AWS

Reiji KumeReiji Kume

ストレージサービス

  • ブロックストレージ : EBS
    HDDやSSDに似ている。特定のEC2インスタンスにアタッチして使用。
  • ファイルストレージ : EFS・Fsx
    複数のサーバーやインスタンスから同時にアクセスできる、共有ファイルシステムを提供します。一般的なファイルとして保存・共有するのに適する。
  • オブジェクトストレージ : S3・S3Gracier
    データをオブジェクトとして保存。各オブジェクトには一意のIDが割り当てられ、そのIDを使ってデータにアクセス。大量のデータを保存するのに適する。S3 Glacierは長期間のアーカイブ保存に特化。

参考
30分で理解できるAWS ストレージサービス | AWS

Reiji KumeReiji Kume

マルチAZ構成

1つのリージョン内の2つのAZ(: アベイラビリティゾーン)にDBインスタンスをそれぞれ配置する構成。

  • メリット
    • 障害やメンテナンス時のダウンタイムを短縮
    • 高可用性とデータ耐久性。
  • デメリット
    • 書き込み速度が遅くなる
    • フェイルオーバーに60-120秒

フェイルオーバー
稼働中のシステムで問題が生じてシステム・サーバーが停止してしまった際、自動的に待機システムに切り替える仕組み

リードレプリカ

マスターDBの非同期レプリケーションされた参照専用DBインスタンス

  • 読み込みのスケーラビリティ
    読み取り要求のワークロードを分散、マスターDBの読み取りパフォーマンスを向上させる。
  • データベースのバックアップ
    マスターDBから独立してバックアップを取得するための追加のデータソースとして利用。
Reiji KumeReiji Kume

データベースサービス

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へ数秒以内にデータ統合された。

参考
Amazon Aurora, Redshift, DynamoDBのワークロード別性能を比較する - Qiita

Reiji KumeReiji Kume

ネットワーキングとコンテンツ配信

CDN: Content Delivery Network
ユーザーに対してコンテンツを高速に配信するための分散型ネットワークシステム。DNS・オリジンサーバー・キャッシュサーバーで構成される。

DNS: Domain Name System
インターネット上でドメインからIPアドレスへ変換するシステム。ユーザーのリクエストを最も近いエッジロケーションにルーティングする役割を果たす。

キャッシュサーバ
バックエンドサーバーから受け取ったコンテンツを一時的に保存するサーバ。CloudFrontではエッジロケーションがキャッシュサーバーの役割を果たす。

バックエンドサーバ (オリジンサーバ)
アプリケーションやコンテンツの生成、処理、ストレージを行うサーバ。
ex) ELB, EC2, S3の静的ホスティング, API Gateway, オンプレ etc.

導入対象事例

  • 動画など配信するコンテンツが大容量
  • アクセスが集中している状況
  • 物理的に離れた場所からのアクセス

CDNの動作原理

  1. ユーザーがコンテンツ(例:ウェブページや画像)をリクエスト。
  2. DNSがリクエストをCloudFrontのエッジロケーションにルーティング。
  3. エッジロケーションはリクエストされたコンテンツがキャッシュに存在するか確認。
    • キャッシュにある場合
      エッジロケーションはコンテンツをユーザーに提供。
    • キャッシュにない場合
      エッジロケーションはバックエンドサーバーからコンテンツを取得し、ユーザーに提供した後、将来のリクエストのためにキャッシュする。

これらのプロセスを通してユーザーは自分に最も近いエッジロケーションから迅速にコンテンツを受け取る。

Reiji KumeReiji Kume

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

Reiji KumeReiji Kume

クラウドセキュリティにおける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内のサブネットへの入出力トラフィックに対して不正アクセスや不要なトラフィックを防ぐ。アプリケーションレベルの保護は提供しない。

データ暗号化

  • 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
    コンプライアンスルールの側面からリソースの設定を評価、監査、審査することができるサービス。
Reiji KumeReiji Kume

AWSの入門本・試験概要本等を終えた後、問題集を軸にわからないサービス・問題等では下記の資料を参考にし理解を深めるということを繰り返していました。

情報処理 - 入門本

AWS / Cloudについて初めての方は以下の本がおすすめです。理解が深い方は省略可です。
本が苦手な方も無料教材(Youtube・参考サイト)として下記の項目内容では沢山あると思います。

試験概要・サービス紹介本

試験概要・AWSのサービスについて勉強しました。しかし、これ一冊のみでは問題演習として心細い印象です。
AWS・クラウドを使ったことがない人はサービス間の関連や図解が多い入門本を買っても良いと思います🙆‍♂️

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第3版 (AWS認定資格試験テキスト)

目的別の問題演習 ← おすすめ

オンプレ系の問題も多く解説も良かったです。AWSの構成図を思い浮かべ問題解決できるようにするために、可能な限り図解での解説がある問題集をおすすめします。

AWS認定ソリューションアーキテクト-アソシエイト問題集

ハンズオン+模試 ← おすすめ

これから始まると量に圧倒されますが、動画かつ図解が多く実際に手を動かして学べるので非常に良かったです。模擬試験は実際の問題よりも難しい印象です。

【SAA-C03版】これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座

+α おすすめ資料
Reiji KumeReiji Kume
結果

無事にAWS Certified Solutions Architect - Associate 試験 (SAA-C03) 合格しました!☺️

受験目的

  • AWSアーキテクチャに関する体系的な知識
  • 高可用性・耐障害性を持つアーキテクチャへの理解
  • セキュリティ分野における優位なアーキテクチャへの理解

学習内容[1]

  • コンピューティング、ネットワーク、ストレージ、データベースのAWSサービス、および AWS のデプロイと管理サービスに関する知識およびスキル
  • AWS 上でのワークロードのデプロイ、管理、そしてオペレーション、およびセキュリティコントロールとコンプライアンス要件の実装に関する知識およびスキル
  • AWS マネジメントコンソール、および AWS コマンドラインインターフェース (CLI) の使用に関する知識とスキル AWS Well-Architected フレームワーク、AWS ネットワーク、セキュリティサービス、AWS グローバルインフラストラクチャに関する理解
  • 提示された技術的要件を満たす AWS のサービスを特定し、AWS ベースのアプリケーションの技術的要件を定義する能力
脚注
  1. 公式試験ガイド ↩︎

このスクラップは7日前にクローズされました