【EC2】EC2とは

## EC2とは
**Amazon Elastic Compute Cloud** の略
AWSが仮想化環境上で稼働する仮想サーバー

## AMI
**Amazon Machine Image** の略
インスタンスの起動に必要な情報を含むOSのテンプレート

- EC2インスタンスのルートボリュームの情報、特定のAWSアカウントに対するEC2の起動許可、EC2インスタンス起動時にインスタンスにアタッチするルート以外のボリュームの情報などが含まれる

- リージョン単位で作成される

- あるリージョンで作成したAMIを別リージョンで利用する場合、利用したいリージョンにイメージをコピーする必要がある

- オブジェクトストレージであるS3に保存される

- 変更を加えた状態のインスタンスから、自分専用の**カスタムAMI**を作成することが出来る

![スクリーンショット 2020-08-16 9.44.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379501/43d07fcb-db8e-c115-a1a6-37db9fea7451.png)

## インスタンスタイプ
CPU・メモリ、ストレージ、ネットワークキャパシティなどがAWSによってあらかじめ定義されたサーバーリソース

（例）**m5.large**
**m**→インスタンスファミリー、**5**→インスタンス世代、**large**→インスタンスサイズ

## インスタンスファミリー
インスタンスタイプを利用用途ごとにグルーピングしたもの

### 1. 汎用
**ファミリー名と世代**：M4、M5
**利用用途**：バランスの取れたCPU、メモリ、ネットワーク性能を備え、汎用的な用途に利用

### 2. バーストパフォーマンス
**ファミリー名と世代**：T2、T3
**利用用途**：一時的に負荷が発生する開発機や小規模システム等

### 3. コンピューティング最適化
**ファミリー名と世代**：C4、C5
**利用用途**：CPU性能が必要なAPサーバー、画像処理等

### 4. メモリ最適化
**ファミリー名と世代**：R4、R5、X1e
**利用用途**：大量のメモリ容量が必要なDBサーバー等

### 5. ストレージ最適化
**ファミリー名と世代**：D2、H1、I3
**利用用途**：高速なIOPSや、大容量のストレージが必要なDBサーバー、DWH（Data Warehouse）、ビッグデータ処理等

### 6. 高速コンピューティング
**ファミリー名と世代**：P2、P3、G3、F1
**利用用途**：GPU（Graphics Processing Unit）やFPGA（Field Programmable Gate Array）による高速処理が必要なグラフィック表示、機械学習/深層学習、ゲノム研究等

## 購入オプション
### 1 .オンデマンドインスタンス
EC2インスタンスを起動する場合のデフォルトの購入オプション

- EC2のリージョン・インスタンスタイプ・OSタイプごとに料金レートが定められている

- EC2インスタンスを起動させた時間に応じて課金される

### 2. リザーブドインスタンス
予め決められた期間（1年または3年）分の料金をコミットして購入することで、オンデマンドインスタンスに比べて最大75％の料金割引が適用される

**【スコープ】**
**1. リージョン指定**：どのAZでもインスタンスの配置が可能。リソースのキャパシティは予約されない。キャパシティを超える起動リクエストがあった場合には、キャパシティ予約されているリザーブドインスタンスを優先的に起動するため、起動は保証されない。

**2. AZ指定**：AZ内で起動するEC2インスタンスのキャパシティを予約するため、リソース枯渇時においても優先的な起動が保証される。

**【提供クラス】**
**1. スタンダード**：同じインスタンスファミリー内であれば、購入時に指定したAZの変更や、インスタンスサイズの変更が可能。それ以外の条件の変更は原則不可。

**2. コンバーティブル**：一度指定したインスタンスファミリーやインスタンスサイズ自体の各種構成を柔軟に変更が可能。（インスタンスファミリー／OS／テナンシー／支払オプション）

**【支払い方法】**
**1. 前払いなし**：毎月一定金額を支払う。割引率は低いが、初期費用は最安。

**2. 一部前払い**：リザーブドインスタンスの購入料金の一部を前払い、残額を毎月支払う方法。

**3. 全前払い**：リザーブドインスタンスの購入料金を一括で全額前払いする。最も割引率が高い。

### 3. スポットインスタンス
EC2インスタンスの需要と供給によってリアルタイムで変動するスポット価格に基づき、利用者が希望する価格で予め入札しておく仕組み

- AWS内の有限なリソースであるEC2インスタンスに対し、余っているリソースを低価格で供給することで、AWS全体のリソースを有効活用出来るようにしている

**【オプション】**
**1. スポットブロック**：予め時間を指定しておき（最大6時間）、その間はスポットインスタンスの継続起動を保証する

**2. スポットフリート**：EC2リソースのターゲット容量を予め指定しておき、その条件を満たすようにスポットインスタンスの稼働を制御する

### 4. Savings Plans
リザーブドインスタンス同様、1年または3年の期間に特定の量の処理能力を使用する契約を結ぶことで最大72％適用される割引

- EC2の他、FargateとLambdaにも適用可能

## 物理対応可能なインスタンス
### 1. ハードウェア占有インスタンス（Dedicated Instance）
利用者専用のハードウェアのVPCで実行されるインスタンス
ホストハードウェアのレベルで、他のAWSアカウントに属するインスタンスから物理的に分離される

### 2. 専有ホスト（Dedicated Host）
EC2インスタンス容量を利用者専用で使用出来る物理サーバー
物理ホスト単位で購入したソフトウェアライセンスを**BYOL（Bring Your Own License:ライセンス持ち込み）型**で利用可能

### 3. ベアメタルインスタンス（Bare Metal Instance）
アプリケーションが基盤となるサーバーのプロセッサーとメモリに直接アクセスが可能なインスタンス

## ストレージ
### 1. EBS
**Elastic Block Store** の略
EC2に仮想的にアタッチされるブロックレベルのストレージサービス


**※ インスタンスを停止・終了してもデータを保持可能**

詳細 → [【EC2】EBSとは](https://qiita.com/777cb_/items/f37dd5a61890774c9fb8)

### 2. インスタンスストア
EC2が稼働する仮想環境用のサーバーに内蔵されたローカルディスク
EBSリリース前はEC2のデフォルトストレージ

**※ EC2の一時的なデータが保持され、インスタンスの停止・終了と同時にデータがクリアされる**

## IPアドレス
### 1. Elastic IP（EIP）
- インスタンスを再起動してもIPアドレスが維持される
- 利用していない時間に課金される

### 2. パブリックIPアドレス
- インスタンスを再起動すると別のIPアドレスが割り当てられる
- ランダムに割り当てられるため、IPアドレスを指定出来ない
- IPアドレスを自動で割り当てないことも可能

### 3. プライベートIPアドレス
- インスタンスを再起動しても同じIPアドレスが割り当てられる
- インスタンス作成時にIPアドレスを指定可能
- インスタンス作成時に必ず割り当てられる

## セキュリティグループ
インスタンスへのトラフィックのアクセスを制限できる機能
デフォルトではEC2インスタンスへのアクセスは全て拒否されている

※ 通信をステートフルに（システムの状態を示す情報を保持し、その情報に応じて）処理するので、インバウンド（インスタンスに向かってくる通信）を許可すれば、通信元に戻っていくアウトバウンド（インスタンスが通信を受信後、レスポンスを返す通信）を許可する必要はない。

### セキュリティグループを構成する情報
**1. タイプ**：TCP、UDP、ICMP、特定のサービスポートなど

**2. プロトコル**：タイプに応じた内容が自動的に選択される（カスタムプロトコルの場合は入力する）

**3. ポート範囲**：タイプに応じた内容が自動的に選択される（カスタムプロトコルの場合は入力する）

**4. ソース**：「カスタム」、「任意の場所」、「マイIP」から選択

**5. 説明**：ポリシーの設定内容の概要や設定意図などを記載

## キーペア
インスタンスへの接続時に身分証明に使用するセキュリティ認証情報のセット
プライベートキーとパブリックキーで構成される

## ENI
**Elastic Network Interface** の略
EC2インスタンスに割り当てられるIPアドレスが関連付けられる仮想ネットワークインターフェイス

- 1つのEC2インスタンスは複数のENIを持つことが可能
- 持てる数はインスタンスタイプによって異なる