はらぺこらいおん

日々、思ったことを。

AWSのEBS(ストレージ)を追加する方法

スポットインスタンス機械学習を行っていると、 学習を行っている間はインスタンスを起動しておき、学習を完了した際には、 インスタンスを終了するということを行います。

そうすると学習データや学習したモデルを毎回学習を行うたびにアップロードする必要があります。 AWSではインバウンドトラフィックAWSへの通信)にコストはかかりませんが、 大量の画像データをアップロードするには時間がかかってしまい、 時間とインスタンス料金がもったいないので、 先にデータを保存しておくEBSを別に作っておきます。

そしてインスタンスを起動したら、そのEBSを接続することで、 データを再アップロードせずに済むようにしておきます。

EBS作成

EBSでディスクを作成するのは簡単です。

メニューのボリュームをクリックします。 EBSの画面に表示される、ボリュームの作成をクリックします。

f:id:pictzzz:20170209230628p:plain

わかりやすい名前をつけて、必要なディスクサイズを入力します。

f:id:pictzzz:20170209230727p:plain

接続したいディスクを選択し、アクション>ボリュームのアタッチをクリックします。

f:id:pictzzz:20170209230810p:plain

ボリュームのアタッチを行うウィンドウが表示されます。 アタッチするインスタンスインスタンスにアタッチした際のデバイスを入力します。 フォームをクリックすると、選択肢が表示されるので、そこから選ぶことができます。 入力後、アタッチをクリックするとインスタンスにボリュームが接続されます。

f:id:pictzzz:20170209230853p:plain

マウント

インスタンスに接続します。 マウントするためにはrootになる必要があります。

$ sudo su -

まずは、デバイス名を調べます。デバイス名を調べるのにはlsblkコマンドを使います。

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  20G  0 disk 
└─xvda1 202:1    0  20G  0 part /
xvdf    202:80   0  30G  0 disk 

マウントされてないのはxvdfとわかったので、/dev/xvdfをマウントします。 マウントポイントは任意ですが、今回はルートディレクトリー直下にdataディレクトリーを作って、マウントしたいと思います。

# mkdir /data
# mount /dev/xvdf /data

これで/dataに作成したEBSボリュームが接続され、使用できるようになります。

初めてのマウントの場合(フォーマット)

初めてのマウントの場合、マウントの前にフォーマットを行います。

# mkfs -t ext4 /dev/xvdf

これでext4でフォーマットされます。