Lightsailプランのアップグレード方法と「Error establishing a database connection」対処方法
本記事では、Amazon Lightsailがいきなり動かなくなった時に「Error establishing a database connection」というエラー表示が出て動かない場合の対処方法について解説します。
DBのコネクトエラーなのですが結論として、多くの場合はディスク容量がフルになっていて、動かないということが多いと思います。
本記事の内容
- 「Error establishing a database connection」対処方法
- Amazon Lightsailプランのアップグレード方法
本記事を書いている僕は、エンジニア歴が約4年で主にフロントエンドのエンジニアとして活動しており、AWSの基本的な設定は業務でも扱っています。
本記事を読むことによって、Lightsailで「Error establishing a database connection」エラーが出てしまった時の対象方法と、Lightsailでインスタンスがすでに動いている際にプランアップグレードをする方法について対応が分かるようになります。
「Error establishing a database connection」対処方法
サーバー状況・エラー原因を確認する
ここは確認の項目なので必須ではないですが、原因特定のために、見てみるとよいかと思います。
LightsailにSSHログインします。Macのターミナルなどからログインする方法と、Lightsailのコンソール管理画面から「SSHを使用して接続」をクリックして見る方法があります。
コンソールにログインしたら、sudo /opt/bitnami/ctlscript.sh status
コマンドで状態を確認します。
$ sudo /opt/bitnami/ctlscript.sh status
php-fpm already running
apache already running
mysql not running
上記例だとmysqlが動いていないですね。mysqlを起動すればよいのですが、ディスクフルの可能性があるので続いて調査をします。
$ df -h
コマンドでサーバー状況を確認します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 236M 0 236M 0% /dev
tmpfs 49M 2.0M 47M 5% /run
/dev/xvda1 20G 20G 19M 100% /
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 244M 0 244M 0% /sys/fs/cgroup
/dev/loop0 56M 56M 0 100% /snap/core18/1988
/dev/loop1 99M 99M 0 100% /snap/core/11081
/dev/loop2 34M 34M 0 100% /snap/amazon-ssm-agent/3552
/dev/loop3 56M 56M 0 100% /snap/core18/1997
/dev/loop4 33M 33M 0 100% /snap/amazon-ssm-agent/2996
/dev/loop5 100M 100M 0 100% /snap/core/10958
tmpfs 49M 0 49M 0% /run/user/1000
/dev/xvda1 20G 20G 19M 100% /
となっており、ディスクが20GBで上限まで達して溢れていることがわかりました。(今回のケースでは、Lightsail3.5$の最安プランだったのでディスク容量は20GBでした)
手動でサーバー内の容量を減らすかプランのアップグレードで対応するなどが必要になります。今回はプランのアップグレードをします。
Amazon Lightsailプランのアップグレード方法
方法は簡単で以下の通りです。
Lightsailのコンソール(管理画面)に入り、以下の手順を行います。
- アップグレードしたいインスタンスのスナップショットを作成
- 上位プランの新インスタンスをスナップショットから作成
- 旧インスタンスから新インスタンスにアタッチし直す
順番に詳細を解説していきます。今回は$3.5プラン→$5プランへのアップグレードを例に解説しています。
※スナップショットとはバックアップのようなもので丸々データが複製されます。
1. Lightailコンソール(管理画面)へログイン
AWSにログインして、Lightailコンソール(管理画面)を開きます。
2. コンソールにて「スナップショット」のタブを選択
「スナップショットの作成」をクリックし、「作成」をクリックします。
「スナップショット作成中…」となるので、待ちます。
※生成に少し時間がかかります。データ量が多いとその分時間がかかり、数分程度で終わるケースから数十分かかることもあります。
3. スナップショットから新規インスタンスを作成する
生成したスナップショットの右端にある三点リーダーアイコンをクリックして「新規インスタンスの作成」を選択します。
プランを選択して新たにインスタンスを作成するようにします。今回は$5プランにアップグレードしたいので、「$5USD」を選択します。「インスタンスを確認」欄に新しいインスタンス名を任意で入力します。
「保留中」表示でグレーアウトされて「利用不可」となりますが、待っていると数秒程度で「実行中」に切り替わると思います。
4. 既存のインスタンスから新たなインスタンスへ切り替え
既存インスタンスをデタッチする
まずは既存のインスタンスをデタッチ(接続を解除)します。
「ネットワーキング」タブを選択して、「静的 IP アドレス」の該当の項目をクリックします。アタッチされているインスタンスの右側に表示されている「デタッチ」をクリックしてデタッチします。
「この静的IPをデタッチしますか?」表示で「はい、デタッチします」を選択してデタッチします。
新規インスタンスをアタッチする
次に新たに作成したインスタンス(今回は$5で作成したインスタンス)にアタッチをします。
先ほどデタッチした画面にて、新しいインスタンスを選択してアタッチします。
「インスタンスへのアタッチ」で新しいインスタンスを選択して「アタッチ」をクリックします。
5. ファイアウォールの設定を確認する
新たなインスタンスではファイアウォールのポートがリセットされていることがあるので、確認します。
新しいインスタンスをクリックします。
「ネットワーキング」タブをクリックして設定が問題ないかを確認します。
そのままで問題ないことが多いですが、ポートの開放が必要な場合はポート設定を追加します。これでサイトは復活するかと思います。
6. 既存インスタンスの削除
今回の場合は、$3.5インスタンス→$5インスタンスを作成してアップグレードとしたため、古い$3.5のインスタンスは不要なので削除するようにします。
起動したままにするとその古いインスタンスも課金されたままになってしまうためです。
インスタンスの右側の三点リーダーアイコンから「削除」を選択します。
「このインスタンスを削除?」と出てくるので「はい、削除します」で削除できます。
これで対応完了です。
ちなみに今回のようなアップグレードは簡単にできますが、もし後から料金プランをダウングレードしたい場合はスナップショットからは下位プランを作れないので注意が必要です。ダウングレードをもしする際は、手動で下位プランのインスタンスを作り直して自分でデータを入れるということをしなければならないためそこだけ注意が必要です。通常は気にしなくてよいかと思います。
ご参考になれば幸いです。
※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています