【AWS試験】AWSサービス　メモ

## はじめに
本記事は、私がAWS Solution Architect Associate試験を受けるために学習した事をまとめています。
※一部、AWSサービスではなく一般的なIT知識についても記載しています。また、随時内容をアップデートします。


#### AWSサービス名について
- <strong>Amazon ◯◯◯</strong>：独立して使うサービス
    - e.g. Amazon CloudFront
- <strong>AWS ◯◯◯</strong>：他サービスと連携して使うサービス
    - e.g. AWS Elastic Beanstalk



## **コンテナ関連** 
### **Amazon ECS (Elastic Container Service)**
- AWSが提供するフルマネージド型のコンテナオーケストレーションサービス
- EKSよりもシンプル
- オンプレミスのモノリシックアプリケーションをマイクロサービスに分割し、コンテナ化。その後、AWSのApplication Load Balancer（ALB）と組み合わせることで、スケーラブルなアプリケーションへ移行可能


### **Amazon EKS (Elastic Kubernetes Service)**
- AWSやオンプレでKubernetesを実行できるマネージドサービス

### **AWS Fargate**
- コンテナ向け「サーバーレス」コンピューティングエンジン
- サーバー管理やリソース割り当てをAWSが管理
- EC2より割高だが、インスタンス管理不要で運用が楽


## コンピューティング
### Amazon Lightsail
- クラウド上での仮想サーバー（ = Vertual Private Server, VPS）のセットアップを簡単に行えるサービス

### AWS Elastic Beanstalk
- アプリケーションのデプロイと管理を自動化するPaaS
- 開発者はコードをアップロードするだけで、AWSが自動でインフラを管理し、負荷分散・スケーリング・モニタリングなどを実行する

### ブートストラップ自動化スクリプト（≒ユーザーデータ）
- EC2インスタンスの起動時に自動実行させるスクリプト
- 【利用例】EC2を立ち上げたときに下記を自動化：
    - Apache/Nginx をインストールする
    - アプリのコードをGitから落としてくる
    - セットアップ済みのWebサーバーを自動で起動する


### AWS Systems manager Application Manager
- システムマネージャーの一機能で、アプリケーション単位でEC2、Lambda、CloudFormation、タグなどをまとめて一元管理できる
- モニタリングやインシデント対応、設定管理を一画面から実施可能



## **ネットワーク・通信関連**
### ENI (Elastic Network Interface)
- EC2などに付ける仮想ネットワークカード（パソコンやサーバーがネットワークに接続するための部品）のようなもの
- IPアドレスやセキュリティグループなどの設定を持ち、VPC内で通信するために使われる


### **Amazon CloudFront**
- CDN (Contents Delivery Network) 機能を持つデリバリーサービス
- オリジン（例: S3バケットやEC2インスタンス）から取得した静的コンテンツをエッジロケーションにキャッシュ
- 遅延を最小化して高速にコンテンツを配信
- <strong>HTTP, HTTPSのみ対応</strong>
<details><summary>CDNとは</summary>
Webサイトのコンテンツを地理的にユーザーに近いサーバーに保存し、配信スピードを向上させるネットワーク
</details>

<strong>【セキュリティ】</strong>
- <strong>「フィールドレベル暗号化」</strong>を使うことで、セキュリティのレイヤーが追加され、システムの処理中に特定のデータに特定のアプリケーションのみがアクセスできるように、そのデータを保護できる
- オリジンアクセスアイデンティティ（OAI）をCloudFrontに割り当てることで、ユーザーのS3への直アクセスを制限することが可能（ユーザー→CloudFront→S3）

### AWS Global Accelerator
- グローバルユーザーに向けたアプリケーションのパフォーマンスと可用性を向上させるサービス
- <strong>TCP, UDPに対応</strong>

### **NAT Gateway**
- プライベートサブネット内のサーバーやDBがVPC外のサービスへ接続できるようにする仕組み
![スクリーンショット 2025-01-25 12.43.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/fc396487-fc01-5138-e5dc-cadf4f841763.png)

- プライベートサブネット内のサービスがインターネットへアクセスする必要がある際に使用

### **AWS Storage Gateway**
・オンプレ環境からAWS環境にあるストレージジェのアクセスを提供するサービス

### Site-to-Site VPN
- オンプレミス環境とAWSの間にVPNトンネルを提供するサービス
- 同様のサービスに「AWS Direct Connect」があるが、Site-to-Site VPNはインターネットを利用するのに対し、Direct Connectは専用物理回線を用いる

### ネットワークアクセスコントロールリスト（ACL）
- サブネットレベルで特定のインバウンドまたはアウトバウンドのトラフィックを許可/拒否する
![スクリーンショット 2025-01-25 13.50.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/f782c78d-b8cb-e2f5-4e11-b07265b7918b.png)

### AWS Transfer for SFTP
- SFTPを使用してAmazon S3 に直接ファイルを転送できるフルマネージドサービス
- 従来の SFTP サーバーを管理する手間を省きながら、安全でスケーラブルなファイル転送を実現できる
- ＜ユースケース＞
    - 顧客や取引先との間での セキュアなファイルの受け渡し
    - データレイクや ETL 処理の入口としての SFTP 経由のバッチデータ受信
    - オンプレシステムが SFTP しか対応していないが、AWS に直接保存したい

### ゲートウェイエンドポイント
- AWS の VPC 内から特定の AWS サービス（e.g. Amazon S3 や DynamoDB）にプライベート接続を提供する仕組み
- インターネットゲートウェイや NAT ゲートウェイを経由せずに、AWS ネットワーク内で通信を行うことが可能
![スクリーンショット 2025-01-25 17.22.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/58cc861a-5d67-b6a3-b405-df6ca6e7407f.png)

### ゲートウェイロードバランサー
- AWSが提供するサービスの一つで、ネットワークトラフィックを処理するための高度なロードバランサー
- 主に、仮想アプライアンスやセキュリティツール（ファイアウォール、IDS/IPS、DDoS防御など）を通過するトラフィックを効率的に処理・分配するために使用する
    - <strong>アプライアンス</strong>：特定の機能を実行するために設計されたkik
        - <strong>ネットワークアプライアンス</strong>: ファイアウォール、ロードバランサー、VPNゲートウェイなど。これらは、ネットワークトラフィックを処理・管理するために特化している
        - <strong>ストレージアプライアンス</strong>: データのストレージ管理を提供する専用のハードウェア。RAID構成やバックアップ、データ圧縮などを行う
        - <strong>セキュリティアプライアンス</strong>: ウイルス対策や侵入検知、防御システム（IDS/IPS）など、セキュリティのための専用デバイス
        - <strong>クラウドアプライアンス</strong>: クラウドサービスを特定の機能（例えば、バックアップやディザスタリカバリ）で提供するハードウェア・ソフトウェアの組み合わせ
        - ソフトウェアアプライアンス（仮想アプライアンス）：


### 仮想プライベートゲートウェイ（VGW: Virtual private Gateway）
- 1つのVPC・オンプレ環境をVPNで接続
- AWS側のVPN終端に設置する


### トランジットゲートウェイ
- 複数のVPC・オンプレ環境をVPNで接続
- VPC・VPCをAWS内のネットワークで接続


### カスタマーゲートウェイ（CGW: Customer Gateway）
- 1つのVPC・オンプレ環境をVPNで接続
- オンプレ側のVPN終端に設置する


### Direct Connect Gateway
- 仮装プライベートゲートウェイ（VGW）とプライベート仮装インターフェイス（VIF）をグループ化する機能
- 「AWS Direct Connect Gateway」は「リージョンに属さない」グローバルなサービスなので、海外リージョンのVPCとの接続可能になる


### Amazon Route 53
参考：https://zenn.dev/issy/articles/zenn-route53-overview
- 「フェイルオーバールーティングポリシー」でプライマリ、セカンダリのAZを設定することで、障害時に自動的にセカンダリのシステムに切り替えができる
</br>

- 構成要素
    - <strong>ホストゾーン</strong>
        - パブリックホストゾーン：
            インターネット上に公開されたDNSドメインのレコードを管理するコンテナ）
        - プライベートホストゾーン：
            VPCに閉じたプライベートネットワーク内のDNSドメインのレコードを管理するコンテナ
    - DNSレコード
        - ホストゾーンを作成する自動的に作成されるもの
            - SOA（Start of Authority）レコード
            - NSレコード
        - ユーザーが追加するもの
            - A（Address）レコード
                - ドメイン名とIPv4の対応（example.com → 192.0.2.1）
            - AAAAレコード
                - ドメイン名とIPv6の対応（example.com → 2001:db8::1）
            - CNAMEレコード
                - ドメイン名を別のドメインに紐付ける（`sub1.example.com. IN CNAME sub2.example.com. `とすると、`sub1`を`sub2`に読み替えてくれる）
            - Aliasレコード
                - AWSリソースのFQDNを指定できる

### ファイル共有プロトコル（SMBとNFS）
- SMB (Server Message Block)
    - Windows環境のファイル共有を行う
    - Active DirectoryやNTLM、Kerberosで認証
    - パフォーマンスは高いが、オーバーヘッドが大きい
    - 主に企業内ネットワークでのファイル共有で用いる
- NFS (Network File System)
    - Linux/Unixファイル環境のファイル共有
    - Kerberos、UNIX UID/GIDで認証
    - 軽量でLinux/Unix環境では高速
    - 主にHPCクラスタなどの分散環境でのデータ共有に用いる

### Transit Gateway
- AWS環境内で複数のVPC（仮想プライベートクラウド）とオンプレミスネットワークを効率的に接続するためのネットワークハブ


## **セキュリティ関連**
### **AWS Certificate Manager (ACM)**
- SSL/TLS証明書の発行、管理、および自動化を行うフルマネージドサービス
- 例: ALBと併用することで、ACM発行の証明書を使用してHTTPS通信を簡単に設定可能
- ALBが暗号化・複合化を担当し、EC2インスタンスの負担を軽減
- パブリックSSL証明書の<strong>「エクスポート不可」！</strong>
→ EC2にSSL証明書をインストールする際は、サードバーティのものを使用する

### AWS Shield Standard
- L3（ネットワーク層）, L4（トランスポート層）における攻撃を防御
- 基本的なDDoS攻撃から防御
    - SQLインジェクションやクロスサイトスクリプティング攻撃からは防御できないので注意！
- 自動適用であるため、追加コストなし

### AWS Shield Advanced
- 有償サービス
- SAWS Shield Standardの機能に加え、以下に対応
    - L7（アプリケーション層）の攻撃への防御
    - DDoS対策ダッシュボード（攻撃の可視化・リアルタイムモニタリング）
    - AWS WAFとの統合
    - 専門チームによる即時対応
    
### **Amazon Macie**
- S3に含まれる機密情報を自動的に発見し、通知や保護処理を行う

### AWS WAF
- L7における防御
- Webアプリケーションファイアウォール
- 一般的なWebサイトに対する攻撃から保護する
    - e.g.
        - SQLインジェクション
        - クロスサイトスクリプティング
- 「地理的一致」ルールステートメントがあるため、特定の国からのアクセスを許可できる（それ以外は全てブロック）
    - e.g. 日本を許可リストに入れると、その他の国からはアクセスが全てブロックさr

### Amazon Detective
- AWS上のセキュリティ問題を調査して解決するためのサービス

### Amazon GuardDuty
- 悪意のあるアクティビティや異常な動作をモニタリングし、AWS のアカウント、ワークロード、データを保護する脅威検出サービス

### AWS Secrets Manager
- API KeyやDBのパスワードなどの機密情報（Secrets）を安全に保存し、管理するためのサービス
- 主な機能
    - 機密情報を暗号化して保存し、不正アクセスから保護
    - DBのパスワードなどの機密情報を定期的に更新（<strong>自動ローテーション<strong>）
    - IAMポリシーを使ったアクセス管理

### AWS Key Management Service (KMS)
- 「<strong>Key</strong> Management Service」という名の通り、暗号化<strong>キー</strong>を安全に作成、管理し、さまざまなAWSサービスと連携してデータを暗号化するためのサービス
- 主な機能
    - 暗号化キーを安全に作成・管理
    - データの暗号化・復号化
    - IAMポリシーを使ったアクセス管理

### AWS Secrets ManagerとKMSの違い
#### 機能面
|                   | **Secrets Manager**                           | **KMS**                                      |
|-------------------|-----------------------------------------------|----------------------------------------------|
| **保存対象**      | API Keyやパスワード                          | 暗号化キーそのもの                           |
| **自動化**        | 自動ローテーション機能を提供                 | 自動ローテーションはなし                      |
| **連携サービス**  | 機密情報の管理に特化                         | 他のAWSサービスと直接連携してデータの暗号化・復号化を行う |

#### 利用場面
- Secrets Manager：アプリが機密情報を必要とする場合（e.g. DBアクセス時のAPI Key）
- KMS：データ暗号化（e.g. S3バケットに保存されたデータの暗号化）
:::

### IAMロールとIAMポリシーの違い
![スクリーンショット 2025-01-28 21.40.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/0f93afd1-9972-a7fc-f30c-87de60e2141c.png)

|                   | **IAMロール**                           | **IAMポリシー**                                      |
|-------------------|-----------------------------------------------|----------------------------------------------|
| **概要**      | AWSリソースが他のAWSリソースを操作する権限を委譲する仕組み。 | AWSリソースに対する操作権限を定義したもの。|
| **アタッチ先**        | AWSリソース（例: EC2、Lambda）。 | IAMユーザー、IAMグループ、IAMロール。  |
| **適用数**  | 1つのAWSリソースに対して1つのIAMロールのみアタッチ可能。 | 1つのIAMエンティティに対して複数のIAMポリシーをアタッチ可能。 |

### IAMポリシーの中身
- `"Action": "s3:ListBucket"`：バケット内のオブジェクトのリストを取得するための権限。このアクションを許可することで、特定のユーザーやサービスが指定されたS3バケット内に格納されているオブジェクトを一覧表示できる

### Principal（プリンシパル）とは
- AWSリソースに対するアクションまたはオペレーションをリクエストできる人間のIDまたはワークロード
- ルートユーザ、IAMユーザ、IAMロール、Federatedユーザ（AWSアカウント外で管理、認証され、AWSのサービスやリソースに対して権限を所有する主体）などがある
- JSON形式のIAMポリシー内で以下のように指定
    - 例
        - 「Nick」というユーザーに`sample_baucket`というS3バケットのリスト操作を許可
            ```json
            { 
              "Version": "2025-02-26",
              "Statement": {
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::sample_bucket",
                "Principal": {
                  "AWS": "arn:aws:iam::123456789012:user/Nick"
                }
              }
            }
            ```
        - 特定のリソースベースのポリシーをアッタッチする場合
            - EventBridgeのルールを使用してLambda関数を呼び出すには、Lambda関数のポリシーに以下のようなアクセス許可を追加すr
            ```json
            {
              "Effect": "Allow",
              "Action": "lambda:InvokeFunction",
              "Resource": "arn:aws:lambda:region:account-id:function:function-name",
              "Principal": {
                "Service": "events.amazonaws.com"
              },
              "Condition": {
                "ArnLike": {
                  "AWS:SourceArn": "arn:aws:events:region:account-id:rule/rule-name"
                }
              },
              "Sid": "InvokeLambdaFunction"
            }
            ```


### AssumeRoleとは
- 信頼ポリシーとは


### AD Conector
- オンプレミスの Microsoft Active Directory（AD） に接続するためのプロキシサービス
- AWS上に ディレクトリを複製せずに、認証・認可をオンプレADで行う
- マネージド型のAD統合手段として使われ、ADユーザーがAWSリソースに安全にアクセス可能




## AWS Systems Manager Session Manager
- SSHやRDP（Remote Desktop Protocol：Microsoftが開発したネットワーク通信プロトコル）なしでEC2やオンプレミスサーバーへ安全にアクセスできるリモート管理ツール
- 踏み台ホストを使用せず、Session Managerを経由してEC2インスタンスなどへSSH接続が可能

## SSE-S3, SSE-KMS, SSE-C
### SSEとは
- Server Side Encryptionの略（サーバー側の暗号化）
- 対義語はCSE (Client Side Encryption)

|   | SSE-S3 | SSE-KMS | SSE-C |
|---------------|----------|-------------|-----------------|
| 特徴   | S3が管理するデフォルトの暗号化方式 | AWS Key Management Service（KMS）を使用 | ユーザーが独自のキーを提供 |
| キー管理  | AWSが自動管理 | ユーザーがKMSキーを管理 | ユーザーがフル管理 |
| キーローテーション    | 自動 | 手動 | 自動（設定可能） |

---

## **データベース・キャッシュ関連**
### **Amazon DynamoDB**
- サーバーレス NoSQL データベースサービス
- <strong>ポイントタイムリカバリ</strong>：5分前〜35日前までの任意の時点に、秒単位でテーブルを復元（95%が<strong>1時間未満</strong>で復旧完了）
- <strong>DynamoDB Streams</strong>：DynamoDBテーブル内で行われた変更（アイテムの追加、更新、削除）をリアルタイムで追跡し、変更履歴をストリームとして提供する。これにより、他のシステムやサービスがDynamoDBの変更にリアルタイムで反応できる用になる
- <strong>グローバルテーブル</strong>
    - リージョンレベルでのレプリカテーブルを作成できる

### **Amazon DynamoDB Accelerator (DAX)**
- Amazon DynamoDB用のフルマネージド型で可用性の高いキャッシュサービス
- 「読み取り処理」を高速化するために使う

### **Amazon ElastiCache for Redis**
- ミリ秒未満のレイテンシーを実現する高速なインメモリデータストア
- 文字列、リストなど複雑なデータを扱える
- 永続化オプションがあり、データをディスクに保存可能
<details><summary>Redisとは</summary>
Redis(REmote Dictionary Server)：NoSQL型のインメモリデータベース（RAMにデータを保存する）
</details>

### **Amazon ElastiCache for Memcached**
- Memcachedと互換性のあるインメモリキーバリューストアサービス
- <strong>「キーと値」</strong>のペアのみで単純なデータ構造を扱う
- データ永続性がないため、サービス停止や再起動によってメモリ内のデータは失われる！
<details><summary>Memcachedとは</summary>
Memcached：オープンソースの分散型メモリーキャッシュシステム
</details>

### AWS OAC (Origin Access Control)
- S3 バケットの直接的なアクセスを制限し、CloudFront からのみの配信を許可する方法

### Amazon RDS Proxy
- Amazon RDSのDB接続を効率的に管理するフルマネージド型のサービス
- ユースケース
    - Lambdaでサーバーレスなシステムを構築する際、LambdaとRDSだと同時接続数を超えてしまいアクセス不可になる→そこで、Lambda + RDS proxy + RDS構成をとる
    - ![スクリーンショット 2025-02-01 15.42.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/bc41ffed-ad40-6224-7e2d-da6d1bdb6c10.png)


---

## **ストレージサービス**
### ストレージの種類
![スクリーンショット 2025-01-25 13.13.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/66163377-d731-ea89-3a58-ee9610f806da.png)
- S3（オブジェクトストレージ）
    - 耐久性が強み
    - AWS Organizationの組織内のアカウントのユーザーのみにアクセスを制限するには、「aws:PrincipalOrgID」をS3バケットポリシーに追加するだけでと良い
- EFS（ファイルストレージ）
    - 階層構造でデータ保管できることが強み
- EBS（ブロックストレージ）
    - 高パフォーマンスが強み

### **Amazon Elastic File System (EFS)**
- フルマネージドで提供されるストレージサービス
- Linuxベース
- Amazon EC2 Windowsインスタンスにはマウントできない

### **Amazon FSx for Windows File Server**
・Windowsベースのアプリケーション向けに設計された、フルマネージド型のファイルストレージサービス
・Active Directoryと統合可能
・Windows環境のデータストレージをクラウド移行したい場合に最適
<details><summary>FSxとは</summary>
FSx：AWSが提供する「フルマネージド型ファイルストレージサービス」
</details>

### S3オブジェクトロック
・Amazon S3 オブジェクトが一定期間または無期限に削除または上書きされるのを防ぐ
#### リーガルホールド（法定保留）
・保持期間：永久的
#### リテンションモード（保持期間設定）
・保持期間：指定可能
・（制御の強さ①）
1. <strong>コンプライアンスモード</strong>
・ルートユーザーを含むすべてのユーザ：指定期間中はオブジェクトが読み取り専用になる
・モード変更や保持期間の短縮はどのユーザーで合っても行えない
・（制御の強さ②）
1. <strong>ガバナンスモード</strong>
・権限を持たないユーザー：指定期間中はオブジェクトが読み取り専用になる
・権限を持つユーザー：オブジェクトの更新、削除、ガバナンスモードの解除ができる
・（制御の強さ③）

### Amazon Kinesis
- <strong>「リアルタイムで」</strong>大規模なデータストリームを処理・分析するためのマネージドサービス
- （おまけ）Kinesisの由来
    - ギリシャ語の「kinesis（キネシス）」に由来し、「動き」や「運動」を意味する
#### Amazon Kinesis Data Streams (KDS)
- 特徴
    - リアルタイムデータストリームを処理・分析するためのサービス
    - データストリームにデータを取り込み、ストリーム内のデータを並列で処理できる
- 用途
    - リアルタイムログ分析、センサーデータ収集、金融取引データの分析など
#### Amazon Data Firehose
- 特徴
    - データを指定した宛先（Amazon S3、Redshift、Elasticsearchなど）にリアルタイムでストリーミングするETL（抽出、変換、ロード）サービス
    - バッファリングと圧縮、変換が可能
- 用途
    - ログデータやセンサーデータをAWSサービスにストリーミングし、後で分析・可視化する
- （おまけ）由来
    - fire hoseは消火ホースの意味
    - 消火ホースが火災用給水線（データ元）→火災現場（データの宛先）へ大量の水（大量のリアルタイムデータ）を勢いよく流すイメージ
#### Kinesis Data Analytics
- 特徴
    - リアルタイムデータストリームに対してSQLクエリを使用して処理・分析を行うサービス
    - Kinesis Data Streamsと統合して、リアルタイムにストリームデータを処理する
- 用途
    - データのリアルタイム処理、アラートの生成、イベント分析
 #### Amazon Managed Service for Apache Flink (旧 Kinesis Video Streams)
- 特徴
    - 動画ストリームの取り込み、保存、処理を行うサービス
    - リアルタイムでストリーミングデータを収集し、分析可能
- 用途
    - IoTデバイスからのビデオデータ、監視カメラの動画分析、機械学習を使った動画解析

### インスタンスストア
- EC2で利用できる基本的なブロックストレージの1つ
（もう一つはEBS）
- 特徴：揮発性があり、インスタンスをStopするとデータが消えるため、一時的なデータの保管場所というイメージ

---

## データ移行サービス
### AWS DataSync
- オンプレミスのストレージとAmazon S3やAmazon EFS、Amazon FSxなどのAWSストレージサービス間で大規模なデータ転送を効率的に行うためのフルマネージドサービス
- オンプレミス→AWSへのデータの転送速度は最大で10倍速く、転送のセキュリティやデータ整合性を保ちながら、簡単に移行できる

---

## データレイク管理
### AWS Lake Formation
- AWS Lake Formation は、データレイクの構築・管理を簡素化するためのAWSサービス
- 従来、データレイクを構築するにはS3、IAM、Glue、Athenaなどのサービスを組み合わせて管理する必要があったが、Lake Formation を利用することで、データのインジェスト・カタログ化・アクセス制御を一元管理できる
![スクリーンショット 2025-02-15 10.13.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/d97fe5ff-af19-48e9-893f-db4980f0e3fc.png)

---

## データ統合
### Amazon AppFlow
- Slack, SalceforceなどのSaaSアプリケーションとS3やRedshiftなどのAWSサービスとの間でデータを安全に転送できるサービス
- スケジュール設定、イベントによる発火設定などが可能



---

## **分析・検索関連**
### **Amazon Athena**
- サーバーレスでS3に格納されたデータをSQLで分析可能
- ペタバイト級のデータを扱える

### **Amazon OpenSearch Service (旧Amazon Elasticsearch Service)**
- フルマネージドな検索および分析サービス
- テキストや非構造化データの検索、可視化、分析に特化

### Amazon Redshift
- AWSのクラウド型データウェアハウス（DWH）
- ペタバイト級のデータを高速かつ低コストで分析可能
- （おまけ）Redshift：赤方偏移
https://cloud.watch.impress.co.jp/docs/special/578047.html
>　最後になぜ”Redshift”というネーミングにしたのかをグラバニ氏に聞いてみた。Redshiftの日本語訳は”赤方偏移”、光のドップラー効果を意味している。
>　有名な「ハッブルの法則」にあるように、高速で離れていく光源から発せられる光のスペクトルは赤くシフトしていく（逆は青くずれる）。
>　「現在は、ビッグオブジェクトがオンプレミスからクラウドへとすごい速さで離れていきつつある。たくさんの分析されるべきデータがインサイドからアウトサイドへと放たれていく。その動きはまさにわれわれが描く軌道そのもの。フィジカルな環境からのターニングポイントという意味を込めてRedshiftと名付けた」――。

 ### AWS Glue
 - フルマネージド型のデータ統合サービス
 - データのETLプロセス（抽出、変換、ロード）自動化や、データレイクやデータウェアハウスにデータを統合・整理し、分析や機械学習の活用に役立つ

### Apache Parquet
- 効率的なデータストレージと高速クエリのために設計されたカラム指向のオープンソースのデータフォーマット
- 主な特徴
        - カラム指向ストレージ → データを列単位で保存し、特定の列の読み取りが高速
    - 高圧縮率 → Gzip, Snappy, ZSTD などの圧縮方式をサポート
    - スキーマ埋め込み → データの型情報をファイルに保存
    - 分散処理向け → Spark, Hive, Presto などと統合可能


### AWS X-Ray
- アプリケーションのパフォーマンスの可視化とトラブルシューティングを可能にする分散トレーシングサービス
- マイクロサービスやサーバーレス環境で特に有用
    - リクエストのトレースとパフォーマンス分析
    - レイテンシの高い箇所やエラーの可視化
    - Lambda や API Gateway、EC2、ECS などと統合可能


---

## **監視関連**
### **CloudWatch Synthetics**
- カナリアスクリプトを使用し、ユーザー操作やシナリオをシミュレートしてアプリケーションやWebサイトの可用性を監視
- テストデータでエンドポイントやユーザー体験を事前チェック（例: APIの応答確認）
![スクリーンショット 2025-01-25 11.41.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609373/c48f63c6-b03a-d413-f408-058a1e70cb17.png)

### AWS Network Firewall
- Amazon 仮想プライベートクラウド (VPC) 向けに脅威対策を容易に導入できるマネージドネットワークセキュリティサービス
- VPCのサブネットに配置し、VPCに出入りするトラフィックの検査やフィルタリングを行える

### AWS CloudTrail
- AWS アカウントのガバナンス、コンプライアンス、運用監査、監査を行うためのサービス
- <strong>ヒト</strong>の動きを監視するイメージ

### Amazon CloudWatch
- サービスやアプリケーションからメトリクス（例: CPU使用率、リクエスト数など）を収集・監視
- 実際の動作データをもとにシステム全体を監視（例: EC2のCPU使用率）
- CloudWatchダッシュボードは、AWSのアカウントやIAMユーザーを持たない相手にも共有可能
- CPU使用率やエラー発生率などにフォーカス
- <strong>モノ</strong>の様子を監視するイメージ

### AWS Config
- <strong>AWSリソース</strong>の設定変更を記録・監査・評価するマネージドサービス
- どのリソースが変更されたか？にフォーカス

---

## アプリケーション開発・統合
### AWS Amplify
- フロントエンドおよびモバイルアプリの開発・デプロイを支援するフルマネージドサービス
- AWSの豊富なクラウド機能を簡単に利用でき、認証、ストレージ、API、プッシュ通知などの機能を提供
- （おまけ）Amplify: 増幅する


### AWS SAM (Serverless Application Model)
- サーバーレスアプリケーションの構築・デプロイ・テストを簡単にする IaC フレームワーク
- YAMLファイル（template.yaml）でアプリを記述し、CLI でビルド・デプロイできる

| 機能             | 説明                     |
| -------------- | ---------------------- |
| `sam init`     | プロジェクトテンプレート生成         |
| `sam build`    | 依存関係を含めてローカルビルド        |
| `sam local`    | Dockerを使ってローカル実行・テスト   |
| `sam deploy`   | CloudFormationを使ってデプロイ |
| `sam validate` | テンプレートの構文チェック          |


### AWS CodeDeploy
- アプリケーションを自動で安全に EC2、ECS、Lambda にデプロイするサービス
- 手動ミスを減らし、ダウンタイムも最小限に抑える


### REST API, HTTP API
- AWSにおいては主に Amazon API Gateway によって提供される機能
- API GatewayとDynamoDBとの接続方法
    - REST API：API GatewayのAWS統合タイプでDynamoDBと直接統合
    - HTTP API：Lambda関数を経由してDynamoDBからデータを返す

| 項目   | REST API                  | HTTP API          |
| ---- | ------------------------- | ----------------- |
| タイプ  | フル機能                      | 軽量・高速             |
| 用途   | 認証、ステージ、トラフィック制御などが必要なAPI | シンプルなマイクロサービス通信向け |
| 管理機能 | 高度                        | 限定的               |
| コスト  | やや高め                      | 低コスト              |


#### （参考）エクスポネンシャルバックオフ（Exponential Backoff）
- ライアントが通信に失敗した際、要求間の遅延を増やしながら定期的に再試行するアプローチ（一時的な障害時のシステム停止を避け、可用性UP）
- 一般的なエラー処理戦略として知られている


### AWS OpsWorks
- Chef や Puppet を使用してインフラ構成管理を自動化できるサービス
- サーバーの設定、デプロイ、設定管理をコード化し、インフラの一貫性と再現性を確保する
    - `Chef`
    ファイルに記述した設定内容に応じて自動的にユーザーの作成やパッケージのインストールを行うサーバ管理ツール
    - `Puppet`
    Chefと同様にサーバーの環境設定やインストールなどを自動化する設定管理ツール


---

## 組織管理
### FullAWSAccess SCP
- AWS Organizationsにおける「SCPのテンプレート」の1つで、すべてのAWSサービスへのアクセスを許可するポリシー
```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}
```
- IAMの許可よりも前にチェックされる「組織全体の制限」機能
- ユースケース
    - FullAWSAccess SCPを削除することで、全てのAWSサービスが暗黙的に拒否され、特定のAWSサービスのみを明示的に許可する（許可リスト戦略）

---

## 移行
### AWS ADS (AWS Application Discovery Agent)
- システム設定、システムパフォーマンス、実行中のプロセス、および酢ステム間のネットワーク接続等の詳細情報を取得でき、LinuzおよびWindowsをサポートしている

---

## インフラストラクチャ自動化（IaC）
### CloudFormation
- TerraformのAWSサービス版
- インフラ構成をコードとして定義・管理できるサービス
- JSON または YAML 形式のテンプレートで AWS リソースを記述し、一貫性のある方法で自動的に作成、更新、削除できる
- ユースケース
    - 本番・開発・検証環境の自動構築
    - インフラのコードレビューやバージョン管理
    - CI/CD パイプラインでの自動デプロイ連携（CodePipeline、CodeBuildなどと）

#### CloudFormation StackSets
- CloudFormation スタックを 複数のアカウントやリージョンにまたがって一括デプロイできる仕組み
- 例
    - 標準のVPCやIAMロール、監視設定などを、100個のAWSアカウントに自動で適用したい場合に有効



---

## Other
### AWS Managed Service Provider (MSP)
- AWSの公式パートナー制度の1つであり、企業のAWS環境の設計・運用・最適化を支援するマネージドサービスを提供する認定パートナー