AWSの地味で覚えられない各種サービスタイプまとめ

# はじめに
AWSの日々の実際の作業で忘れがちな各サービスのタイプをメモとしてまとめておく。

## EC2
### インスタンスファミリー
| インスタンスファミリー | 利用用途 |
|:-----------|:------------|
| 汎用(M4, M5)|バランスの取れたCPU、メモリ、ネットワーク性能を備え、汎用的な用途に利用|
|バーストパフォーマンス(T2,T3)|通常時はほとんど不可は発生しないが、一時的に負荷が発生する開発機や小規模システムに利用|
|コンピューティング最適化(C4,C5)|CPU性能が必要なAPサーバー、画像処理等に利用|
|メモリ最適化(R4,R5,X1e)|大量のメモリ容量が必要なDBサーバー等に利用|
|ストレージ最適化(D2,H1,I3)|高速なIOPS(Input Output per Second)や、大容量のストレージ容量が必要なDBサーバー、　DWH、ビッグデータ処理等に利用|
|高速コンピューティング(P2,P3,G3,F1)|GPUやFPGA(Field Programmable Gate Array)による高速処理が必要なグラフィック表示、機械学習、深層学習、ゲノム研究等に利用|

### EBSのボリュームタイプ
||||||
|:-----------|:------------|:------------|:------------|:------------|
|ボリュームタイプ|Provisioned IOPS SSD(io1)|汎用SSD(General Purpose SSD(gp2))|スループット最適化HDD(st1)|コールドHDD(sc1)|
|ボリュームタイプの特徴|高速かつ安定的なパフォーマンスgあ求められるワークロード用に設計されたSSDボリューム|幅広いワークロードに対応できるよう、価格とパフォーマンスのバランスの取れたSSDボリューム|高いスループットが必要とされ、アクセス頻度も比較的に高いワークロード用に設計されたHDDボリューム|アクセス頻度が低く、低価格に重点を置いたHDDボリューム|
|代表的なユースケース|I/O負荷の高いNoSQLデータベースやRDMS用のボリューム|OSのボートボリュームや、低レイテンシーが必要とされるアプリケーション用のボリューム|大容量かつ高いスループットが必要とされ、シーケンシャル(順次)アクセスを行うビッグデータ、DWH、ログ処理用のボリューム|アクセス頻度の低い、アーカイブ等のコールドデータ用のボリューム|
|ボリュームごとの最大サイズ|4GB - 16TB|1GB - 16TB|500GB - 16TB|500GB - 16TB|
|ボリュームごとのIOPS|64,000|16,000|500|250|
|ボリュームごとの最大スループット|500MB/s|160MB/s|500MB/s|250MB/s|
|月間料金（東京リージョン）|0.12USD/GB(月) + 0.074USD/ProvisionedIOPS|0.12USD/GB(月)|0.054USD/GB(月)|0.03USD/GB(月)|

### IPアドレスの種類と特徴
| IPアドレスの種類 | 特徴 |
|:-----------|:------------|
|プライベートIP|EC2起動時に、必ず付与される。IP青dレスは、プライベートIPアドレス。EC2が起動するネットワークのサブネットのIPアドレス範囲内のアドレスを利用する。EC2起動時に特定のアドレスを指定するか、AWSによってい自動割当されるアドレスを利用する。EC2を停止し、その後起動を行っても、IPアドレスは変わらない。|
|パブリックIP|EC２起動時に、パブリックIPを利用するオプションを選択することで、付与される。IPアドレスは、グローバルIPアドレス。AWSが管理するグローバルIPアドレスの中から、自動割当される。EC2を停止し、その後起動を行うと、IPアドレスが変わる。|
|EIP(Elastic IP)|EC2起動後に、EIPの払い出しと、EC2へのアタッチを行うことで、付与される。IPアドレスは、グローバルIPアドレス。AWSが管理するグローバルIPアドレスの中から、払い出しされる。EC2を停止し、その後起動を行っても、IPアドレスは変わらない。|

### インスタンスへの操作内容による挙動の違い 
||Reboot(再起動)|Stop(停止)=>Start(開始)|Stop - Hibernate(休止)=>Start(開始)|Terminate(削除)|
|:-----------|:------------|:------------|:------------|:------------|
|EC2が実行される物理サーバー|変わらない|物理サーバーに生障害の問題がない限り変わらない|物理サーバーに障害等の問題が無い限り、変わらない|-|
|EC2のプライベートIPアドレス|変わらない|変わらない|変わらない|開放|
|EC2のパブリックIPアドレス|変わらない|変わる|変わる|開放|
|EC2にアタッチされたEIP|変わらない|変わらない|変わらない|削除|
|EC2の利用料|発生|停止中は発生しない|休止中は発生しない|発生しない|

## ネットワーキング

### NACL(Network ACL)
|特徴|NACL|セキュリティグループ|
|:-----------|:------------|:------------|
|適用単位|サブネット単位|インスタンス単位|
|制御の種別|AllowおよびDeny|Allowのみ|
|戻りの通信の取り扱い|ステートレスであるため、許可設定を行う場合は、戻りの通信の明示的な許可が必要|ステートフルであるため、戻りの通信の設定は不要|
|設定（ルール)の判定順序|NACLの各種許可および拒否設定には、番号を付与可能。付与された番号の順序に従い、設定が判定される|セキュリティグループに定義された全ての設定が判定される|

## 高可用性

### AWSベストプラクティスにおける１０の設計原則
- スケーラビリティ
- 固定資産から可処分資産へ
- 自動化
- 疎結合
- サーバーではなく、サービスの利用（マネージドサービスの活用）
- データベースの使い分け
- 単一障害点の排除
- コストの最適化
- キャッシュの利用
- セキュリティ

## ストレージ

### S3の結果整合性
|オペレーション|Consistencyモデル|データ読み取り時の挙動|
|:-----------|:------------|:------------|
|新規登録|Consistency Read|登録時、即時にデータを参照できる。|
|更新|Eventual Consistency Read|更新直後は、更新前のデータが参照される可能性がある。|
|削除|Eventual Consistency Read|削除直後は、削除前のデータが参照される可能性gあある。|

### Glacierのデータ復元時の選択肢
||迅速(Expedited)|標準(Standard)|大容量(Bulk)|
|:-----------|:------------|:------------|:------------|
|データ復元の所要時間|1〜5分|3〜5時間|5〜12時間|
|データ復元料金|$0.33/GB|$0.011/GB|$0.00275/GB|
|復元リクエスト|オンデマンド：$0.011リクエスト毎 / プロビジョンド:$110プロビジョンドキャパシティユニットごと|$0.057：1.000リクエストあたり|$0.0275:1.000リクエストあたり|


## モニタリング

### 主要なモニタリングサービス
|モニタリング対象|対応サービス|役割|
|:-----------|:------------|:------------|:------------|
|AWSサービスの状況監視|Service Health Dashboard / Presonal Health Dashboard|AWSの各種サービスの状況監視を行う。|
|AWS上のシステム監視|CloudWWatch|AWS上で稼働するシステム監視サービスで、死活監視、性能監視、キャパシティ監視を行う。|
|AWS上のログ監視|CloudWatchLogs|AWSのログ管理サービスで、各AWSサービスのログやEC２上のOSのシステムログを収集する。|
|AWS上のリソース状態監視とアクション|CloudWatchEvents|AWS上のリソースの状態を監視し、リソースに対するイベントをトリガーにアクションを実施する。|
|AWS上のリソース可視化と運用制御|System Manager|AWS上のリソースを統合的に可視化・管理し、運用タスクを自動化する。|

### EC2標準メトリクス

|標準メトリクス|説明|
|:-----------|:------------|
|CPUUtilization|CPU使用率|
|DiskReadBytes|EC２インスタンスで利用できる全てのインスタンスストアボリュームから読み取れたバイト数|
|NetworkOut|全てのネットワークインターフェイスでの、このインスタンスから送信されたバイト数| 
|StatusCheckFailed_Instance|個々のEC2インスタンスのソフトウェアとネットワークの設定を監視し、インスタンスの健全性をチェック|

## コスト最適化

### 購入オプション
|購入オプション|特徴|選択可能なサービスの種類（ルール例）|
|:-----------|:------------|:------------|
|オンデマンド（デフォルト）|初期費用なしの従量課金。利用期間のコミットなし|EC2、EMR、RDS、ElastiCache、Redshift|
|リザーブド（オプション）|長期(1年または３年)利用のコミットによる割引料金で最大７５%割引|EC2、RDS、ElastiCach、Redshift|
|スポットインスタンス（オプション）|初期費用無し、スポット価格（価格変動）による課金で最大90%割引。強制的に終了されるリスクあり。|EC2, EMR| 

### コスト最適化に関連するサービス

|必要となる活動|支援サービス|内容|
|:-----------|:------------|:------------|
|予算設定と監視|予算（Budgets)|予算の策定。予算超過時のアラート|
|傾向分析と予測|Cost Explorer|時系列グラフによる可視化とフィルタリング。将来のコスト予測。|
|コストのリソース使用状況の詳細分析|コスト使用状況レポート(Cost and Usage Report)|コストとリソース使用状況の詳細レポーティング。||
|請求管理|一括請求(Consolidated Billing)|AWSアカウントの一括請求管理|
|コスト最適化のアドバイス|Trusted Advisor|AWSのコスト最適化ベストプラクティスに基づくアドバイスと是正|