Amazon EBSエラスティックボリュームによってクラウドサーバーの自由度と稼働率が飛躍的に向上する

  • f
  • t
  • p
  • h
  • l
title_AWS_heavy_use

エラスティックボリュームによってAmazon EC2の起動中にストレスなく記憶容量を増やせる

Amazon Web Services(以下、AWS)には、クラウドサーバーとしてAmazon Elastic Compute Cloud(以下、EC2)があり、その記憶容量(ボリューム)としてAmazon Elastic Block Store(以下、EBS)があります。EC2には1つ以上のEBSが紐づけられ、従来の方法では記憶容量を拡張や読書き能力の変更をする場合はサーバーを1度停止する必要がありました。今回、発表された「EBSのエラスティックボリューム」によって、サーバーを停止することなく、記憶容量を拡張や読書き能力の変更が可能になりました。今回はクラウドサーバーの運用方針を変える地味に凄い新機能「エラスティックボリューム」について調査結果を含めてご説明したいと思います。

Amazon EBS エラスティックボリュームとは

従来、EBSの記憶容量(ボリューム)を増やしたり読書き能力(タイプ)を変更する場合は、以下のように複数の工程を行う必要があり、その間、EC2(サーバー)は停止する必要がありました。

  1. EC2インスタンスを停止
  2. EC2インスタンスのEBSからスナップショット(バックアップ)を作成
  3. EBSのスナップショットからボリューム拡張したEBSを作成
  4. EC2インスタンスを新しいEBSに紐付け直す(EBSのディスタッチ&アタッチ)
  5. EC2インスタンスを起動
  6. EC2のOSの設定で記憶容量を拡張

上記のように1~5の間は、サーバーが停止する必要があります。その時間は記憶容量のサイズに比例していると思われ、長い場合は数時間になる場合も考えられます。そのため、EC2の記憶容量拡張などは気軽にできるものではありませんでした。

先日(2017.2.14)に発表されたEBSのエラスティックボリュームは、この上記の1~5の作業をなくし、以下のようにEC2を起動したまま記憶容量を拡張、または読書き能力の変更ができます。(拡張/変更できるEBSタイプはマグネティック以外。拡張のみで縮小は不可)

  1. EC2インスタンスのEBSのボリューム拡張
  2. EC2のOSの設定で記憶容量を拡張

サーバーにとって記憶容量不足は死活問題

サーバーのCPU負荷が多くなった場合、レスポンスが遅くなったり、処理のタイムアウトが起きる場合もありますが完全停止することは稀です。また、メモリ不足についても仮想メモリを有効にしていれば同様に滅多に完全停止することはありません。しかし、記憶容量不足については、即サーバー停止に繋がります。記憶容量の空きがない状態のサーバーでハードディスクの書き込み処理が発生した時点でエラーとなりシステムが停止します。

記憶容量不足はサーバーを運用している間に起きる可能性は潜んでいます。ファイルサーバーやデータベースサーバーのような大量データを保存するサーバー用途は勿論ですが、OSなどのアップデートファイルや稼働ログ、何か処理をした時の一時ファイルなどによっても記憶容量は圧迫されます。そのため、定期的に不要なファイルを削除、または別環境に退避させることも必要ですが、完全に消すことはできず、徐々にサーバーの空き容量は少なくなっていきます。

エラスティックボリュームは管理者にもサーバーにもストレスがない

最初からサーバーの記憶容量不足にならないように大容量のEBSを大きめに取っておく方法もありますが、運用期間を想定して適切な記憶容量を見積もるのは困難です。また、運用開始時には空き容量が多く、その分、無駄なEBSの記憶容量当たりの使用量を毎月払うことになります。しかし、エラスティックボリュームの登場によって、いつでもEC2を停止することなく記憶容量を増やせるようになりました。

今回、弊社では「EBS汎用SSD(gp2)」を30GBから40GBに拡張してみました。EBSの拡張設定後にはEC2の状態は「in-use-optimizing」になり、その間(約30分)、EC2はCPU、メモリ、ハードディスクに負荷をかけることなく起動し続けました。そして、状態が「in-use」に戻ってから10分後ぐらいにEC2内のOS上で記憶容量が追加されたことを認識できました。

このように非常に簡単に記憶容量を増やせたため、記憶容量空きに合わせて段階的にハードディスク(EBS)の記憶容量を追加していくサーバー運用もありだと思いました。段階的に記憶容量を増やす事でサーバーの初期運用コストを抑えられますので、より気軽にEC2を導入可能ですし、想定外のデータ容量の書き込みが発生しても柔軟に対応できます。あまり、派手な機能ではありませんが、エラスティックボリュームは非常に革新的な機能です。

連載記事一覧はコチラ:category / AWSを使い倒せ

  • f
  • t
  • p
  • h
  • l