AWS SAA(C03) 勉強ログ

# 主に自分用のメモです。情報の共有を目的としていません。

https://www.youtube.com/playlist?list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1

https://www.amazon.co.jp/-/en/CloudTech%E6%9B%B8%E7%B1%8D%E4%BD%9C%E6%88%90%E5%A7%94%E5%93%A1%E4%BC%9A-ebook/dp/B0BCPNZ9GJ/ref=sr_1_3?crid=1YUTKCFKBQNUI&keywords=cloudtech+saa&qid=1696724617&sprefix=cloudtech+saa%2Caps%2C109&sr=8-3

ここから勉強したことを書いていく。

# データベース
https://www.youtube.com/watch?v=LAa_w5mlwY0&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=26

## DynamoDB
NoSQL
ミリ秒単位のとても低遅延のサービス
DB自体には容量に応じて自動でスケーリング、テーブルにもAuto Scailingの設定ができる。
オンデマンドと、キャパシティ予測ができる場合のプロビジョニングモードがある。
1項目あたり400KBまでの制限があるので、**IoTデータやセッションデータ管理、メタデータ管理**に使われる
逆にBLOBデータや画像データなどのファイルサイズの大きいものの保存には向かない
結果整合性のある読み込みを利用するか、強い整合性モデルを利用するかを指定できます。
### グローバルテーブル
グローバルに複数のテーブルをレプリケーションする機能。データ冗長化や複数リージョンでのデータアクセス速度を向上させるために利用される
マルチリージョン構成という言葉は無いので、黙ってグローバルテーブルを選択する。

### DynamoDB トランザクション
DynamoDBテーブルに対する1 つのオペレーションとして複数の項目の追加、更新、または削除が必要となる複雑なビジネスワークフローを管理できます。それによって、機密データの項目を指定して削除するワークフローを設定できます。
### DynamoDBストリーム
DynamoDB テーブル内の項目レベルのデータの追加・変更・削除に関するシーケンスを時間順にキャプチャして保存する機能です。データに変更が発生すると、Lambda関数などにリアルタイムに変更点をデータ連携するような構成が可能となります。
**DynamoDBストリーム自体はデータ処理を動的に実行するといった処理はできない。**
遠隔地の別テーブルの更新にも使える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/309b50b8-c000-e9de-345a-860a91bfff8a.png)
### ポイントインタイムリカバリ
有効化すれば、誤って本稼働環境の DynamoDB テーブルに書き込みを実施したり、削除してしまっても、過去 35 日間の任意の時点にテーブルを復元することができます。
DynamoDB は指定した日時 (day:hour:minute:second) の状態のテーブルデータを新しいテーブルとして復元します。
## Amazon RDS
オートスケーリングなし
SQL serverのみ障害時のフェイルオーバーはSQL Server独自の機能を使用している。
スナップショット用に無料ストレージを提供していますが、上限のストレージ容量を超過すると課金
ストレージエンジンとして**MyISAMを使用することはできません。**
### スケールアップ
スケーリングにダウンタイムが必要
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/53977b46-cd31-24ca-d9d4-8bb1e905e67a.png)

### RDS Proxy
アプリケーションとRDSデータベース間の仲介役としてコネクションを管理する
接続をプロキシが管理するので接続に関してRDSの負担が軽減できる。


## Amazon Aurora
オートスケーリングなし
スケーリングにダウンタイムが必要
作成時にデフォルトでマルチAZ配置が有効
Aurora Replicaで最大15個のレプリカが作成可能。また、プライマリインスタンスに障害発生時はCNAMEレコードをスタンバイから切り替え、プライマリとして昇格可能
### Aurora Serverless
データベースインスタンスを、必要なときに必要な分だけ稼働するサーバーレスの特徴を持たせたサービス。データベースサービスを利用する際に課題となるコスト削減が期待できる。バッチ処理のようなリクエスト数が少ないアプリケーションでの使用に適している。

## ElastiCache
読み取り処理を支援するためのシンプルなデータ処理ならmemcachedを選択する。ただデータ永続化が欲しいならRedis
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/6ff1730a-d616-641e-d372-e4c997c3ac20.png)


# ワークフロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/91ea6c42-a572-ea40-49d1-99e167f7a593.png)

## Step Functions
標準ワークフローは1回のみのワークフロー実行で、最長１年間実行できます。
エラー処理方法を設定できます。その際はリトライを実施して処理を継続するか、タイムアウトによって処理を停止します。再起動を実施するわけではない

# 監視系
https://www.youtube.com/watch?v=sd6NiINcg4A&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=57

## Cloud Watch
カスタムメトリクスを利用すると有料
CloudWatchエージェントを対象のEC2インスタンスにインストールすることで、CloudWatchによりインスタンス内部の詳細なログが取得できる
RDSのDBインスタンスにはインストールできないので、RDSの拡張モニタリングを有効化する
### CloudWatch logs
アプリケーションログやシステムログを監視し、設定した敷地を超えたら発報という設定ができる。
### CloudWatch Event
EC2のシャットダウンなどのイベントをトリガーに、例えばLambdaの実行などのジョブを設定することができる
## CloudTrail
AWSアカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うためのサービス
個人的にCloudWatchと間違えやすいが、Trailには跡、痕跡という意味もあるのでここから監査系サービスという発想をする。
EC2インスタンスのログなどはCloud Watch
## AWS config
AWSリソースの設定を記録して評価・監査・審査できるフルマネージドサービスです。AWSConfigを使用して定めたルールから逸脱するリソースの設定変更が発生すると、自動的に通知を受け取る仕組み
修復アクションの実行は、AWSSystemsManagerAutomationで実現され、非準拠のリソースを自動で修復・手動のどちらで修復するかを選択できます。

## AWS Organizations
複数アカウントの一元管理や請求の一括請求などができます。
### Service Control Policy (SCP)
厳密には権限の設定を行っているというよりも、「権限を設定する許可を与える」という動作を行います。
各AWSアカウントのIAMでさらに利用権限を許可することにより、そのサービスを利用できます。
**デフォルトで「FullAWSAccess」が付与される**ので、特定の権限範囲に限定するSCPを新規にOUに設定する場合は、そのSCPをアタッチした後に「FullAWSAccess」をデタッチしなければ機能しません。

# ストレージ

## Amazon EFS
ファイルストレージ
**複数**のEC2インスタンスと接続可能
**複数**のAZで冗長化
**自動**ボリューム拡張
マウントターゲットを設定する必要がある。

## Amazon EBS
ブロックストレージ
**1台**のEC２インスタンスと接続可能
**単一**のAZで冗長化
自動ボリューム拡張**なし**
同時アクセスはマルチアタッチを使用しないと無理
作成時にのみ暗号化するかどうか選び、ボリューム内にファイルシステムを作成することで使用(アタッチ)が可能になる。付け替える場合は古いEC2インスタンスを停止した上で、ボリュームをデタッチ
バックアップの機能は無いので、Amazon Data Lifecycle Manager(DLM)を使用してEBSスナップショットから保存削除のサイクルを自動化できる。
###  DeleteOnTermination 属性
非有効化することでインスタンス削除後もボリュームの維持が可能
### ストレージタイプ
![スクリーンショット 2023-10-02 19.24.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/005afbe8-fa08-7623-9f84-55494f82134d.png)
スループット最適化型はビッグデータ処理、MapReduceやKafka、ログ処理、DWH、ETLワークロードに向いている。


## Amazon S3
オブジェクトストレージ
通信にはHTTPSが使われる
他のストレージサービスと比べて、費用対効果が高い
同時アクセスを提供する
強い整合性モデル
スナップショットの機能は無いが、バージョニング機能で誤って削除した場合などに復旧できる。
MFA Delete機能で多要素認証の仕組みで誤った削除を回避する機能がある。
### 暗号化
暗号化オプションを有効にすると、データをアップロード時にディスクに保存する前に暗号化。ダウンロードする際は、S3側で自動的に復号。S3上のアクティビティログの暗号化も可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/4b0d8368-38f0-e431-0f31-2c40c6fef952.png)

### 選べるモード
ガバナンスモード：許可を持った人しか上書きや削除、ロックができない
コンプライアンスモード：**誰も** 上書きや削除、ロックができない

### 事前署名付きURL
特定のユーザーに特定のオブジェクトへの **一時的な** アクセスを許可する際は、事前署名付きURLを発行して、そのユーザーに付与
### Prefix
日付ベースでアップロードを分散することで少なくとも 3,500 リクエスト/秒、データの取得で 5,500 リクエスト /秒をサポートできる
ランダムPrefixは過去のもの
### ストレージタイプ
![スクリーンショット 2023-10-09 15.37.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/00230079-1f88-e141-0947-2ab86811650d.png)
### データ取り出しタイプ
![Screenshot 2023-10-13 165810.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/58c79f06-a33a-4452-9b31-477c8287b6e2.png)
### クロスリージョンレプリケーション
設定しておけば、片方で発生した変更がそのまま自動で反映される。
データ転送費用が発生する。
双方向のクロスリージョンレプリケーションを実施するには、バケット間でお互いにクロスリージョンレプリケーションを設定しあうことが必要
### リクエスタ支払い機能
データをリクエストしたユーザーに支払いが発生するS3バケットの課金の仕組み
企業間でデータを共有する際に便利
### ストレージクラス分析
ストレージアクセスパターンを分析し、適切なデータを適切なストレージクラスに移行すべきタイミングを判断
フィルタリングされたデータセットのアクセスパターンを一定期間監視することで、最適なライフサイクルポリシーを設定することができます。
### イベント通知
Amazon S3 のイベント通知設定では、以下のAWSサービスを指定します。
・Amazon Simple Notification Service (Amazon SNS) のトピック
・Amazon Simple Queue Service (Amazon SQS) キュー
・AWS Lambda 関数
・Amazon EventBridge
## Amazon FSx
ファイルストレージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/f99a4431-e2f6-a698-d10e-d743272568d2.png)

## EC2インスタンスストア
揮発性メモリなので電源喪失時に消えてしまうので、長期保存には向かない。同時アクセスにも対応しない(単一のEC2内のストレージなので)


## ブロックデバイスマッピング
https://www.youtube.com/watch?v=SjlfyygR38Y&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=38

EBSとインスタンスストアボリュームをマッピングできる。

# 構築関係(プロビジョニング自動化)
https://www.youtube.com/watch?v=jPsJXB5QOTY&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=27

## Cloud Formation
テンプレートと呼ばれるYAML or JSONファイルからAWSリソースのプロビジョニング
AWSリソースの構築管理の効率化
環境の複製やバージョン管理が容易になる
IAMポリシーについては、テンプレートによって展開されるEC2インスタンスなどのリソースの権限は必要なく、AWS CloudFormationのアクションのみを許可すればよい。
スタックと呼ばれる、Azureでいうグループのようなもので一括管理される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/64bdcd9b-7e2b-52d3-dbf3-fbb55cec1276.png)

## Elastic Beanstalk
.NETやJava,PythonなどのWebアプリケーションをアップロードするだけで、EC2やELB、モニタリングを処理してくれるPaaS
Zipファイルでアップロードすると適切なLBやEC２
## OpsWorks
構成管理。ChefやPuppetとかが関係してくる
## CodeDeploy
EC２やLambdaなどのデプロイを自動化するサービス
## コード管理
![スクリーンショット 2023-09-27 23.49.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/dd8270cb-b8d2-72c6-e071-f82c0e654b67.png)

# サーバーレス
## Amazon Lambda
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/3a44256c-ad07-23b8-56e0-2b76d3029c5f.png)
### Lambdaレイヤー
複数のLambda関数でライブラリを共有できる仕組み
複数のLambda関数の処理の一部分が重複していた場合にLambda Layerを利用することで、重複部分を共有化することができます。
### Lambdaエッジ
サーバー管理を行わなくても、ウェブアプリケーションをグローバルに分散させることで、パフォーマンスを向上させることができます。
### RDSプロキシ
Amazon RDSと接続する際はプロキシ機能を利用すると、複数のLambda関数による並列処理が発生してもコネクションを効率的に維持することが可能となります。
## AWS AppSync
サーバーレスな GraphQL と Pub/Sub API を使用してアプリケーション開発を容易に実施できる機能
直接DynamoDBテーブルの値を取得・更新・削除することができるので、データを迅速に取得してリアルタイムランキング機能を実装することが可能
次のような利用シーン
1)AWS上でGraphQLを利用したい場合
2)オフライン時でもアプリケーションを操作したい時
3)複数の利用者が共同編集を行うチャットアプリケーション

# メッセージング
https://www.youtube.com/watch?v=AUZ45YNAUUo&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=28
## SNS
疎結合設計
Pub/Sub
Lambda呼び出し可能
Cloud Watchと連携させて、CPU使用率の検知やエラーの検知に使える。
標準ではFIFOではないのでFIFOトピックを利用して順序を保証する
## SQS
キューイングサービス
AWSに新規に構築時にはこちらを使う。すでにオンプレなどでメッセージングを使われている場合は下記のMQを使う。
メッセージは削除されない限り、コンシューマーからのポーリング後にもキュー内にメッセージは保持されています。したがってるので、キュー内のメッセージを複数の受信先が受け取ってしまうことで、メッセージ配信が重複してしまう可能性がある
デフォルトの保持期間は4日間(最小60秒～14日間)
### 可視性タイムアウト
メッセージが最初にポーリングされたインスタンス以外からは一定期間見えなくなる
### キューの種類
下記以外に標準キューとFIFOキューがある
![スクリーンショット 2023-10-15 18.43.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/61268302-ec5b-b1a2-476a-c2ebb99da397.png)

## Amazon MQ
クラウド上でメッセージブローカーが簡単にセットアップできる。
JMS,NMS,AMQP,STOMP,MQTT,WebSocketなどのAPIとプロトコルを使用している。
オンプレからこれらのメッセージブローカーをAWSに移行する際に、コードを書き換える必要がない
## EventBridge
アプリケーションの可用性の問題やリソースの変更などのシステムイベント発生時に自動的に実行されるワーク処理を作成する機能。Amazon SNSなどと連携したアラーム通知を実施することが可能
# Amazon EC2
https://www.youtube.com/watch?v=GYAuKisumY0&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=29
## Dedicatedと専用ホストの違い
1アカウントで物理ホスト占有は一緒
Dedicatedではインスタンスの自動配置が可能
専用ホストは例えばオンプレで使用中のライセンスを流用できる、といったメリットがある


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/3c896930-79a6-bfa0-9853-04f961efaf6c.png)

## 購入タイプ3つ
https://www.youtube.com/watch?v=9eepnijT7Qw&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=31

**オンデマンド**
一般的なタイプ利用時間に応じた課金
**リザーブド**
1年または3年の長期契約の代わりに安くなる
**スポット**
安いが入札価格により、途中終了の危険性がある
**オンデマンドキャパシティ予約**
オンデマンドで実行したい際に容量不足のエラーが出るのを回避できる。
予約中にも料金がかかる

昔はスケジュールリザーブドというものがあった
## AMI マシンイメージ
複数のアカウント間でAMIを共有するには、AMIを別のアカウントと共有するための許可設定が必要。そのためにAMIのLaunchPermissionプロパティを変更することが必要。

また、AMIは暗号化されているため、AMIのみを共有するだけでは第三者のAWSアカウントにおいてAMIを利用することができません。AWS KMSのCMKを利用して暗号化されたAMIを利用するには、その暗号化に利用したCMKの権限を有していることが必要です。したがって、KMSのキーポリシーを変更して、第三者のAWSアカウントがAMIの暗号化に利用したKMSキーを使用できる権限を付与します。

## ユーザーデータ
Amazon EC2のインスタンス起動画面に設定されたスクリプトを記入できる入力欄のことです。Amazon EC2の起動時にユーザーデータにはシェルスクリプトと cloud-init ディレクティブという2 つのタイプのデータを入力して、インスタンス起動時にそれらを実行することができます。

## インスタンスタイプ
これ見て無理なら無理
https://zenn.dev/matsu7089/articles/meaning-of-ec2-instance-types
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/710be41c-5826-4294-67cc-ff8680139370.png)


## メタデータ
インスタンスメタデータを取得する唯一の方法は、リンクローカルアドレス (169.254.169.254) をcurlすること

# ロードバランサー(ELB)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/da798f78-15f2-fc37-2aa0-171ad91d8752.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/c0892198-4cc9-d591-b3c8-d55d649fa9eb.png)


## アプリケーションLB(ALB)
リージョン跨ぎ不可。
・L７に対応
・URLのパスに基いてルーティングが可能なパスベースルーティングが可能
・WebSocketとHTTP/2のリクエストが利用可能
・1インスタンスに複数ポートを登録可能
・EC2インスタンスをターゲットグループに割り当てる際、複数ポートを個別のターゲットとして登録することが可能なため、ポートを利用するコンテナをロードバランシング可能
・ターゲットグループでのヘルスチェックが可能
・アクセスログが取得できる
・EC2と同様に削除保護が可能
・ALB自体が自動的にキャパシティを増減する
## クラシックLB
ほぼ出題されない
## ネットワークLB(NLB)
L4で動作。IPプロトコルデータに基づいてルーティング。SSLターミネート不可。
高リクエスト数、低レイテンシを提供。
複数ポートへのロードバランシングを提供。
Lambdaターゲット**不可**
IP付与可能
スティッキー(ターゲットEC2固定化)**不可**

# ネットワーク
## AWS Direct Connection
https://www.youtube.com/watch?v=--gjm026b8M&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=35

専用線でISP介すこと無くオンプレと接続可能
AWS側にVGWを設置する
IPSec VPNを専用線障害時のサブとして設定することもある(費用や復旧の速さの観点から)
専用線を引くので、初期導入費用と手間がかかる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/43111a70-d791-812c-ce2a-6d1e70457f0a.png)

## VPN
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/ab6afee0-24d1-1d29-0bc3-e5faeeca648c.png)


## NATゲートウェイ
AWSで管理。各AZで高可用性。セキュリティグループにアタッチ不可。
### NATインスタンス
可用性なし。Bastionホスト(踏み台)として利用可能。セキュリティグループにアタッチ可能

# セキュリティ
## セキュリティグループ と ネットワークACL
セキュリティグループはホワイトリスト、ネットワークACLがブラックリスト。DDoS攻撃にはネットワークACL(AWS WAF)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/3390451e-585f-37ae-9e2a-3f8a4c91b56c.png)

## AWS WAF
ネットワークACLの強化版。大量のブラックリストにはこちらを使う
IPセット一致ルールステートメントでIPアドレスまたは範囲を指定して許可またはブロックができる。
### Referer制限
HTTPリクエストに含まれているページURLに基づいて、そのURLリンクへのリクエストを制限する機能です。 外部リンクから自分のサイトに置いてあるファイルをダウンロードされたくない場合などに利用
## Shield Standard
Cloud FrontやRoute53など全てのインターネットを介するサービスで自動有効になっている。ネットワークおよびトランスポート層のDDoS攻撃の緩和に有効。
## Shield Advanced
DDoS攻撃で増えたコストを払い戻してくれる。
## CloudFront
グローバルサービスなのでリージョン内にない。ネットワークACLの適用不可。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/40a9654c-abb7-be42-bd4c-84d3d2fbc5ad.png)

### 署名付きURLと署名付きCookieの違い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/f7ccc3d2-b53e-7728-e075-f2ae51a770fa.png)

### オリジンアクセスアイデンティティ（OAI）
またはオリジンアクセスコントロール (OAC) 
OACの方が新しく機能が豊富
外部ユーザーやアプリケーションはCloudFrontを介してのみS3バケットのコンテンツにアクセスできる

## IAM
![スクリーンショット 2023-10-09 14.53.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/52140eae-a5da-69d9-a674-12fbad5e4416.png)
### クロスアカウントアクセス
外部ベンダーに適切なアクセス権限を委譲する際に使われることが多い
IAM**ロール**とリソースポリシー両方の許可を行ってクロスアカウントアクセスの設定を行います。

### IAM Identity Center (旧 AWS SSO)
SAMLによるシングルサインオン認証を実現することが可能。オンプレ/AWS双方でログインなどの認証が一回で済む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/f6c7abad-eba5-5ae9-6535-144a15c3f3ee.png)

### クエリAPI
アクセスキーが必要

## AWS Directory Service
### AWS Managed Microsoft AD
既存のMS Active Directory（MS AD）とAWSのIAMユーザー認証を統合して、シングルサインオンを実現することができます。既存のオンプレミス環境にあるMS ADを利用してAWS Managed Microsoft ADと信頼関係を構成することで、シングルサインオンを実現することが可能
### Simple AD
AWS上に新規にActive Directoryを構成することができます。これは**既存のオンプレのMS Active Directory間の連携には利用できません。**

## Guard Duty
AWS上のログから脅威を検出する。
AWSによって検知ロジックは日々改善されている。
インスタンス、アカウント、バケットの侵害が検出対象。
検知後、CloudWatchイベントからLambdaを動作させて、インスタンスのロックや認証情報の不正利用防止に繋げる。
## Amazon Inspector
脆弱性を特定し、評価する。
## Amazon Macie
S3上の機密情報を保護する。
## AWS Secrets Manager
認証情報を安全に保存して、利用するための仕組みを提供しているサービスです。データベース認証情報、アプリケーション認証情報、OAuthトークン、API キー、およびその他のシークレットを保存して管理することができます。ライフサイクル管理機能を通じて、シークレットの管理、取得、**ローテーション** することができます。
### AWS Systems Managerパラメーターストアとの違い
SSMパラメーターストアにも認証情報は保存できるが、**ローテーションできない**

## AWS Security Token Service（STS）
ユーザーの一時的なアクセス認証
OpenID Connect(GoogleログインやFacebookログイン)はウェブIDフェデレーション
SAML 2.0(3rdパーティアプリ)はSAMLIDフェデレーション

# ディザスタリカバリ(DR)
https://www.youtube.com/watch?v=Cewa6KVdLmc&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=37

![スクリーンショット 2023-09-27 23.26.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/d16962e7-feda-8030-05c5-77c57ec62f09.png)

# AWS Batch
ジョブのプロビジョニング、管理、監視、スケーリングを管理

# 移行と転送
## Amazon Snow Family
テラバイトやペタバイトの大容量をネットワーク以外の方法で輸送
![スクリーンショット 2023-10-09 17.17.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/71774384-3abc-8d8f-2648-f0c8a0f68937.png)


# Cloud Front
CDNサービス
## ヘッダー
#### デバイスタイプ
CloudFront-Is-Desktop-Viewer
CloudFront-Is-Mobile-Viewer
CloudFront-Is-SmartTV-Viewer
CloudFront-Is-Tablet-Viewer
#### 言語
Accept-Language
#### 場所
CloudFront-Viewer-Country

# Route53
DNSサービス
Route 53レコードは標準のDNSレコードを使用するが、CloudFrontなどのAWSリソースをRoute 53レコードに設定する場合はALIASレコードを利用することが必要

![スクリーンショット 2023-10-15 17.43.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/22fa185d-4d41-f7b4-463e-e5b6e32eabc8.png)

### シンプルルーティングポリシー
ドメインで特定の機能を実行する単一のリソースがある場合に使用します。たとえば、example.com ウェブサイトにコンテンツを提供する 1 つのウェブサーバーなどです。

### フェイルオーバールーティングポリシー
アクティブ/パッシブフェイルオーバーを構成する場合に使用します。
アクティブ/アクティブ構成にはできないので、ほかのポリシーを採用する。

### 位置情報ルーティングポリシー
ユーザーの位置に基づいてトラフィックをルーティングする場合に使用します。

### 地理的近接性ルーティングポリシー
**トラフィックフローを使用する場合のみに使用できます。**
地理的近接性ルーティングはユーザーの位置情報に加えて、リソースの位置情報にバイアス値を掛け合わせて配信リソースの地理的範囲を変更できるルーティング方法（位置情報が日本でも大阪リージョンが近ければ大阪のインスタンスにトラフィックを流す）

### レイテンシールーティングポリシー
複数の AWS リージョンにリソースがあり、レイテンシーの最も小さいリージョンにトラフィックをルーティングする場合に使用します。

### 複数値回答ルーティングポリシー
ランダムに選ばれた最大 8 つの正常なレコードを使用して Route 53 が DNS クエリに応答する場合に使用します。

### 加重ルーティングポリシー
指定した比率で複数のリソースにトラフィックをルーティングする場合に使用します。

### DDoS対策
エニーキャストルーティングとシャッフルシャーディングでDDoS攻撃を受けている最中でも普通のリクエストを処理できる。
### ホストゾーン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/029e454d-8eda-ce76-5200-8538e2cf3f3b.png)
### トラフィックフロー
DNSレコード設定について、レイテンシー、フェイルオーバー、加重などの複数のルーティングポリシーを組み合わせて使用する場合、レコードの管理が難しくなるのをサポートをしてくれる

# Global Accelerator
ELBがリージョン内のみに対して、複数リージョンのトラフィック管理を提供。

# Amazon Cognito
https://www.youtube.com/watch?v=jZGFr37zoCk&list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1&index=52&t=86s

多要素認証（MFA）を追加することが可能
## ユーザープール
GoogleアカウントやAmazonアカウントなどのIDプロバイダと連携してJWTトークンを管理する

## IDプール
JWTトークンを用いてユーザーに一時的にAWSのアクセスを与える
![スクリーンショット 2023-10-02 12.56.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/d9eadf78-633e-6edf-5796-67176b227810.png)

# Auto Scaling
起動設定または起動テンプレートを利用。しかし、起動設定の利用は現在推奨されておらず、起動テンプレートを利用する必要がある。
Auto Scalingでは、スケーリングがうまく実行されずに24時間以上たった場合は、自動的にAuto Scaling処理が停止する
デフォルトでは起動失敗時にCloudWatchに通知することはない
![スクリーンショット 2023-10-09 14.23.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/5fb7b842-e28c-357f-1d29-8f57124b8557.png)

## ターミネーションポリシー
![スクリーンショット 2023-10-02 20.07.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/e732172d-48b4-f462-ca7b-48dfc1a7ffe5.png)

# AWS Trusted Advisor
コスト最適化、耐障害性、パフォーマンス最適化、セキュリティ、サービス制限について、AWS環境の分析、改善を提案する。ベストプラクティスに沿っているか監視。
また、使用料や制限を表示することも可能。

# バックアップ
## Storage Gateway
オンプレミス環境にある企業内ファイルサーバーのデータバックアップ先としてAWSストレージサービスであるS3を使用
ブラウザからの写真などのアップロードにも使える。
AWSPrivateLink(データをインターネットに公開せずに、VPCやAWSサービス、オンプレミス環境とのプライベート通信を提供するサービス)を使用してよりセキュアにデータ転送を行うことが可能
![スクリーンショット 2023-10-06 22.55.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/b7dca74c-44c7-9580-d206-6bed51f0b6fb.png)

# コンテナ
## Amazon ECS
AWS上でDockerコンテナの管理を行う
![スクリーンショット 2023-10-06 23.34.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/d3b7432b-21b0-9f50-5fb9-62bb5ecf64b0.png)
## Amazon EKS
Kubernetes
EKS クラスターは2つのVPCで構成されています。1 つはAWSがKubernetes用に独自に管理する、コントロールプレーンが配置されたVPCです。もう 1 つはユーザーが管理する、ワーカーノード (EC2 インスタンス) およびクラスターが使用するVPCです。
### エンドポイント
プライベートアクセスとパブリックアクセスがあり、セキュリティ要件によって有効/非有効を決める。
セキュアにしたい場合はプライベートアクセスのみ有効にし、AWS PrivateLinkのインターフェースVPCエンドポイントでクラスターと接続する。
クラスターAPIの呼び出しはVPNを用いて行う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/aa70c858-1458-b171-5ae5-2c0a4a031421.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/63d7c181-1710-0262-a0b3-89e154ffd0ca.png)
## Amazon ECR
コンテナイメージを格納するレジストリサービス
S3に保存されるので、S3の設定が適用される

## AWS Fargate
サーバーレスでコンテナを実行するサービス
![スクリーンショット 2023-10-06 23.36.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/03e7cfc3-979a-a848-f0b8-b6bd2239672a.png)

# 分析
## Redshift

### Spectrum
S3パケット内のデータに対して直接クエリを実行できるため、Redshiftへデータをロードする必要がない
RedshiftSpectrumではサーバーリソースの割り当て(増強)をコントロールできるが、Athenaの場合はAWSが自動的に割り当てる。RedshiftSpectrumは大規模で複雑なクエリを実行するのに適しており、Athenaはインタラクティブなクエリをシンプル化するのに適しています。
#### Athenaとの違い
RedshiftSpectrumではサーバーリソースの割り当てをコントロールできますが、Athenaの場合はAWSが自動的に割り当ててくれます。このため、クエリ処理のパフォーマンスを高めるための**サーバーリソース増強はSpectrumでのみできます。** Spectrumは大規模で複雑なクエリを実行するのに適しており、Athenaはインタラクティブなクエリをシンプル化するのに適しています。

### Work Load Management（WLM）
クエリ処理をキューに登録して実行順序を定義することが可能となります。
### 拡張VPCルーティング
VPCに出入りするRedshiftクラスターのすべてのCOPYおよびUNLOADトラフィックを監視することができ

## Amazon OpenSearch Service (旧 Amazon Elasticsearch Service)
AWS上に検索ソリューションを実現することができます。Amazon RDSやAmazon S3と連携して、そのデータを検索する仕組みを実装できます。
AWSサービスのログをS3のバケットにPUT(アップロード)するとOpenSearchServiceに取り込まれ、ダッシュボードによる可視化や、複数ログの相関分析ができる

## Kinesis
動画・音声・アプリケーションログ・IoTデバイスからのセンサーデータなどのストリーミングデータをリアルタイムで収集・処理・分析できるサービス
処理したデータを即時削除することなく24時間から7日間保持することができるため、複数のコンシューマーが同じデータを取得することをサポート
コンシューマーとは、Kinesisからデータを取得するアプリケーションを持つEC2やLambdaなどを指し、DynamoDBやS3などの他サービスへデータを受け渡す
### Kinesis Data Streams
データを低レイテンシー(1秒以下)でリアルタイムに利用できる。
#### シャード(シャーディング)
『シャード』と呼ばれる単位でデータを分割して並列処理
シャード単位で課金
1つのシャードは、1MB /秒のデータ入力と2MB /秒のデータ出力の容量を提供
リシャーディングにより分割(コスト増)もしくは結合(コスト減)が可能
### Kinesis Data Analytics (Apache Flink)
ストリーミングデータに対してリアルタイムで分析が可能
直接にAmazon S3バケットに保存することができる。
### Kinesis Data Firehose
データロードまで60秒必要となり、リアルタイムな処理には向いていません
ストリーミングデータをS3やRedshiftなどのデータストアや分析サービスに送信したり、ストリーミングデータ動作環境の一部としてKinesisDataAnalyticsやKinesisDataStreams・KinesisVideoStreamsと併せて使用されるケースもあり。
レイテンシーの要件が厳しくない場合は、Data Streamsを使わず、直接FireHoseを使う場合がある。
データ処理が必要な場合はLambdaを呼び出す。
![スクリーンショット 2023-10-07 17.22.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/d4d7e8b8-c521-2094-0fdb-46ad1c884016.png)

## Amazon EMR(Elastic Map Reduce)
MapReduce,Hadoop,Sparkを用いて、
リアルタイムデータストリームの処理、機械学習フレームワークを使用したデータ分析、Webサイトの訪問者のアクセスやログをリアルタイム分析を得意とする
Kinesisと組み合わせる用途もアリ。
ノードにはEC2インスタンスが使われる。

## AWS Glue
データレイク 上 の データ を 分析 する ため に データ の 前 処理(ETL) を おこなう サービス
GlueではメタデータはAWS Glueデータカタログに保存することが最適(Dynamo DBじゃない)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/d21a1af1-d4a2-1fca-e552-afc32e32f158.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/5dca842b-8226-8bed-abdf-3cd9431962a3.png)
### Lake Formation
Glue の 機能 をより 便利 に 使用 できる よう に し た もの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/37515147-a9dc-dc33-b658-e840104909e9.png)


## AWS Macie
S3バケット内のオブジェクトに機密情報が含まれていることを機械学習を使用して検知し、通知したり保護処理を実行するサービス

## AWS Data Exchange
AWS上でサードパーティーが提供するデータセットをS3を介して利用できるサービス
外部の企業とS3データを共有する時にも使われる


# マイグレーション
AWS Server Migration Service (SMS) は2022年3月31日に廃止されており、現在はサーバー移行ツールとしてはAWS Application Migration Service (AWS MGN)が利用されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/f3dbc32e-7ddb-3560-33dd-2604fb0c4ca8.png)

# VPC
DNS hostnamesオプションを有効化するためには、 enableDnsSupport 属性を「true」に設定した上で、enableDnsHostnames属性を「true」に設定することで、VPC 内のインスタンスがDNSホスト名を取得可能
## Transit Gateway
VPC と オンプレミスネットワーク を 相互 接続 する ため に 使用 できる ネットワーク の 中継 ハブ
数 千 の VPC・サイト 間 VPN・Direct Connect を 集約
マルチキャスト通信にも用いられることがある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/79fdc11f-0a13-a21b-5f3b-5dfc06c71043.png)


## ゲートウェイエンドポイント
AWS ネットワーク経由で VPC から Amazon S3 にアクセスするためにVPCのルートテーブルにおいてルート指定が必要なゲートウェイです。ゲートウェイエンドポイントは、VPC にインターネットゲートウェイや NAT デバイスを通さずに、Amazon S3 および DynamoDB への信頼性の高い接続を提供します。 **課金されない**
## インターフェースエンドポイント(AWS PrivateLink を使用)
プライベート IP アドレスを使用してVPC から Amazon S3 にリクエストをルーティングすることができるインターフェースタイプのエンドポイントです。ゲートウェイではないため、プライベート IP アドレスを利用した制御を行います。 **課金される**

![スクリーンショット 2023-10-15 19.25.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/db2bc626-3547-abec-a4a5-8379c5c32303.png)

# API Gateway
## スロットリング制限
リクエストが多すぎることでバックエンドサービスが処理しきれなくなることを防ぎ
##  API Gatewayキャッシュ
API呼び出し処理の一部をキャッシュに蓄積して負荷を分散

# Auto Scailing
トリガーにCPU利用率は利用できるが、メモリ利用率はできない
最小キャパシティと最大キャパシティを設定する
vCPU数でも上限設定をすることができる
ヘルスチェックにはEC2タイプとELBタイプがあり、EC2タイプの場合は、ELBが異常を検知してもAuto Scailingは動かない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/0135e150-7a74-6ace-22fc-bf79b86ff6bf.png)

### クールダウン期間
スケーリングが終了してインスタンス数を削減する段階で、いきなりインスタンスを削除しない時間を設定する機能
クールダウン期間が設定されることで、このクールダウンの間はメトリクスの閾値に基づいて追加のスケーリングアクティビティが開始されるのを防ぐことができます。つまり、過剰にスケールさせないために設ける待機時間となります。
スケジュールスケーリングなどは**クールダウンを無視して**実行される

# AIサービス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/8108fcfe-8b9d-175c-c04d-18c86f73a1e2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/c3dbb590-1ec9-c708-2fcc-fb3eb8017001.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/5a727fa7-1129-5c94-d296-9d3c97c52ad9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485045/8001b597-6e18-bd90-c32f-ef38e8700d5a.png)


# その他用語
## MQTT(Message Queuing Telemetry Transport)
リソースに制約のあるデバイスや低帯域幅、高遅延、または信頼性の低いネットワーク向けに設計された、軽量でパブリッシュ・サブスクライブに基づくメッセージングプロトコル
主にIoT向け。

## ROA (Route Origin Authorization)
BGP (Border Gateway Protocol）で使われるAS (Autonomous System)番号と、 IPアドレスの組み合わせが正しいことを示す電子署名が施されたデータ
ホワイトリストのIPアドレスを移行するのに必要。

## SAML（Security Assertion Markup Language）
インターネット上で、IDやパスワードなどの認証情報を連携するためのSSO（シングルサインオン）を実現する仕組みのひとつです。SAMLは主にエンタープライズアプリケーション間の認証で使われ
Microsoft Active DirectoryはSAMLを使用して、AWSクラウドへのAPIアクセス用にSAMLベースのフェデレーションを設定でき