【AWS】AWS SAAまとめ②

# 用語一覧
|用語|説明|
|-|-|
|AWS Lambda|サーバーなどのコンピューティングリソースを意識することなく、「`Lambda関数`」と呼ばれるアプリケーションコードをデプロイしただけで実行することができるサーバーレスなサービス。LambdaはさまざまなAWSサービスと連携が可能で、イベント駆動型のアプリケーションを実行することができる。たとえば、Amazon S3にコンテンツファイルがアップロードされたことをトリガーとして、LambdaでアップロードされたファイルをEC2インスタンスへ連携することができる。|
|Amazon API Gateway|APIの作成、配布、保守、監視、保護を簡単に行うサービス。|
|APIエンドポイントタイプ|API　Gatewayを作成すると、特定のリージョンにAPIがデプロイされる。その際にデプロイされたAPIのホスト名のこと。|

#### 【APIエンドポイントタイプ】
|エンドポイント名|トラフィックの発信元|使用可能なAPI|
|-|-|-|
|リージョンAPIエンドポイント|API Gatewayと同一リージョンのクライアント|HTTP API,REST API|
|エッジ最適化APIエンドポイント|地理的に分散されたクライアント|REST API|
|プライベートAPIエンドポイント|VPC内のクライアント|REST API|

### アプリケーションデプロイ関連のサービス
#### AWS Amplify
`AWS Amplify`は、Webアプリケーションやモバイルアプリの開発、デプロイ、管理を簡単に行うための開発プラットフォーム。Amplifyには、`Amplify CLI`、`Amplify Framework`、`Amplify Developer Tools`のようなサービスやツールが用意されており、これらを利用することで、数回のコマンドや画面操作でバックエンドのAWSサービスが構築できたり、フロントエンドのアプリケーションとの連携を簡単に実装することができる。
#### AWS Elastic Beanstalk
`AWS Elastic Beanstalk`は、少ない手順でWebアプリケーションやサービスをサーバーにデプロイでき、また、実行環境も管理できるサービス。

### 移行関連のサービス
#### VM Import/Export
`VM Import`は、オンプレミス環境に作成した仮想サーバーのマシンイメージを、AWSのEC2インスタンスにインポートすることができるEC2サービスの機能の１つ。
`VM Export`は、VM ImportによってAWS上にインポートされたEC2インスタンスを、オンプレミス環境で動作する仮想サーバーのマシンイメージへエクスポートする機能。
#### AWS Migration Hub
`AWS Migration Hub`は、オンプレミス環境などで稼働する既存サーバーをAWSに移行する際の移行対象や移行計画、移行ステータスを、一元的に管理するための機能を提供するサービス。
#### AWS Application Discovery Service
`AWS Application Discovery Service`は、オンプレミス環境にある移行対象サーバーの使用状況と構成データなどを収集するサービス。
データ収集方法として、VMWare仮想マシンからの収集であればエージェントレス検出(ソフトウェアやツールを使用せずに、ネットワーク上の異常を検出すること)、それ以外のVMまたは物理サーバーからの収集であればエージェントベース検出（ソフトウェアやツールを使用して、システムやネットワーク上の異常を検出すること）を利用する。
#### AWS Application Migration Service(AWS MGN)
`AWS Application Migration Service`は、オンプレミス環境やVMWare仮想マシンなどからAWSへ、アプリケーションを移行するためのサービス。

### その他のコンピューティングサービス
#### Amazon Lightsail
`Amazon Lightsail`は、オールインワンのプラットフォームとして設計されたコンピューティングサービス。アプリケーションやWebサイトをすばやく構築できるように、仮想サーバーやストレージ、データベース、ネットワークなどの環境を簡単に構成することができる。
#### AWS Batch
`AWS Batch`は、インフラストラクチャの管理がバッチ処理の実行環境を提供するサービス。
#### AWS Serverless Application Repository
`AWS Serverless Application Repository`は、開発したサーバーレスアプリケーションをデプロイ・管理するためのサービス。
#### VMWare Cloud on AWS
`VMWare Cloud on AWS`は、AWSのインフラストラクチャ上で稼働するVMWareソフトウェアベースのクラウドサービス。オンプレミス環境で稼働するVMWare環境をAWSに移行することで、既存のVMWare環境を大幅に変更することなく、AWSの耐障害性や拡張性といったメリットを享受することができる。
#### AWS Device Farm
`AWS Device Farm`は、モバイルアプリやWebアプリケーションをテストするために、実際の電話やタブレットの環境を提供するサービス。
#### Amazon Pinpoint
`Amazon Pinpoint`は、ユーザーが指定した特定の対象者に複数の方法でメッセージを送り、その対象者の行動や反応の分析などができるサービス。
#### AWS AppSync
`AWS AppSync`は、GraphQLをマネージドで提供するサービス。GraphQLとは、API向けに作られたクエリ言語のことで、１つのエンドポイントを使用して必要なデータのみ取得できるため、　APIリクエストの回数を削減できる。
#### AWS Compute Optimizer
`AWS Compute Optimizer`は、Amazon EC2やAmazon EBSなどのAWSリソースについて、設定項目のチェックやメトリクス分析を実行し、ワークロードを最適化するための推奨事項を作成するサービス。
#### Amazon Elastic Transcoder
`Amazon Elastic Transcoder`は、Amazon S3上に保存されたメディアファイルを変換するためのサービス。

### Amazon Simple Storage Service(S3)
`Amazon S3`は、高耐久・大容量のオブジェクトストレージサービスである。
`オブジェクトストレージ`とは、データをオブジェクトとして扱い、IDとメタデータによって管理する方式である。S3では「`バケット`」と呼ばれる単位で保管するオブジェクトを管理する。

以下では、S3の機能の詳細。
#### オブジェクトロック機能
オブジェクトロック機能は、オブジェクトの上書きまたは削除の操作を防止できる機能。
#### バージョニング機能
バージョニングとは、オブジェクトの世代管理を提供する機能。保管しているオブジェクトを誤って更新・削除した際に、設定に基づいて以前の世代へ戻すことが可能。
#### クロスリージョンレプリケーション
S3に保存したデータは、デフォルトで同一リージョン内の3カ所のAZへ自動的に複製されるが、クロスリージョンレプリケーションを有効化すると、オブジェクトを別リージョンのS3のバケットに自動的に複製できる。
#### S3におけるセキュリティ対策
#### アクセス制御
|アクセス制御|説明|
|-|-|
|IAMポリシーによるアクセス制御|IAMポリシーによる制御を行う。|
|バケットポリシーによるアクセス制御|あるS3バケットに対して、JSONコードを記載してバケット全体のアクセス制御を行う機能。|
|ACLによるアクセス制御|S3バケットに対して、AWSアカウントレベルのアクセス制御を行う。|
|ブロックパブリックアクセスによるアクセス制御|バケットポリシーとACLによるアクセス制御では、S3の各バケットや各オブジェクトデータを監視しておかないと、意図せず外部に公開されてしまうという問題があった。そのような場合は、`ブロックパブリックアクセス`によるアクセス制御を行うことで、バケットポリシーやACLの設定に対して一括で制限を設けることができる。|

#### 暗号化
S3バケットに保管されたデータは暗号化される。
#### S3のコスト最適化
S3では、ユースケースに応じて「`ストレージクラス`」と呼ばれる利用レベルを選択することができる。
主なストレージクラスは以下の通り。
|ストレージクラス|説明|
|-|-|
|標準（Standard）|デフォルトのストレージクラスで、99.999999999%の高耐久性を備えている。|
|標準-低頻度アクセス(Standard-Infrequent Access)|スタンダードと同じ耐久性を備えたストレージクラスで、スタンダードと比較して低コストで利用可能。ただし、データの読み取りに対して課金されるため、長期保管やバックアップ用途向けに利用される。|
|1ゾーン-低頻度アクセス(One Zone-Infrequent Access)|標準低頻度アクセスほど耐久性を必要としない場合に利用するストレージクラス。1ヶ所のAZのみにデータを保存するため、標準低頻度アクセスよりさらに安価で利用することができる。|
|低冗長化ストレージ(Reduced Redundancy Storage)|スタンダードでは3カ所のAZにレプリケーションされるのに対して、2カ所にすることで、耐久性は低下するもののコストを抑えて利用できるストレージクラス。|
|Intelligent-Tiering|低頻度・高頻度の2階層のストレージ層を用意し、S3上に格納したオブジェクトへのアクセス頻度に応じて、コストに見合った最適なストレージ層を自動的に使い分けるストレージクラス。|
|Amazon S3 Glaciar|アーカイブを目的としたストレージで、大容量のデータをより安価に保管することができる。|

#### Amazon S3 Glaciar
Glaciarには3種類のストレージクラスがある。
|ストレージクラス|説明|
|-|-|
|Glaciar Instant Retrieval|おおよそ四半期に1回程度しかアクセスされることがなく、S3スタンダードと同等のミリ秒単位の取り出しが必要な長期間保管用データに最適なアーカイブストレージクラス。医療画像やゲノムデータなど、普段は利用しないものの急に必要とされるデータの利用に適している。|
|Glaciar Flexible Retrieval|従来ではGlaciarと呼ばれていたクラスを指し、年に１、２回程度しかアクセスされることがないものの、時々取り出す必要があるデータに最適なアーカイブストレージクラス。データの取り出しに数分〜数時間の時間が許容されるバックアップデータなどの利用に適している。|
|Glaciar Deep Archive|S3のなかで最も低コストに利用できるストレージクラスで、年に１、２回程度しかアクセスされないようなデータに最適なアーカイブストレージクラス。データの取り出しには数時間以上を要するが、データ保管要件が厳しい業界や数年〜十数年以上にわたってデータを保管する要件に適している。|

また、S3では、ライフサイクルポリシーを設定することで、設定した期間が経過したあと、オブジェクトを自動で削除したりアーカイブすることができる。
#### S3のデータ転送効率化を実現する機能
S3へオブジェクトをアップロードする際に、`マルチパートアップロード`という機能が利用できる。これは大容量のオブジェクトを「パート」と呼ばれる複数の単位に分割してアップロードすることで、効率よく転送できるようにする。
このほか、`Amazon S3 Transfer Acceleration`という機能を有効化すると、クライアントとS3間の通信を高速化させることができる。
#### ストレージ以外でのS3の用途
S3はオブジェクトストレージだけでなく、以下のような用途でも利用される。
|S3の用途|説明|
|-|-|
|Webサイトホスティング|S3は、`静的コンテンツのWebサイトホスティング`の機能も備えている。静的なコンテンツを配信するWebサイトであれば、サーバーを構築することなく公開できる。また、簡易的なWebサイト以外に、Route 53のDNSフェイルオーバー機能と組み合わせて、WebサイトのSorryページとしても利用される。|
|署名付きURL|S3では、AWS CLIやAWS SDKを利用して、署名つきURLを発行することができる。`署名付きURL`とは、S3上のデータに対して一定時間だけアクセスを許可するためのURLを発行する機能で、これによりAWSへログインできないユーザーでもデータにアクセスすることができる。|

# 参考
https://www.amazon.co.jp/%E6%A8%A1%E6%93%AC%E5%95%8F%E9%A1%8C%E4%BB%98%E3%81%8D-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88%E6%95%99%E7%A7%91%E6%9B%B8-%E7%AC%AC3%E7%89%88%EF%BC%BBSAA-C03%EF%BC%BD%E5%AF%BE%E5%BF%9C/dp/4295016098/ref=sr_1_3?keywords=aws+saa&qid=1682091471&sprefix=aws+saa%2Caps%2C172&sr=8-3