Amazon EBSにおけるボリュームサイズの拡張

AWS, EBS, グループマネージャー

■ はじめに

レコチョクでグループマネージャー(以下、GMR)をしている山本(耕)です。

レコチョクには、エンジニア組織を構成するためにいろいろなロールがあります。
GMRは、部門およびグループの「ヒト、モノ、カネ」を管理して、グループメンバーのパフォーマンスを高めることを主な役割としています。そのような役割なので、システム開発の業務はグループメンバー(以下、メンバー)に委任することが多いです。

しかし、メンバーの成長やグループの成果を考えた時、委任するより自分自身で手を動かしたほうが良いことが往々にしてあります。そのような流れでGMRでも手を動かして実施した技術的な話題を記事にさせて頂きます。
※より手を動かしながらエンジニアのパフォーマンスを最大化するエンジニアリングマネージャー(EM)というロールもあります。

■ 今回のテーマ

Amazon EBSにおけるボリュームサイズの拡張

■ 目次

  • 背景
  • 実施手順
  • まとめ

■ 背景

弊社では、デジタル音源の配信事業の中で、アーティストの写真(以下、ア写)や楽曲のジャケット写真(以下、ジャケ写)を管理して活用しています。それらの画像を各サービスで利用してもらうために画像変換システムを構築して、API経由で各サービスに提供をしています。

レコチョクでは開発案件の合間にシステム構成の最適化を実施しております。その一環で、各サービスに向けに複数環境(サーバグループ)を提供していたのですが、これを統合する意思決定をしました。

EC2インスタンス上でアプリケーションが稼働していますが、CPU・メモリ使用率やレイテンシに余裕があることは把握していたので、他の環境のAPIリクエストを統合先の環境へAPIリクエストされるように対応をしました。
しかし、EBSのストレージサイズの考慮が漏れており、APIリクエストの増加によりアクセスログが増加、閾値の超過アラートが発砲されました。ログの保存期間を減らすことは運用リスクがあるため、EBSのストレージサイズの増加で対応をすることにしました。

■ 実施手順

【前提条件】

  • 対象のAWSアカウントのIAMが発行されており、AWSコンソールにログインが出来ること。
  • IAMにEBSへの変更が可能な権限が付与されていること。
  • EBSのストレージサイズを拡張したいEC2インスタンスにログインが出来ること。
  • 起動しているEC2インスタンスのOSは、AmazonLinux2であること。

【対象EC2インスタンスの状態確認 その1】

手順1.対象のサーバにアクセスして、”lsblk”コマンドと”df”コマンドで現時点の状態を確認する。

※今回の対象は、「xvda」ディスク(EBS)の「mqxvda1」パーティションになります。
※”lsblk”コマンドで表示される「mqxvda1」と”df ”コマンドで表示される「/dev/xvda1」は同じ意味となります。
※この後の作業は、「xvda」ディスクを拡張して、「/dev/xvda1」パーティションに割り当てる作業となります。

【「xvda」ディスクの拡張】

手順1.対象のAWSコンソールにアクセスする。
手順2.EC2 > Elastic Block Store > ボリュームのメニューを開く。
手順3.EBSの一覧が表示されるので、対処のEBSを選択して、「変更」ボタンを押下する。
手順4.サイズ (GiB)を必要なサイズ(今回は、300GiB)に変更する。
手順5.ボリュームのステータスが「OK」になることを確認する。

【対象EC2インスタンスの状態確認 その2】

手順1.再度、対象のEC2インスタンスにアクセスして、現時点の情報を確認する。

※ 「xvda」ディスクは拡張されているが、「mqxvda1」パーティションへは未割当のため、まだ拡張が出来ていません。

【パーティションへの割り当て】

手順1.以下のコマンドを実行して、「/dev/xvda1」パーティションにストレージを割り当てる。

※”growpart”コマンドを実行するときは、”df”コマンドで表示される「ファイルシステム名」+” “+「1(パーティション番号)」で実行します。
※”df”で表示した場合、「ファイルシステム名」と「パーティション番号」が連結され表示(/dev/xvda1 )されています。なので、コマンドを実行する場合は、「ファイルシステム名」と「パーティション番号」に分解して指定して下さい。
※”df”コマンドで表示される内容が環境により少し違う場合があるので、この通り表示されていない場合があります。

手順2.”lsblk”コマンドと”df”コマンドで結果を確認する。

※”lsblk”コマンドの結果には反映されており「mqxvda1」が300GiBに拡張されていますが、”df”コマンドの「/dev/xvda1」には反映されていません。
※これは、OSがパーティションに割り当てたボリュームを認識していないためになります。

【OSに認識させる】

手順1.以下のコマンドを実行して、「/dev/xvda1」に割り当てたボリュームをOSに認識させる。

※”xfs_growfs ”コマンドは、-dオプションの引数にマウント位置(今回は、/)を指定します。
※OSが、AmazonLinux2の場合、XFSというファイルシステムのため、コマンドがxfs_growfsとなります。
※別のファイルシステムの場合(例えばBtrfs、Ext4、Ext3、Ext2 など)は、コマンドが違うため注意が必要となります。

手順2.”df”コマンドで結果を確認する。

※”df”コマンドの「/dev/xvda1」に反映されてボリュームが拡張されたことを確認することが出来ます。

■ まとめ

Amazon EBSにおけるボリュームサイズの拡張方法でした。
以下のAWSの公式ドキュメントを参考にして実施したのですが、一部、表示内容が違う部分があり、上手く行かなかったので、少し丁寧に整理してみました。

■ 最後に

最後まで読んでいただき、ありがとうございます。
レコチョクでは、ソフトウェア開発だけでない幅広い技術を経験する環境でチャレンジしたいメンバーを募集しています。興味のある方は、レコチョク (採用ページ)からぜひご応募下さい!

この記事を書いた人

山本 耕琢(コウタク)
山本 耕琢(コウタク)意識低い系エンジニア 兼 マネージャー
レコチョクの楽曲情報の検索や、決済/会員情報、 レコメンド情報などを扱う、レコチョクAPIの運用と改善を担当しています。主にプロジェクト管理をやっています。技術力は低めですが、気づきがあったことなどを更新していきます。