【画像あり】AWS Cloud9の容量不足を解決する方法

プログラミング

「Cloud9で開発していたら、容量不足でなにもできなくなってしまった…。解決方法を教えてください。」
こんな質問に答えます。

本記事の内容

  • Cloud9が動作しなくなる原因
  • 解決策①:ファイルを削除して容量を減らす
  • 解決策②:EBSボリュームの容量を増やす

順番に解説していきます。

Cloud9が動作しなくなる原因

原因:EBSボリュームの使用率が100%なので、動作しなくなっている。

EBSボリュームの確認方法

EBSボリュームの確認
まずはCloud9を開き、ターミナルからdf -hコマンドを入力し、ボリュームの使用状況を確認します。

/dev/xvda1の列のUseが100%になってしまうと、動作しなくなってしまうでしょう。

今回の目的は、/dev/xvda1のボリュームの使用率を下げ、空き容量を確保することです。

解決策①:ファイルを削除して容量を減らす

開発に必要ないファイルがあるなら、削除することで、空き容量を確保することができます。

いらないファイルは削除しましょう。

とはいえ、「どれを削除したら良いのか分からない…。」という場合もあるでしょう。
状況は開発環境によって違うからです。

そんな時は、余計なことをせず、解決策②でEBSボリュームを増やしてあげたほうがシンプルです。

注意点:EBSボリュームを増やすと利用料金が高くなる可能性があります。詳しい料金は公式ページから確認してください。

解決策②:EBSボリュームの容量を増やす

①:Amazon EC2コンソールにアクセスする

Amazon EC2コンソールにアクセスする
Amazon EC2コンソールにアクセスします。

②:「ボリューム」から、変更するボリュームを選択する

変更するボリュームを選択する
複数あって分からない場合は、

「インスタンス」→実行中のインスタンスの中から、aws-Cloud9で始まるものを選択→「ストレージ」→ボリュームID

 
から該当するボリュームを探すことができます。

ボリュームIDを確認する

③:ボリュームのサイズを変更する

上部にある「アクション」ボタンから、「ボリュームの変更」をクリック。

「アクション」ボタンから、「ボリュームの変更」をクリック

任意のサイズに変更したら、右下の「変更」ボタンを選択して、変更します。

「変更」ボタンを選択して、変更

どのくらいのサイズに変更したら良いのか?

環境、使い方によりけりですが、15GBで運用している僕は、1ヶ月400円弱くらいの使用料金です。

30GBくらいにしてもビックリするような料金にはならないと思います。

④:インスタンスの再起動

再度「インスタンス」にいき、該当のインスタンスを選択後、上部にある「インスタンスの状態」ボタンから、「インスタンスを再起動」を選択。

インスタンスの再起動

ここまでがEC2コンソールでやることでした。

⑤:Cloud9に戻る

ここで再び「Cloud9」に戻り、ターミナルから操作をします。

⑥:パーティションの確認

ターミナルからlsblkコマンドを入力し、各ボリュームのパーティションの使用状況を確認します。

パーティションの使用状況を確認

上記画像では、/dev/xvda/dev/xvda1のサイズが一緒になっていますが、現時点ではルートボリュームである/dev/xvdaが拡張され、パーティションである/dev/xvda1はまだ元のままになっていることでしょう。

パーティションのサイズを拡張する必要があります。

⑦:パーティションを拡張する

パーティションを拡張するには、下記のコマンドを使います。

sudo growpart /dev/xvda 1

※デバイス名とパーティション番号は環境によって違います。

デバイス名とパーティション番号の間にスペースが入力されている点に注意してください。

⑧:ファイルシステムを拡張する

最後に、ファイルシステムを拡張するには、下記のコマンドを使います。

sudo resize2fs /dev/xvda1

なお、上記コマンドは[ext4 ボリューム]用のコマンドです。

使用しているボリュームのファイルシステムを確認するにはdf -hTを使用します。

ボリュームのファイルシステムを確認する

ext4以外のファイルシステムを使用している場合はAWSのユーザーガイドを参照してください。

≫Linuxインスタンス用ユーザーガイド

⑨:増加したボリュームサイズが反映されているか確認する

再度df -hコマンドや、lsblkコマンドを使用し、変更が反映されているか確認します。

以上でおしまいです。
お疲れ様でした。m(_ _)m