【AWS】EC2のスケールアップ/ダウン【Cloud】

| 0件のコメント

常識クイズのトラフィックが急に増えてCassandraが落ちるのでEC2サーバをt1.microからm1.smallに変えました。
Webサービスをスモールスタートできるのは嬉しいですね。

AMIとは?

AMIは以下にあるように一通りそろっているサーバです。

“The Amazon Linux AMI is an EBS-backed, PV-GRUB image. It includes Linux 3.4, AWS tools, and repository access to multiple versions of MySQL, PostgreSQL, Python, Ruby, and Tomcat.”

Imageのバックアップを取っておきましょう。
管理コンソール画面で右クリックでcreate image で作成し名前をつけて作成します。images > AMIs欄に作成したAMIがあるはずです。

変更前のサーバスペック確認

t1.microは公表値とほぼ同等の2.27GHz,600MBです。どう考えても負荷に弱いのがわかります。
Raspberry Pi Model-Bが700MHz,256MBでしたから,そんなに変わらなかったりしてしまう。
千石にRaspberry Pi買いにいったら売り切れてた…RSは海外サイトだからめんどくさいしなあ。
あと,比較しても仕方ないですがiPhone5にトータルで負けてます。それでも”無料”というのはすごいですね。

カサンドラのヒープサイズは変更前の設定が MAX_HEAP_SIZE=”512M” HEAP_NEWSIZE=”256M” です。

$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 26
model name	: Intel(R) Xeon(R) CPU           E5507  @ 2.27GHz
stepping	: 5
microcode	: 0x11
cpu MHz		: 2266.746
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 16
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc up rep_good nopl nonstop_tsc pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm
bogomips	: 4533.49
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

$ cat /proc/meminfo
MemTotal:         608740 kB
MemFree:          209980 kB
Buffers:           38996 kB
Cached:           125868 kB
SwapCached:            0 kB
Active:           275120 kB
Inactive:          91168 kB
Active(anon):     201464 kB
Inactive(anon):        8 kB
Active(file):      73656 kB
Inactive(file):    91160 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                36 kB
Writeback:             0 kB
AnonPages:        201468 kB
Mapped:            20780 kB
Shmem:                48 kB
Slab:              20744 kB
SReclaimable:      14668 kB
SUnreclaim:         6076 kB
KernelStack:         912 kB
PageTables:         3060 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      304368 kB
Committed_AS:     751440 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        7104 kB
VmallocChunk:   34359729008 kB
DirectMap4k:      637952 kB
DirectMap2M:           0 kB

GUIでスケールアップ

スケールアップの方法は簡単です。

AWS Management Console にログインしてインスタンスを選択しSTOPします。
ここで注意すべきなのはEIP(Elastic IP,固定IP)を取得していないとREBOOT以外ではIPが変わってしまうことです。

AMIは自動で移してくれますが心配ならコピーをとっておきましょう。

EIPは事前に取得しておきましょう。取得せずにiOSアプリにサーバIPを直書きしている場合は取り返しがつかなくなることがあります。
(ポカミスですが今となっては良い教訓…)

対象EC2インスタンスを右クリックし、「Change Instance Type」を選択します。今回はMicroからSmallに変更。

最後にEIPに移り,右クリックしてAsocciateで紐づけて終了です。

aws_eip

スケールアップ後のサーバスペック確認

CPUは2.00Ghzにダウンしましたが,メモリは1.7GBにアップ。

$ cat /proc/meminfo
MemTotal:        1696956 kB
MemFree:         1348076 kB
Buffers:           10212 kB
Cached:           159196 kB
SwapCached:            0 kB
Active:           192232 kB
Inactive:         127424 kB
Active(anon):     150300 kB
Inactive(anon):        8 kB
Active(file):      41932 kB
Inactive(file):   127416 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                40 kB
Writeback:             0 kB
AnonPages:        150240 kB
Mapped:            21116 kB
Shmem:                52 kB
Slab:              13676 kB
SReclaimable:       8748 kB
SUnreclaim:         4928 kB
KernelStack:         768 kB
PageTables:         2844 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      848476 kB
Committed_AS:     742216 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       10988 kB
VmallocChunk:   34359725168 kB
DirectMap4k:     1748992 kB
DirectMap2M:           0 kB

Cassandraのヒープサイズを変更

スケールアップ前のカサンドラの設定です。

$ $CASSANDRA_HOME/bin/cassandra
xss =  -ea -javaagent:/opt/cassandra/apache-cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms512M -Xmx512M -Xmn256M -XX:+HeapDumpOnOutOfMemoryError -Xss160k

環境設定ファイルを編集してヒープ領域のサイズを変更して再起動します。

$ sudo vim /opt/cassandra/apache-cassandra/conf/cassandra-env.sh
MAX_HEAP_SIZE="1024M"
HEAP_NEWSIZE="512M"

これでしばらく様子みます。システム監視ツールもいれないとダメかも。

スケールダウンしたい場合

スケールアップ時と同じでEIPが必要です。
対象EC2インスタンスをSTOPさせた後に右クリックし、「Change Instance Type」を選択します。
選択後、EIPをクリックしEC2インスタンスと紐付けるためにAsocciateで設定します。

起動後はサーバプログラムが動くかチェックしましょう。

スケールアップ/スケールアウトが簡単になると管理もコスト削減のため海外にアウトソーシングする時代になるかもしれませんね。

コメントを残す

必須欄は * がついています