AWS ソリューションアーキテクト-アソシエイト（SAA） サービスまとめ

AWS ソリューションアーキテクト-アソシエイト（SAA）の試験直前で見返す用のサービスまとめです。全てのサービスを網羅しているわけではありませんが、カテゴリごとに出やすいサービスの問題になりやすそうな点はまとめているはず...です。

# ストレージ系
ファイルストレージ
* S3
* EFS
* FSx

ブロックストレージ
* EBS


## S3
* 安価で耐久性が高く、保存容量が無制限のオブジェクトストレージサービスです。SaaSのサービスなのでユーザーはアプリケーションの構築や障害対応などを考慮する必要はありません
* S3にアップロードされたデータはリージョン内の3か所以上のAZに保存されるので、非常に高い耐久性があります
#### ライフサイクルポリシー
* S3バケット内のデータに対して、ストレージクラスの変更やオブジェクトの削除を自動化する機能です
* 指定した期間が経過したデータを自動的に、よりコストパフォーマンスの高いストレージへ移動したり、保管期限の過ぎたデータを削除したりできます
* アクセス頻度が予測できるデータや、保管期間が決められているデータのバケットに設定することで、コスト削減の効果が期待できます

#### 静的Webサイトホスティング
* バケットに保存している静的コンテンツ（HTMLやJPGなど）をWebサイトとして公開できる機能です。静的Webサイトホスティングがサポートしているコンテンツには、JavaScriptなどクライアント側で実行されるスクリプトも含みますが、PHP、JSP、ASP.NET などサーバー側で実行されるスクリプトは含みません
* Webサイトとして公開したい静的コンテンツのあるバケットは「静的Webサイトホスティング」を有効にし、バケットをパブリックに読み取り可能になるよう設定します

#### S3イベント通知
* 通知先はLambda関数、SQSキュー、SNSトピック、EventBridgeです

#### 署名付きURL
* 非公開設定されたオブジェクトに対して有効期限のついたURLを発行することで、AWSアカウントを持っていないユーザーでも一時的にアクセスが可能になる機能です
* 署名付きURLはオブジェクトのダウンロードの他、アップロード用のURLも発行可能です

#### オブジェクトロック
* S3バケットに保存したオブジェクトに対して更新・削除を制限する機能です。S3バケット作成時にのみ設定可能で、オブジェクトロックを有効にするとバージョニング機能も有効になります
* オブジェクトロックは、主にオブジェクトが意図的に改ざん・削除されることを防止する目的で使用します

#### S3 Transfer Acceleration
* ユーザーからS3バケットへ、最適化されたネットワークルートを経由してデータを転送させる機能です。ユーザーと地理的に近いエッジロケーション（※）から高パフォーマンスなAWSネットワークを経由してS3バケットへアクセスするため、より安定した高速転送が可能になります
* （※）エッジロケーション ... AZとは異なるAWSデータセンターで、AZよりも世界中に数多く配置されている

## Amazon EFS（Elastic File System）
* NFS（Network File System）をサポートするファイルストレージサービスです
* 可用性：EFSはリージョン内の複数のAZにまたがってサービスを提供しています。特定のAZに障害が発生しても他のAZでサービスが継続されるため、高い可用性を提供します。また、デフォルトでAWS Backupを使用したバックアップが有効になっています
* 安全性：EFSはデフォルトで保管時のデータの暗号化が有効になっています。また、EFSファイルシステムのマウント時にTLS（Transport Layer Security：セキュアな通信を行うプロトコル）の使用もできるので、安全にデータを転送できます

## Amazon EBS(Elastic Block Store)
* Amazon Elastic Compute Cloud (Amazon EC2) 向けに設計された、使いやすく、スケーラブルで、高性能なブロックストレージサービスです

## Amazon FSx
* ファイル共有に適したファイルストレージサービスです
* FSxは、EFSと同様、主に複数のEC2インスタンスやオンプレミスからアクセスされるファイル共有ストレージとして利用されます
* フルマネージドサービスとして、ハードウェアのプロビジョニング、パッチ適用、バックアップを行いますので、お客様は、アプリケーション、エンドユーザー、ビジネスに専念することができます
* FSxには複数のファイルシステム（ストレージ上のファイルを管理する仕組み）が提供されています。下記はFSxの主要なファイルシステムです
・ Amazon FSx For Windowsファイルサーバー
・Amazon FSx For Lustre
・Amazon FSx for NetApp ONTAP
それぞれ既存の「Windowsファイルサーバー」「Lustre（ラスター）」「NetApp ONTAP」のファイルシステムをAWS上で利用できるようにしたサービスです。いずれもフルマネージドサービスなので、ユーザーはインフラの設定や管理・運用を意識する必要がありません。さらに、Amazon CloudWatchと連携した容量監視やAWS CloudTrailによる操作ログの取得など、他のAWSサービスと連携した運用も可能です。
#### Amazon FSx For Windowsファイルサーバー
Windows Server上に構築されたファイルシステムを提供するストレージサービスです。ファイルシステムにはSMBプロトコルを使用して複数のクライアント（ファイルシステムを利用する端末）から共有してアクセスできます。SMBプロトコルは主にWindowsコンピュータ間においてファイル共有やプリンタ共有に使用されるプロトコルです。Amazon EFSがLinuxベースの共有ファイルシステムであるのに対して、FSx For WindowsファイルサーバーはWindowsベースの共有ファイルシステムを提供します。

#### Amazon FSx For Lustre
Lustreファイルシステムを提供するストレージサービスです。LustreはLinuxOS用に設計されたオープンソースのファイルシステムで、主にスーパーコンピューターなどのHPC（High Performance Computing）や機械学習の分野で利用されています。大量のクライアントから低レイテンシーかつ高スループットにファイルアクセスを行う必要のあるシステムで利用されます。

#### FSx for NetApp ONTAP
NFSとSMBの両プロトコルをサポートする共有ファイルストレージを提供し、同じデータに対するマルチプロトコルアクセス(NFSとSMBの同時アクセス)が可能です。これにより、異なるプロトコルを使用するアプリケーションが同一ファイルシステムのデータを共有できます。SMBでアクセスする場合、FSx for NetApp ONTAP側とWindowsインスタンス側のいずれもActive Directory(AD)に参加する必要があります

# VPC系

## インターネットゲートウェイ
* インターネットゲートウェイは、サブネットをインターネット経由で外部環境と相互に通信できるようにしたい場合に使用します。インターネットゲートウェイをアタッチしたVPC内のサブネットのうち、ルートテーブルにインターネットゲートウェイへのルートがある場合は「パブリックサブネット」と呼ばれ、インターネットと相互に接続できます。一方、ルートテーブルにインターネットゲートウェイへのルートがない場合は「プライベートサブネット」と呼ばれ、インターネットに接続できません。
* インターネットゲートウェイをVPCにアタッチして、パブリックにしたいサブネットのルートテーブルにインターネットゲートウェイへのルートを追加すると、サブネットがインターネットに接続できる「パブリックサブネット」になります。デフォルトVPCには、自動的にインターネットゲートウェイが付与されます。

## Amazon API Gateway
* AWSサービスと連携するAPIの作成や管理ができる機能です
* API（Application Programming Interface）とは、クライアントからのリクエストをアプリケーションサーバーに送り、アプリケーションサーバーからのレスポンスをクライアントへ返す接続口（インターフェイス）のことです
* あらゆる規模の REST、HTTP、および WebSocket API を作成、公開、維持、モニタリング、およびセキュア化するための AWS のサービスです

## NATゲートウェイ
* プライベートサブネットからインターネットへの通信を可能にするIPv4専用の機能です
* NAT(Network Address Translation)とは、IPアドレスを別のIPアドレスに変換する機能のことです。プライベートサブネット内にあるAWSリソースのプライベートIPアドレスを、NATゲートウェイのパブリックIPアドレス（Elastic IPアドレス）に変換し、インターネットへ接続します
* NATゲートウェイを利用するには、Elastic IPアドレスを割り当てたNATゲートウェイをパブリックサブネット内に作成し、プライベートサブネットのルートテーブルにターゲットがNATゲートウェイのルーティングを設定します
* NATゲートウェイはプライベートサブネット内リソースからインターネットへの接続開始要求は通しますが、インターネットからプライベートサブネット内リソースへの接続開始要求は通しません

# データ転送系
## AWS Storage Gateway
* オンプレミスからAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができるサービスです。堅牢性・耐久性に優れたS3をファイル共有ストレージとして利用したり、災害対策を目的としたバックアップやアーカイブを行ったり、あまりアクセスされないデータを自社サーバーからAWSへ移動させるなど、様々なケースで利用することができます

## AWS DataSync
* オンプレミスとAWS間、またはAWSストレージ間のデータ転送サービスです。AWSのストレージにはS3やAmazon EFS、Amazon FSxなどがあります
* データは暗号化されて転送されるため、安全かつ高速なデータ転送を行えます

# 分析系
## Amazon EMR
* ビッグデータの処理や分析を行うサービスです。ビッグデータを処理する既存のフレームワークであるHadoop（ハドゥープ）やSpark（スパーク）を用いています
* さらに、ビッグデータを分析し経営に役立てることを「BI：Business Intelligence」といい、代表的なBIツールにはMicrosoft ExcelやMicroStrategyなどがあります。Amazon EMRはこれらのツールにも対応しています

## Amazon Kinesis
* ストリーミングデータをリアルタイムで収集・処理するサービスです
* ストリーミングデータとは継続的に生成されるデータのことをいいます
* 例えばスマートフォンアプリなどでユーザーが生成するログや、証券取引所の株取引情報、SNSやオンラインゲームのデータなどが該当します
* Kinesisではこのようなストリーミングデータを収集し、他のAWSサービスと連携してサンプリングや分析などができます

## Glue
* Glue(糊)はフルマネージドのサーバーレスETLサービスです
* 複数のデータソース（S3やDynamoDBなど）からデータを抽出し、変換・統合したデータをターゲット（Redshiftなど）へ格納するといった、データ分析における橋渡しの役割を担います

## Amazon Athena
* Amazon S3上のデータに対して標準SQLを実行できるデータ分析サービスです
* サーバーレスですので、EC2インスタンスなどインフラ（実行環境）のセットアップや管理が不要です

## AWS X-Ray
* アプリケーションの動作に関するデータを収集・分析できるサービスです
* 主にトラブルシューティング目的で利用され、アプリケーション内のリクエストをトレースし、処理時間やレスポンスを分析することで、パフォーマンスのボトルネックやエラーの発生箇所を特定できます
* X-RayはCloudWatchの「X-Rayトレース」として利用できます


# 機械学習系
## Amazon Forecast
* 機械学習を利用した時系列予測を提供するフルマネージドサービスです
* 時系列予測とは、過去の時系列データから将来の事象を予測することを指します。具体的には、季節ごとの商品需要予測やプロモーション効果の予測、予算計画、スタッフの要員計画などに役立てることができます

## Amazon Comprehend
* 機械学習を利用した自然言語処理サービスで、テキストデータを解析するための様々な機能を提供します。例えば、テキスト内の登場人物を識別すること（エンティティ認識）や、ポジティブ・ネガティブといった感情を分析すること（感情分析）、特定のキーワードに関連する情報を抽出すること（キーフレーズ抽出）ができます

## Amazon Transcribe
* 機械学習を利用した音声認識サービスで、音声をテキストに変換します。例えば、リアルタイム文字起こしや、通話記録データのテキスト化、動画の字幕付けなどに利用できます

## Amazon Textract
* 機械学習を利用したOCR（Optical Character Recognition:光学的文字認識）サービスで、スキャンしたドキュメントやPDFからテキストやデータを抽出します
* 手書きのテキストや表形式のデータも読み取ることができます。※Textractは2023年8月時点で日本語には対応していません

## Amazon Translate
* 機械学習を利用したテキストの翻訳機能を提供するサービスです
* 大量のドキュメントデータを一度に翻訳することや、Webコンテンツやアプリケーションの複数言語への対応などに利用できます

## Amazon Polly
* 機械学習を利用したテキスト読み上げサービスで、文章を人間が話すような自然な音声に変換します
* 幅広い言語に対応しており、話し方やスピード、声の高さ、大きさなどの細かい調整も可能です。例えば、ニュースサイトでの記事の読み上げや自動応答サービスなどに利用できます

## Amazon Rekognition
* 機械学習を用いた画像認識と動画分析を自動化するサービスです
* 機械学習に関する専門知識がなくても、顔認識やビデオ分析などの技術を利用できます。たとえば、ソーシャルネットワーキングサービス上の顔写真から知人を識別してタグ付けすることや、動画内の人物の行動を分析することなどに活用できます。RekognitionはAPI形式で提供されており、ユーザーは自分のアプリケーションに簡単に組み込めます

## Amazon Lex
* 音声やテキストを使った対話型のインターフェースを構築するサービスです
* 機械学習を利用しており、高度な音声認識や言語理解機能を備えています。また、AWS Lambdaとの連携機能が組み込まれており、データ取得や更新などの処理を簡単に実行できます
* さらに、Amazon CloudWatchやAmazon DynamoDBなどのAWSサービスと統合でき、多様なアプリケーションに対応したチャットボットを開発できます。例えば、顧客の問い合わせに迅速に応答するチャットボットや、製品の注文やサポートを行うアシスタントボットなどが挙げられます



# その他
## AWS Organizations
* 複数のAWSアカウントを一元的に管理するためのサービスです
* 管理対象のAWSアカウントに対する権限の設定や、各アカウントの請求情報を集約した一括請求が利用できます

## AWS Outposts
* AWSのインフラストラクチャやサービスをオンプレミスに拡張して利用できるフルマネージドサービスです
* AWSが提供する物理的なラックやサーバーをオンプレミス環境に設置し、ローカルで動作しているAWSのサービス（例：EC2、S3、RDSなど）に低遅延で接続が可能です
* AWSリージョンとオンプレミス環境はDirect ConnectやVPNを介してネットワーク的に統合され、既存のVPCを拡張してオンプレミスで利用することができます。また、オンプレミス環境がAWSリージョン内のVPCとシームレスに統合され、Outposts上のAWSサービスは、AWSクラウド上と同じ管理ツール、API、SDKを使用して操作できます

## AWS Resource Access Manager
* AWSリソースを複数のAWSアカウントで共有できるサービスです。共有可能なAWSリソースには、Amazon EC2、AWS VPC、Amazon Transit Gatewayなどがあります
* Resouce Access Managerを利用してVPCを共有することにより、他アカウントからプライベートネットワーク経由で自アカウントのVPCへアクセスできるようになります


## Amazon Data Firehose（旧 Kinesis Data Firehose）
* ストリーミングデータをAmazon S3、Amazon Redshift、Amazon OpenSearch Serviceなどへ配信するサービスです
* Data Firehoseはプロデューサーからストリーミングデータを受け取り、必要に応じてデータ変換処理やLambda関数の呼び出しを実行した後、データ配信先へ送信します

## OpenSearch Service
* フルマネージド型の検索・分析エンジンサービスです。分析対象のデータの保存はできますがアーカイブ化する機能はありません。また、S3に比べて保存料金が高額です

## AWS Cognito
* ログイン周りの実装（Google, Facebook等）

## AWS Directory Service
* AWS Directory Serviceは、MicrosoftのActive Directory (AD) をAWS上で提供するマネージドサービスです
* ADはネットワーク上のリソース情報（ユーザアカウントやデバイスなど）を一元管理でき、ユーザーやWindowsサーバーの管理・認証ができます
* AWS Directory Serviceも同様の機能を持つのに加え、他のAWSサービスと連携することでAWSサービスへの認証にADを利用できます