【AWS認定試験対策】EC2のポイントまとめ

# はじめに

AWSの認定試験を受験するにあたって、各AWSのサービスを幅広く理解する必要があったためサービスごとに抑えるべきポイント等をまとめてみました。

ちなみにAWS認定試験での勉強方法についてはこちらの記事で紹介しています。

- [AWS 認定Developer Associateに合格するまで](https://qiita.com/yoshiyama_hana/items/8ea41e756036ca098c4b)

今回はEC2についてアソシエイトレベルでまとめたものになります。

※情報は2019年12月31日時点のものになります。ご了承ください。

# 概要

- AWS上で起動する仮想サーバー
- 購入時に起動するインスタンスタイプを選択できる
- インスタンスタイプによって仮想サーバーのスペックが変わる(CPUやメモリなど)
- sshなどでログインする際にはキーペア(pemキー)が必要

# 料金

選択されたインスタンスタイプ、購入方法によって異なる
基本はインスタンスを起動させている時間(秒単位)に応じて料金が発生する

# 購入方法

購入方法は以下になります。

## ■オンデマンドインスタンス

- 割引なしでインスタンスを購入する方法
- 処理が中断して落ちない

## ■リザーブドインスタンス

- オンデマンドよりも安い値段でインスタンスを購入する方法
- 処理が中断して落ちる可能性がある

## ■ハードウェア占有インスタンス（Dedicated Instance)

- 独立したハードウェアを購入する方法
  オンデマンドなどでは同じハードウェアで複数インスタンスが同居して購入される可能性がある
- 物理サーバーの選択は不可能

## ■専用ホスト（Dedicated Hosts）

- 独立したハードウェアを購入する方法
- 物理サーバーの選択は可能
- BYOL(Bring Your Own License)型のソフトウェアライセンスを持ち込める

## ■Saving Plan

- 1~3年で一定のCPU使用料で契約する方法

# AMI

EC2を起動するためのテンプレートのようなもの
この事前にソフトウェアなどをインストールしたインスタンスを立ち上げたいときに便利

- AMIリストを取得するにはDescribeImagesを実行する
- 別のリージョンでAMIを使用する場合は、AMIを別のリージョンにコピーする必要がある
- AMIはS3に作成される

# ネットワーク

ネットワーク関連についてまとめます。

## ■プライベートIP

- EC2インスタンスを起動したサブネット内で割り当てられたIPアドレス
- 起動時に指定することができる

## ■パブリックIP

- AWSによって割り当てられるグローバルIPアドレス
- EC2インスタンスが停止→起動をすると新しいグローバルIPアドレスが割り当てられる
- EC2インスタンスが再起動してもグローバルIPアドレスは変わらない
- EC2インスタンスからインターネットにアクセスする場合はパブリックIPが割り当てられるように設定する必要がある

## ■Elastic IP

- AWSが用意したグローバルIPアドレス
- EC2インスタンスにアタッチする必要がある
- EC2インスタンスが再起動(停止→起動)しても同一のグローバルIPアドレスを利用できる

## ■ENI(Elastic Network Interface)

- 仮想ネットワークインターフェース
- 複数のIPアドレスが割り当てられる

# プレイスメントグループ

EC2同士の通信を高速化できるEC2のグループ設定

- EC2インスタンスは同じアベイラリティゾーンである必要がある

# セキュリティグループ

EC2インスタンスのアクセス制限を行う機能

- EC2インスタンスへのアクセスの許可のみを管理する（拒否の指定はできない）
- インバウンドが許可されると自動的にアウトバウンドも許可される
- デフォルト設定ではインバウンドの許可がされていない状態（つまり、すべてのインバウンドは拒否される）

# インスタンスメタデータ

curlで取得できるインスタンスの情報

```
curl http://（IPアドレス）/latest/meta-data/instance-id
```



# ストレージ関連

EC2のストレージ関連についてまとめます。

## ■インスタンスストア

EC2のローカルディスク

- EC2インスタンスが停止または削除されるとデータが削除される
- EC2インスタンスが休止中のときはデータが保持される
- インスタンスストアのデータを引き続き保持したい場合は、その時点のAMIを取得する方法が有効

## ■EBS(Elastic Block Store)

EC2にアタッチできるブロックストレージ

- EC2を停止してもEBSは削除されない
- 同じリージョンであれば同じEC2インスタンスに複数のEBSをアタッチできる
- 同じEBSを複数のインスタンスに同時にアタッチできない
- EBS-backedインスタンスはインスタンスの停止と再開ができるが、Instance store-backedインスタンスではできない
- ボリュームを暗号化できる
- EBSスナップショットでバックアップを作成できる

### EBSのボリュームタイプについて

####Provisioned IOPS SSD

- I/Oの負荷が大きくても耐えられる(データベース用途など)
- IOPSの性能を指定したボリュームを作成可能（追加料金）

####汎用SSD

- コスパがいい汎用的なSSD

####スループット最適化HDD

- 高いスループットが期待できるHDD

####コールドHDD

- 性能は低いが安い
- 古いデータのバックアップなどに向いてる

####マグネティック

- 旧世代のボリュームタイプ

#### ※IOPSとスループットの違い

IOPSとは

- ストレージが1秒あたりに処理できるI/O（書き込み・読み込み）アクセスの数。
- 一般的にHDDは1分あたりの回転数(PRM)に制限があるためIOPSは低い

スループットとは

- 1秒間の最大データ転送量

### EBS最適化インスタンス

EC2、EBS間の回線が専用回線で繋がっているインスタンス

ネットワークがボトルネックになっているときに有効

特定のインスタンスタイプでのみ対応しているので、すべてのインスタンスで利用可能なわけではない



### ボリュームのディレクトリ

| 仮想化タイプ | 使用可能                                                     | ルート用に予約済み                   | EBS ボリュームとして推奨      | インスタンスストアボリューム                                 |
| :----------- | :----------------------------------------------------------- | :----------------------------------- | :---------------------------- | :----------------------------------------------------------- |
| 準仮想化     | /dev/sd[a-z]/dev/sd[a-z][1-15]/dev/hd[a-z]/dev/hd[a-z][1-15] | /dev/sda1                            | /dev/sd[f-p]/dev/sd[f-p][1-6] | /dev/sd[b-e]                                                 |
| HVM          | /dev/sd[a-z]/dev/xvd[b-c][a-z]                               | AMI による違い/dev/sda1 or /dev/xvda | /dev/sd[f-p] *                | /dev/sd[b-e]/dev/sd[b-h] (h1.16xlarge)/dev/sd[b-y] (d2.8xlarge)/dev/sd[b-i] (i2.8xlarge)** |



# その他の豆知識

- OSを再起動させたい時はReboot(再起動)を行う
- EC2インスタンスを起動する際に実行したいシェルスクリプトを指定することができる(ユーザーデータという)
- セキュリティの修正プログラムは初期起動時に実施される