AWS Certified Solutions Architect - Associate / 出題 24%

高性能なアーキテクチャの設計

このドメインで学ぶこと

このドメインでは、負荷に合った高性能のストレージ (Amazon S3、Amazon EBS、Amazon EFS、Amazon FSx)、コンピューティング (Amazon EC2、AWS Lambda、コンテナ)、データベースとキャッシュ (Amazon Aurora、Amazon DynamoDB、Amazon ElastiCache、DAX)、ネットワーク (Amazon CloudFront、AWS Global Accelerator、Elastic Load Balancing)、データの取り込みと分析 (Amazon Kinesis、Amazon Athena、Amazon Redshift) の選び方を学びます。

重要ポイント

  • ストレージ - オブジェクトは S3、1 台のインスタンスのブロックは EBS、共有のファイルは EFS、高速な計算の読み込みは FSx for Lustre
  • EBS - gp3 は容量と別に IOPS とスループットを決められ、io2 は高い IOPS と耐久性が要るときに使う
  • キャッシュ - RDS や Aurora の前には ElastiCache、DynamoDB の前には DAX
  • 読み取りの分散 - Aurora レプリカとリードレプリカに読み取りを分け、書き込みのインスタンスの負荷を減らす
  • 配信の高速化 - Web のコンテンツは CloudFront、TCP と UDP の通信と固定の IP アドレスは Global Accelerator
  • ストリームと分析 - リアルタイムの取り込みは Kinesis Data Streams、S3 の上の SQL は Athena、大規模な集計は Redshift

用語と概念

ストレージの選び方

S3 は容量の上限を気にせず使えるオブジェクトストレージ、EBS は 1 つの AZ の中でインスタンスに付けるブロックストレージ、EFS は複数の AZ の多数のインスタンスから同時に使う共有のファイルシステムです。計算の負荷の高い処理で S3 のデータを高速に読むなら FSx for Lustre を選びます。

キャッシュ (ElastiCache と DAX)

ElastiCache はメモリのデータストアで、データベースの前に置いて繰り返しのクエリの結果を返し、データベースの負荷を下げます。キャッシュの読み書きはアプリケーションに書きます。DAX は DynamoDB 専用のキャッシュで、DynamoDB と互換の API を持つため、アプリケーションの変更が少なくて済みます。

CloudFront と Global Accelerator

CloudFront は世界のエッジロケーションに Web のコンテンツをキャッシュし、利用者に近い場所から返します。Global Accelerator はコンテンツをキャッシュせず、固定のエニーキャスト IP アドレスで受けた TCP と UDP の通信を AWS のネットワークで最寄りの正常なエンドポイントへ届けます。

ロードバランサーの種類

Application Load Balancer は HTTP と HTTPS のリクエストの中身で振り分けます。Network Load Balancer は TCP と UDP の層で動き、非常に低い遅延で大量の接続を扱い、AZ ごとに固定の IP アドレスを持てます。Gateway Load Balancer はファイアウォールなどの仮想アプライアンスへ通信を通すために使います。

Lambda の性能

Lambda では、割り当てたメモリの量に比例して CPU の能力も増えます。最初の呼び出しで実行環境を準備する時間 (コールドスタート) を避けたいときは、プロビジョンドコンカレンシーで実行環境をあらかじめ用意します。

データの取り込みと分析

Kinesis Data Streams は大量のデータを順序を保って受け取り、複数のアプリケーションが同じデータを読めます。Athena は S3 に置いたままのデータに SQL を実行し、読んだ量の分だけ料金が掛かります。Redshift は列指向のデータウェアハウスで、大規模で複雑な集計に向いています。

確認問題 5 問