##メモリが足りない
railsアプリをAWSにデプロイしようとするとassets:precompileでエラーが出て途中で落ちるようになってしまいました。
色々調べるとメモリ不足のよう。以前からスワップ領域を作って対応していたくらいなので、ここらでAWS無料枠のt2.microインスタンスからアップグレードします。
##どのインスタンスにするか
今回は1GBだったメモリを2GBにという必要最低限のアップグレードなので、安価なtシリーズからの選択。
t2/t3/t4とある中で、数字が大きいほど新しくまた安価なのでt4を選び、その中でメモリが2GBのt4g.smallを選択します。(後からt2.microからt4に変更できないことがわかりt3.smallにしました。後述。)
##イメージを作成
万一の保険にAMIを作成しておきます。
AMIとはAmazon Machine Imageの略で、マシンの構成を記録しこれをもとにインスタンスを起動できます。詳しくは公式を。
コンソールに入りEC2のサービスページへ移動、該当のインスタンスを選択し、アクション→イメージとテンプレート→イメージを作成をクリック
イメージ名と説明を記入後、右下にあるイメージを作成をクリック
左メニューのイメージからAMIに移動、作成したイメージのステータスがpendingからavailableになるまでしばらく待ちます。
##インスタンスの停止
ここでインスタンスを停止させます。インスタンスのページからインスタンスの状態→インスタンスを停止
注意!! ここでインスタンスの終了を押したらインスタンスが消えてしまうので気をつけてください。
##インスタンスタイプの変更
停止したらいよいよインスタンスタイプを変更します。
アクション→インスタンスの設定→インスタンスタイプのを変更
変更するインスタンスタイプを選択し、適用をクリック。
しかしここで問題が発生!t4.smallが選択できませんでした。
調べると現在使っている(t2.microの)CPUアーキテクチャが変更先に指定したインスタンスタイプ(t4.smallの)のCPUアーキテクチャと異なっていることが原因だそう。
なのでt2.microと同じCPUアーキテクチャのt3.smallを選択することにしました。
すると無事に変更完了。画面に反映されているのが確認できます。
##インスタンス起動
ここまできたらインスタンスを起動させます。
該当インスタンスを選択肢てインスタンスの状態→インスタンスを開始
実行中になれば完了です。
##AMIの削除
実際にアクセスするなりして問題なければ最初に作成したAMIを削除しておきます。(放っておけばお金がかかる)
メニューからイメージ→AMIに移動し、アクション→登録解除
続いてメニューからElastic Block Store→スナップショット
該当スナップショットを選択し、アクション→削除(スクショ撮るの忘れました)
これで全て完了です。やってみると思ったよりも簡単でした!
どなたかの参考になれば幸いです。