AWS勉強ノート

# はじめに

以下の本で、AWSを勉強した際のメモ書き。

<a href="https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-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%94%B9%E8%A8%82%E7%AC%AC2%E7%89%88-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/4815607389?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=34PVKNIJ7UZLO&dchild=1&keywords=aws%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88+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&qid=1630109015&sprefix=AWSninteisikakusiken%2Caps%2C243&sr=8-1&linkCode=li2&tag=i0fe2-22&linkId=ffb8bf1ce02cf8ca16bb963e6f9edf89&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4815607389&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=i0fe2-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=i0fe2-22&language=ja_JP&l=li2&o=9&a=4815607389" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> <a href="https://www.amazon.co.jp/%E8%A6%81%E7%82%B9%E6%95%B4%E7%90%86%E3%81%8B%E3%82%89%E6%94%BB%E7%95%A5%E3%81%99%E3%82%8B%E3%80%8EAWS%E8%AA%8D%E5%AE%9A-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3-%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%80%8F-Compass-Books%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE-ebook/dp/B08DCLRHC7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E8%A6%81%E7%82%B9%E6%95%B4%E7%90%86%E3%81%8B%E3%82%89%E6%94%BB%E7%95%A5%E3%81%99%E3%82%8B%E3%80%8EAWS%E8%AA%8D%E5%AE%9A+%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3-%E5%B0%82%E9%96%80%E7%9F%A5%E8%AD%98%E3%80%8F+%28Compass+Books%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%29+Kindle%E7%89%88&qid=1630139052&s=digital-text&sr=1-1&linkCode=li2&tag=i0fe2-22&linkId=9665523dba620da68030534a989a5d86&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B08DCLRHC7&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=i0fe2-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=i0fe2-22&language=ja_JP&l=li2&o=9&a=B08DCLRHC7" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> <a href="https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B-Amazon-Web-Services%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%8A%80%E8%A1%93%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8-%E5%B0%8F%E7%AC%A0%E5%8E%9F/dp/4297108895?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B+Amazon+Web+Services%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%8A%80%E8%A1%93%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8&qid=1630139089&s=books&sr=1-1&linkCode=li2&tag=i0fe2-22&linkId=006fc31dea28f97e50ba5b63e67bd14c&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4297108895&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=i0fe2-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=i0fe2-22&language=ja_JP&l=li2&o=9&a=4297108895" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />


# 基本概念

## リージョン

**仕様**

1. リージョンは、１つ以上のAZを持つ。

**Tips**

## アベイラビリティゾーン AZ

**仕様**

1. AZは、電源、地理的に独立している。

**Tips**

1. AZのレイテンシーは、小さい（2ミリ秒以下程度）。

# サービス

## VPC

**仕様**

1. VPCは、最大で1つのIGWを持つ。
1. VPCは、最大で1つのVGWを持つ。
1. VPCのCIDRのサイズは、`/16 ~ /28`の間でなければならない。
1. VPCは、`1 ~ 200`個のサブネットを持つ。

**Tips**

1. VPCのCIDRのサイズは、最も大きいサイズ `/16` にしたほうが良い。

## サブネット

**仕様**

1. サブネットのCIDRのサイズは、`/16 ~ /28`の間でなければならない。
1. サブネットは、ただ1つのAZに属する。変更はできない。
1. サブネットは、ただ1つのルートテーブルを持つ。
1. サブネットは、ただ1つのネットワークACLを持つ。

**Tips**

1. サブネットのCIDRのサイズは、VPCの推奨サイズ `/16` より8ビット小さいサイズ `/24` にしたほうが良い。
1. IGWを接続したサブネットをパブリックサブネット、接続していないサブネットをパブリックサブネットと呼ぶ。

## ルートテーブル

**仕様**

1.ルートテーブルは、1つ以上のサブネットとリレーションを持つ。

**Tips**


## セキュリティグループ

**仕様**

1. セキュリティグループは、複数のインバウンドの制御項目を持つ。
1. セキュリティグループは、複数のアウトバウンドの制御項目を持つ。
1. 制御項目は、プロトコル、ポート範囲、CIDRまたはセキュリティグループ の3つの値を持つ。
1. セキュリティグループは、ステートフルに通信を制御する。

**Tips**

1. セキュリティグループは、デフォルトでは許可されていないすべてのアクセスを拒否する。

## ネットワークACL

**仕様**

1. ネットワークACLは、複数のインバウンドの制御項目を持つ。
1. ネットワークACLは、複数のアウトバウンドの制御項目を持つ。
1. 制御項目は、ポート範囲、CIDR の2つの値を持つ。
1. ネットワークACLは、ステートレスに通信を制御する。

**Tips**

1. ACLは、アクセスコントロールリストの略。
1. ネットワークACLは、デフォルトではすべてのアクセスを許可する。

## EC2 

**仕様**

1. EC2は、1つ以上のインスタンスを持つ。
1. インスタンスは、ただ1つの AMI (Amazon Machine Image) から作成される。
1. インスタンスは、ただ1つのインスタンスタイプに属する。
1. インスタンスタイプは、ただ1つのインスタンスファミリーに属する。インスタンスファミリーには以下の種類がある。
    1. 汎用：M5, T3...
    1. コンピューティング最適化：C5...
    1. メモリ最適化：R5、X1...
    1. 高速コンピューティング：P、G...
    1. ストレージ最適化：D2、I3...
1. インスタンスは、ただ1つの セキュリティグループ を持つ。
1. インスタンスは、1つ以上のEBS (Elastic Block Store) を持つ。
1. EBS 最適化インスタンスは、通常の帯域とEBS専用の帯域を分けるオプションである。
1. インスタンスは、起動中、停止中、削除済みの何れかの状態に属する。
1. インスタンスは、起動中のみ課金される。
1. インスタンスの利用形態は、以下の種類がある。
    1. インスタンス数契約
        1. オンデマンドインスタンス
        1. スポットインスタンス
        1. リザーブドインスタンス
    1. 定額契約 ( Savings Plans )
        1. Compute Savings Plans
        1. EC2 Instance Savings Plans

**Tips**

## Labmda

**仕様**

1. Lambdaは、実行数の課金と、メモリ量の課金の2つで課金される。

**Tips**

## ELB : Elastic Load Balancer

**仕様**

1. ELBには、以下のタイプがある。
    1. CLB: Classic Load Balancer : L4/L7 レイヤ
    1. ALB: Application Load Balancer : L7 レイヤ
    1. NLB: Network Load Balancer : L4 レイヤ
1. ELBは、マネージドサービスである。
1. ELBは、ヘルスチャック機能を有する。ヘルスチェック機能は、定期的に配下のEC2にリクエストを送る機能である。

**Tips**

1. ALBは、CLBより安価で機能(WebSocket, HTTP/2に対応)も豊富。
1. NLBは、LB自体が固定IPを持つ。

## Auto Scaling

**仕様**

1. Auto Scaling は、ELBに紐付くEC2を自動的に増減する機能である。
1. Auto Scaling は、動的、予測、スケジュールの3つのスケーリング方式を持つ。
1. Auto Scaling は、簡易、ステップ、ターゲット追跡の3つのスケーリングポリシーを持つ。
1. Auto Scaling は、スケーリング後に猶予期間（デフォルト5分）を経過するまでヘルスチェックしない。
1. Auto Scaling は、スケーリング直後のインスタンス追加を抑制するクールダウン機能を持つ。
1. Auto Scaling は、スケーリング直後のインスタンス追加を制限するウォームアップ機能を持つ。ウォームアップ期間中は、次のアラートまでインスタンスは追加されず、次のアラートでは前のアラートとの差分のインスタンスだけが追加される。
1. Auto Scaling は、インスタンスの起動、削除時にカスタムアクションを実行するライフサイクルフック機能を持つ。

**Tips**

1. ELBのスケーリングは数分かかる。急激な負担増が予測される場合は、事前にELBプレウォーミングを申請すること。
1. AWSは、簡易スケーリングよりその上位互換のステップスケーリングを推奨している。
1. デフォルトのインスタンス終了ポリシーでは、インスタンスがAZに均等に配分されるように設定されている。

## Container

### ECS : Elastic Container Service

**仕様**

1. ECSは、1 つのClusterを持つ。
1. Clusterは、1つの EC2 インスタンスで構成される。
1. Clusterは、1つ以上の Task を持つ。 Task はコンテナの別名である。Taskは、Task Definitionで定義される。
1. Serviceは、1つの Task Definition から生成された1つ以上のTaskを持つ。

**Tips**

### EKS : Elastic Container Service for Kubernetes

**仕様**

**Tips**

### Fargate

**仕様**

**Tips**

1. Fargateには、EC2は不要である。
1. Fargateは、Task のメモリとCPUの利用量にたいして課金される。

### ECR : Elastic Container Registry

**仕様**

1. ECRは、コンテナをレジストリで管理する

**Tips**


## CloudFront

**仕様**

1. CloudFrontは、拡張子、URLごとにキャッシュ期間を指定することができる。

**Tips**


## Network

### ゲートウェイ GW

**仕様**

1. GWには、IGW、NATゲートウェイ、VGWがある。
1. GWは、ただ1つだけのVPCと接続する。

**Tips**

### インターネットゲートウェイ IGW

**仕様**

1. IGWは、マネージドサービスである。

**Tips**


### NATゲートウェイ

**仕様**

**Tips**


### VGW

**仕様**

**Tips**

### VPCエンドポイント

**仕様**

**Tips**

1. VPCエンドポイントは、AWSサービスに接続する際に使用される。

### VPCピアリング

**仕様**

1. VPCピアリングは、1つ以上のAWSアカウントが保有する2つのVPCを接続する。

**Tips**

### Route 53

**仕様**

1. Route 53は、ただ1つのルーティングポリシーを持つ。
1. ルーティングポリシーは、7種類ある。
1. Route 53は、複数のホストゾーンを持つ。
1. ホストゾーンは、複数のレコード情報を持つ。
1. Route 53は、ヘルスチェック機能を持つ。
1. ヘルスチェック機能は、3種類のヘルスチェック方式を持つ。
1. DNSフェイルオーバーは、ヘルスチェックの結果により発動する。

**Tips**

## Log

### CloudWatch

**仕様**

1. CloudWatchは、Logs、Events、Syntheticsなどの多用な機能を持つ。
1. CloudWatchは、各リソースのメトリクスを監視する機能である。
1. CloudWatch Logsは、ログの中のWarn、Errorなどの文字列を監視する。

**Tips**

### CloudTrail

**仕様**

1. CloudTrailは、S3にログを残す機能を持つ。
1. CloudTrailが監視するイベントには、管理イベントとデータイベントがある。

**Tips**

## Storage

### Snowball

*ストレージ*

**仕様**

1. 

**Tips**


### EBS

*ストレージ*　*ブロックストレージ*

**仕様**

1. EBSは、異なるAZのEC2にあタッチすることはできない。
1. EBSは、以下のいずれかのボリュームタイプに属する。
    1. 汎用SSD : gp2
        1. 一時的にIOPSを高めるバースト機能がある。
    1. プロビジョンドIOPS SSD : io1
        1. 最高性能のボリュームタイプである。
    1. スループット最適化HDD : st1
    1. Cold HDD : sc1
1. ボリュームサイズは、最大出16TB。サイズは何度でも拡張可能である。
1. EBSのSLAは、99.99%/月。
1. EBSは、スナップショット機能を持つ。
1. 暗号化オプションを持つ。スナップショットも暗号化される。
1. EBSは、同一AZ内の複数のインスタンスで共有できる。

**Tips**

1. EBSの設定変更してから、次の変更が可能になるまで6時間以上の間隔が必要である。
1. サイズ拡張後は、OSでファイルシステムの拡張作業を要する。
1. IOPSの変更には最大24以上かかる場合がある。

### EFS

*ストレージ*　*ファイルストレージ*

**仕様**

1. NFSで接続可能。
1. EFSは、3か所以上のAZにファイルシステムを持つ。
1. ファイルシステムは、ただ1つのマウントターゲットを持つ。
1. マウントターゲットは、ただ1つのマウントターゲットとサブネットに属する。
1. EFSには、2つのパフォーマンスモードがある。
    1. 汎用パフォーマンスモード
    1. 最大I/Oパフォーマンスモード
1. EFSには、2つのスループットモードがある。
    1. バーストスループットモード
        1. 1TBを超えると、1日12時間だけ1TBあたり100MB/秒までバーストできるバーストクレジットが付与される。
        1. ベースラインスループットは、ファイルシステムサイズに応じて逓増する。
    1. プロビジョニングスループットモード

**Tips**

1. EFS接続の際は、amazon-efs-utilsを使うと良い。
1. パフォーマンスモードの選定時には、CloudWatchのPercentIOLimitというメトリクスをみると良い。

### S3

*ストレージ*　*オブジェクトストレージ*

**仕様**

1. S3は、バケットを持つ。
1. バケットは、複数のオブジェクトを持つ。
1. オブジェクトは、ただ1つのキーを持つ。
1. オブジェクトは、複数のAZ、AZ内の複数の物理ストレージに複製される。
1. 耐久性は、イレブン・ナインである。
1. 可用性は、フォー・ナインである。ただし、S3 1ゾーン IAを除く。
1. S3は、結果整合性を採用する。
1. S3は、ライフサイクル管理機能、バージョニング機能、Webサイトホスティング機能などの多用な機能を持つ。
1. S3へのアクセス制御は、バケットポリシー、ACL、IAMで実現できる。ただし、それぞれ制御できる項目が異なる。

**Tips**

1. Webサイトホスティングサービスを独自ドメインで利用する場合は、バケット名とドメイン名を一致させること。

### S3 Glacier

*ストレージ*　*オブジェクトストレージ*

**仕様**

1. データ保存領域をボールトと呼ぶ。S3バケットに相当。
1. ボールトに格納されるデータをアーカイブと呼ぶ。S3オブジェクトに相当。
1. アーカイブの情報をインベントリと呼ぶ。1日1回の頻度で更新される。
1. 標準で、ボールトへの転送はSSLで暗号化され、アーカイブも暗号化されて保存される。
1. ボールとロック機能は、削除を禁止する機能。ロックポリシーを設定できる。

**Tips**

## Database

### RDS

*データベース*　*マネージドサービス*　*リレーショナルデータベース*

**仕様**

1. 複数のデータベースエンジンから選択する。
1. Auroraはデータベースエンジンの一種。
1. ストレージは、EBS。
1. 

**Tips**

1. マルチAZは書き込み速度が遅くなる。
1. フェイルオーバーに1~2分程度かかる。

### Redshift

*データベース*　*マネージドサービス*　*列指向データベース*

**仕様**

1. Redshiftは、1つのリーダーノードを持つ。
1. リーダーノードは、複数のコンピュートノードを持つ。
1. コンピュートノードは、1つの専用ストレージとスライスを持つ。
1. スライスは、分散並行処理を実行する最小単位である。
1. Redshiftは、データをブロック単位で格納する。
    1. ブロックの容量は1MBである。
    1. ブロックは、ゾーン内のデータの最大・最小値を格納したゾーンマップを持つ。

**Tips**

### DynamoDB

*データベース*　*マネージドサービス*　*Key-Valueストア*

**仕様**

1. Read Capacity Unit は、読取りのスループットキャパシティである。
1. Write Capacity Unit は、読取りのスループットキャパシティである。
1. キャパシティユニットの増加は制限がなく、減少は1日9回までという制限がある。
1. データをパーティションという単位で管理する。
1. プライマリキーは、「パーティションキー単独＋（ソートキー）」で定義される。
1. セカンダリインデックスには、ローカル（LSI）とグローバル（GSI）の2種類がある。
1. TTL（Time to Live）による期限切れデータ自動削除は、キャパシティユニットを消費しない。
1. DynamoDBは、Streamsと呼ばれる直近24時間の変更履歴を保持する機能を持つ。

**Tips**

1. 通常はミリ秒単位での読み取りレスポンスを保証する。

### Elasticache

*データベース*　*マネージドサービス*　*インメモリデータベース*

**仕様**

1. エンジンは、Memcached と Redisを選択できる。

**Tips**

1. 通常はミリ秒単位での読み取りレスポンスを保証する。

# ユースケース

## オンプレミスとの接続

**仕様**

1. AWS Direct Connectは、AWSと物理拠点を専用回線で接続する。
1. SnowBallでデータ移行する。

**Tips**