Amazon EC2インスタンスをスケールアップする
Amazon EC2をスケールアップする方法
今までELB(ロードバランサー)を使ってスケールアウト(数を増やして対応)する方法を何回かご紹介してきました。今回は、動いているAmazon EC2インスタンスを消さず(Terminate)に停止(Stop)からスケールアップ(性能をアップして対応)をして再度開始(Start)する方法をご紹介します。このスケールアップは何気に知られていないのでご参考にしてください。
インスタンスを起動
いつものインスタンス起動です。t1.microインスタンスを起動しています。
$ ec2-run-instances ami-9a54e19b --region ap-northeast-1 --instance-type t1.micro RESERVATION r-82424f83 771293814336 default INSTANCE i-1ce4f41d ami-9a54e19b pending 0 t1.micro 2011-10-27T14:30:07+0000 ap-northeast-1b aki-d209a2d3 monitoring-disabled ebs paravirtual xen sg-06c26807 default
インスタンスが起動していることを確認しました。SSHでログインして様々なアプリケーションをセットアップした後を想定しています。
$ ec2-describe-instances --region ap-northeast-1 RESERVATION r-82424f83 771293814336 default INSTANCE i-1ce4f41d ami-9a54e19b ec2-175-41-218-178.ap-northeast-1.compute.amazonaws.com ip-10-152-103-233.ap-northeast-1.compute.internal running mykey1 0 t1.micro 2011-10-26T16:35:55+0000 ap-northeast-1b aki-d209a2d3 monitoring-disabled 175.41.218.178 10.152.103.233 ebs paravirtual xen sg-06c26807 default BLOCKDEVICE /dev/sda1 vol-fd977791 2011-10-26T16:36:15.000Z
起動中のインタンスを停止
起動中のインスタンスを停止するには、Stopコマンドを実行します。TerminateでもRebootでもありません。気をつけてください。
$ ec2-stop-instances --region ap-northeast-1 i-1ce4f41d INSTANCE i-1ce4f41d running stopping $ ec2-describe-instances --region ap-northeast-1 RESERVATION r-82424f83 771293814336 default INSTANCE i-1ce4f41d ami-9a54e19b stopped mykey1 0 t1.micro 2011-10-26T16:35:55+0000 ap-northeast-1b aki-d209a2d3 monitoring-disabled ebs paravirtual xen sg-06c26807 default BLOCKDEVICE /dev/sda1 vol-fd977791 2011-10-27T14:01:49.000Z
停止中のインスタンスのタイプを変更する
Modifyコマンドによって停止しているインスタンスのタイプをt1.microからm1.smallに変更しています。これがスケールアップですね。逆に、インスタンスの性能を下げることもできます。
$ ec2-modify-instance-attribute i-1ce4f41d --instance-type m1.small --region ap-northeast-1 instanceType i-1ce4f41d m1.small
停止中のインスタンスを動かす
Startコマンドによって停止しているインスタンスを動かします。
$ ec2-start-instances i-1ce4f41d --region ap-northeast-1 INSTANCE i-1ce4f41d stopped pending $ ec2-describe-instances i-1ce4f41d --region ap-northeast-1 RESERVATION r-82424f83 771293814336 default INSTANCE i-1ce4f41d ami-9a54e19b pending mykey1 0 m1.small 2011-10-27T14:10:22+0000 ap-northeast-1b aki-d209a2d3 monitoring-disabled ebs paravirtual xen sg-06c26807 default BLOCKDEVICE /dev/sda1 vol-fd977791 2011-10-27T14:10:28.000Z $ ec2-describe-instances i-1ce4f41d --region ap-northeast-1 RESERVATION r-82424f83 771293814336 default INSTANCE i-1ce4f41d ami-9a54e19b ec2-175-41-235-33.ap-northeast-1.compute.amazonaws.com ip-10-150-165-40.ap-northeast-1.compute.internal running mykey1 0 m1.small 2011-10-27T14:10:22+0000 ap-northeast-1b aki-d209a2d3 monitoring-disabled 175.41.235.33 10.150.165.40 ebs paravirtual xen sg-06c26807 default BLOCKDEVICE /dev/sda1 vol-fd977791 2011-10-27T16:10:46.000Z
AWS Management Consoleでもできます
今回はコマンドからスケールアップ方法をご紹介しましたが、AWS Management Consoleでも操作できます。
まとめ
Amazon EC2インスタンスをスケールアップする方法をご紹介しました。セットアップし直す必要がありませんので大変便利な機能です。動作中のインタンスにおいてCPUやメモリが足りない状況になったらスケールアップを検討してください。また、アクセス数が多くてなかなか応答が無い場合にはロードバランサーを使ってスケールアウトによる負荷分散をしてみてください。スケールアップとスケールアウトをマスターしてAmazon EC2マエストロになりましょう!