I/Oの高速化
EC2のストレージ
EC2のボリュームの種類
|ボリューム|説明| |汎用SSD|最もよく使われている汎用的なボリュームタイプ。パフォーマンスは容量に比例| |プロビジョンドIOPS|高いI/Oが必要な場合に向いているパフォーマンスの下限をある程度の範囲で指定可能| |マグネティック|低いI/Oでも問題ない場合に用いる磁気ディスク|
プロビジョンドIOPSの設定
プロビジョンドIOPSのボリュームではIOPSを指定することにより、ほぼ常にパフォーマンスのレベルを満たすことが出来るようになる。
プロビジョンドIOPSのボリュームを設定する場面
- AMI作成時
- インスタンス起動時
- EBSボリューム作成時
AMI作成時
ルートボリューム、追加ボリュームにかかわらず、以下のように行う。
- サービス: EC2
- メニュー: インスタンス
- 概要: インスタンスを選択後、アクション→イメージ→イメージの作成
ダイアログが出てくるので、その際にボリュームタイプをプロビジョンド IOPS SSD
に変更すればOK。
インスタンス起動時
もともとのAMIの設定からプロビジョンドIOPSに変更してからインスタンスを起動することもできる。
ボリューム作成時
前項で行ったEBSボリューム作成時にも、タイプ
を変更することで対応できる。
このように、いつでも即座に割とカジュアルにプロビジョンドIOPSに変更は可能。
これにより容易に容量を増やしたりI/Oパフォーマンスの向上を図ることが可能。
EBS最適化オプション
EBS最適化を行うと、EC2とEBSの間のネットワーク帯域を専有することでEBSへのアクセスを最大化してパフォーマンスの向上と安定を図ることが可能。
プロビジョンドIOPSを使用するときはネットワークがネックになる場合が多いためこのオプションを利用すると良い。
RAID
EBSでは、1つのボリュームにおける容量やIOPSには限界がある。
それを越えて行くためのアプローチとしてRAIDがある。
RAIDは Redundant Arrays of Inexpensive Disks
の略。
EBSでRAID 0を組む
- 使用したいEBSボリュームを複数台アタッチ
- RAIDを組むEBSの設定をすべて同じにする
- 25GBを4台用意してRAID 0 100GBとして振る舞う、みたいなイメージ
EBSは内部でハードウェア冗長性を保っているため、RAID 0が一般的に選択される事が多いらしい。
ボリュームの暖機
新規にアタッチした空のボリュームの暖機
sudo dd if=/dev/zero of=/dev/xvdf bs=1M
使用済のボリュームの暖機
sudo dd if=/dev/xvdf of=/dev/xvdf conv=notrunc bs=1M
入出力を同じにしてあげる必要がある。