既存EC2インスタンスにEBSボリュームを追加（アタッチ）する

# 概要
既に構築済みのEC2インスタンスに新しくEBSボリュームを追加してEC2で使用できるようにします。


> **EBSとは**
> 
> Elastic Block Storeの略
> EC2への仮想外付けストレージサービス
> ・サイズは1GB単位で～1TBまで
> ・サイズ/期間/IOで課金される
> 
> 詳しくは下記を参照してください
> [[AWSマイスターシリーズ] Elastic Block Store(EBS)](http://www.slideshare.net/AmazonWebServicesJapan/aws-16148274)

## 作業イメージ図

![名称未設定-1.png](https://qiita-image-store.s3.amazonaws.com/0/34281/e72dcc48-b5dc-3ae5-8c31-d2b9ca2658ec.png "名称未設定-1.png")

# 作業手順
## EBSボリュームを作成する

1.AWS ManagementConsoleの「Services」から「EC2」を選択します。

2.左側のナビゲーションから「ELASTIC BLOCK STORE」の「Volumes」を開いて「Create Volumes」をクリックして作成ダイアログを開きます。

![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/fc485559-ab01-0d56-4596-35ecfb9bfc6c.png "EC2_Management_Console.png")

3.必要な項目を入力して、「Create」をクリックしてEBSを作成する

![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/beed3893-87b3-9f52-42d1-49f49d6dc030.png "EC2_Management_Console.png")


| 項目名 | 説明 |
|:-----------|:------------|
| VolumeType|通常は「standard」を選択。I/O性能を設定したい場合は「Provisioned IOPS」を選択。|
|Size|ボリュームサイズ（ストレージサイズ）を入力します。|
|IOPS|「Provisioned IOPS」を選択した場合のI/O性能を設定します。|
|Availability Zone|EBSを作成するゾーンを設定します。``注意：ゾーンは追加したいEC2インスタンスと同じゾーンを指定しましょう``|
|Snapshot|EBS作成時に元になるSnapshotを指定する場合に使用します。Snapshotの内容を使いたいけど、Snapshotとは異なるボリュームサイズにしたい時等に使用します。|

4.作成したEBSが一覧に追加され、「State」が「available」になったらEBS作成完了です。
![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/dd4628d4-7ccd-62be-c837-84e860bbe5f6.png "EC2_Management_Console.png")

## 既存のEC2に作成したEBSを追加する

1.EBS一覧から追加したいEBSにチェックを入れて、「Actions」メニューまたは右クリックメニューで「Attach Volume」を選択します

![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/ed9c71fb-2021-efc4-06a9-49dfa8df3e9d.png "EC2_Management_Console.png")

2.必要な項目を入力して、「Attach」をクリックしてEC2にEBSを追加します。
![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/915e0657-735e-31eb-23e8-4a679049146c.png "EC2_Management_Console.png")

| 項目名 | 説明 |
|:-----------|:------------|
| VolumeType|選択したEBSボリューム|
|Instance|EBSを追加したいEC2インスタンスを指定する。追加可能なEC2リストから選択するだけです。|
|Device|EC2内でのデバイス名を指定します。通常はInstanceを選択した時点で最適なデバイス名が自動で設定されます。手動で設定ももちろん可能です。|

3.EBS一覧で正常に追加できたか確認する。

![EC2_Management_Console.png](https://qiita-image-store.s3.amazonaws.com/0/34281/02acc3ba-a0cb-7654-a958-4fb8cee61ddd.png "EC2_Management_Console.png")

## EBSボリュームをEC2にマウントする
追加したEBSをEC2で使用できるようにマウントします。

1.EC2へSSH接続する。
``
操作するEC2のOSはUbuntuですが、基本的にAmazon Linuxでも同様の操作になります。
ubuntuだと/dev/sdgは/dev/xvdgになっている。
``

2.現在のマウント状態を確認する（``/dev/sdg``はまだマウントされていない）

```
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  8.0G   11G  43% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            816M  8.0K  816M   1% /dev
tmpfs           166M  200K  166M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            827M     0  827M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/xvdf        20G  2.0G   17G  11% /data
```
3.EBSボリュームをフォーマットし、``/data2``にマウントします。

```
$ sudo su -

# mkfs -t ext4 /dev/xvdg
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
・
・
・
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

# mkdir /data2
# mount /dev/xvdg /data2
# exit
```

4.正常にマウントできているか確認する

```
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  8.0G   11G  43% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            816M  8.0K  816M   1% /dev
tmpfs           166M  200K  166M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            827M     0  827M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/xvdf        20G  2.0G   17G  11% /data
/dev/xvdg        99G   60M   94G   1% /data2
```
5.書き込みが正常にできるか確認する

```
# mkdir -p /data2/test/file/to/ 
# echo "this is text file" > /data2/test/file/to/test.txt
# cat /data2/test/file/to/test.txt
this is text file
```
## 自動マウントを設定する
このままだとEC2インスタンスをSTOP等をした際に、マウントが外れてしまうので、自動マウントするように設定しておく。
意外と忘れがち。
以下を/etc/fstabの末尾に追加する。

1.自動マウントの設定をする

```
/dev/xvdg /data2 ext4 defaults 1 1
```

2.（可能なら）自動マウントできているか確認する
EC2をAWS ConsoleからStop -> Startをして自動マウントできているか確認する