AWS
EC2
スケールアップ

AWS EC2(+ tomcat7) スケールアップ・ダウン(備忘録)

概要

 AWS EC2 インスタンスにおける スケールアップ・スケールダウンの方法。

EC2 インスタンス環境

Server version: Apache Tomcat/7.0.85
Server built: Mar 13 2018 23:36:27 UTC
Server number: 7.0.85.0
OS Name: Linux
OS Version: 4.14.33-51.34.amzn1.x86_64
Architecture: amd64
JVM Version: 1.7.0_171-mockbuild_2018_03_15_21_11-b00
JVM Vendor: Oracle Corporation

手順

自動起動の設定

 スケールアップ・スケールダウンする際には、サーバーを再起動しなければなりません。この手順は、必要な場合とそうでない場合あると思うのですが、あらかじめやっておくとよいかと思うので、記述しておきます。他にも別の自動起動設定をする必要性があれば、その都度設定していきましょう。

mysql service の自動起動設定

 以下のコマンドで設定可能です。

$ sudo chkconfig mysqld on

httpd service の自動起動設定

 以下のコマンドで設定可能です。

$ sudo chkconfig httpd on

 ただし、 https 通信を有効にしている場合には、毎度 httpd 起動時にパスフレーズを要求されるため、自動起動がうまくいきません。こちらは、@yoshizaki_kkgk さんが こちら(SSL使用時にApacheの再起動時で必要なパスワードの入力を省略) にて解説されている手順に沿って行き、パスフレーズ入力を省略するようにしておく必要があります。

tomcat7 service の自動起動設定

$ sudo chkconfig tomcat7 on

サーバーの停止

 サインイン後の画面は以下になります。こちらから、 EC2 を選択します。

Screen Shot 2018-08-08 at 16.38.42.png

 すると、EC2 用の画面に遷移します。左側のタブから、 インスタンス を選択すると、下記のように、作成した各EC2 インスタンスが閲覧できます。
 「あれ?インスタンスがひとつもないぞ…。」というようなときは、右上の リージョン名 を確認しましょう。多くは、 東京リージョンであることが多いのですかね…。

Screen Shot 2018-08-08 at 16.40.34.png

 スケールアウト・スケールダウンしたいインスタンスを右クリックし、 「インスタンスの状態」 -> 「停止」 を選択し、インスタンスを停止します。

サーバーのスケールアウト・スケールダウン

 停止した EC2 インスタンスは、 インスタンスタイプ を変更することができます。該当インスタンスを右クリックし、「インスタンスの設定」 -> 「インスタンスのタイプ」 から変更可能です。また、各インスタンスタイプの詳細を以下にあげておきます。
 (引用: https://aws.amazon.com/jp/ec2/instance-types/)

Untitled.png

サーバーの起動

 該当インスタンスを右クリックし、「インスタンスの状態」 -> 「開始」 を選択し、インスタンスを起動します。各サービスの自動起動設定がされていれば、これにてサーバーのスケールアップ・スケールダウンは完了です。自動起動設定をしていなければ、各サービスを起動しましょう。また、念のため各サービスの確認は、怠らないようにしましょう。

(tomcat7 の設定)

 サーバー自体をスケールアップ・スケールダウンしても tomcat7 で扱えるメモリを変更しないと上手に変更できたといえないことがあります。そのため、以下のファイルを設定する必要性があります。

(/etc/tomcat7/tomcat7.conf)

…
…
…

# JVM Options
CATALINA_OPTS="-XX:PermSize=256m -XX:MaxPermSize=256m -Xms1024m -Xmx1024m"

 CATALINA_OPTS の各パラメータは以下のような感じですかね…?また変更後は、以下のコマンドを実行しましょう。

PermSize: Permanent 領域の初期サイズ
MaxPermSize: Permanent 領域の最大サイズ
Xms: ヒープ領域の初期サイズ
Xmx: ヒープ領域の最大サイズ

sudo service httpd restart
sudo /etc/init.d/tomcat7 restart