※当ブログではアフィリエイト広告を利用しています。
2014年07月1日より、Amazon EC2で新しいインスタンス「T2」が使用できるようになりました。CPU性能を常に必要としないアプリケーションの場合は従来のインスタンスよりも更に安い価格で利用できます。
そこで既存のAWS Elastic Beanstalk環境のt1.microインスタンスをt2.microインスタンスに置き換えてみたのでその手順をメモします。
Amazon EC2 T2インスタンスとは
CPUパワーを必要としない通常時はインスタンスごとに割り当てられたベースラインCPU利用率(10~40%)で動作しますが、ベースラインを下回っていた時間の分だけ「CPUクレジット」と呼ばれるポイントのようなものが蓄積していくインスタンスです。
CPUパワーが必要な処理を動かす場合には貯めておいたCPUクレジットを消費して、クレジット数に応じた時間だけCPUを100%の性能で使うことができます。WEBサイトや一日の最後に重いバッチ処理が走るサーバーなどにマッチしそうです。
以下は従来のt1.microインスタンス、m1.smallインスタンスと新しいt2インスタンス各種の性能を並べた表です。料金は米国東部(バージニア北部)の場合のものです。ベースライン性能とCPUクレジットという概念が増えたものの、旧インスタンスに比べてメモリが増え、料金がぐっと安くなっています。
名前 | vCPUs | ベースライン性能 | RAM (GiB) | CPUクレジット/時間 | 1時間あたりの料金 | 1か月あたりの料金 |
---|---|---|---|---|---|---|
t1.micro | 1 | – | 0.615 | – | $0.02 | $14.64 |
m1.small | 1 | – | 1.7 | – | $0.044 | $32.21 |
t2.micro | 1 | 10% | 1 | 6 | $0.013 | $9.50 |
t2.small | 1 | 20% | 2 | 12 | $0.026 | $19.00 |
t2.medium | 2 | 40% | 4 | 24 | $0.052 | $38.00 |
ユースケースによりますがAWS公式ブログでも下記の通り、既存のインスタンスを置き換えるのが妥当であると書かれています。
比較するのが必ずしも正確ではありませんが、次のように、前の世代のEC2インスタンスをT2インスタンスに置き換えるのが妥当です。:
- t1.microをt2.microへ
- m1.smallをt2.smallへ
- m1.mediumをt2.mediumへ
引用元:Amazon Web Services ブログ: 【AWS発表】バースト可能な性能を持つ新しい低コストEC2インスタンス
T2インスタンスについては下記のサイトで詳細な情報がまとめられています。
関連サイト:AWS – T2インスタンス調査結果 – Qiita
AWS Elastic Beanstalkの既存環境をT2インスタンスに置き換える方法
本エントリの本題です。既存のAWS Elastic Beanstalk環境では、ConfigurationからEC2インスタンスを選択してもT2インスタンスが一覧に現れません。
そこで完全に新しい環境を作成し、既存の環境をそこに移し替える方法でT2インスタンスに置き換えます。
前提条件
既存環境でRDSを使用している場合、DBのスナップショットを取っておく必要があります。RDSを使用していない場合は必要ありません。
またT2インスタンスはVPC(Amazon Virtual Private Cloud)の中にしか作成できないため、新しく作る環境ではVPCを作成する必要があります。
新規AWS Elastic Beanstalk環境の作成
T2インスタンスに移行したいアプリケーションで「Actions」から「Create New Environment」を選択します。
Environment Type
環境のタイプはそれぞれ移行元の環境と同じものを選択します。
Application Version
既に存在するアプリケーションのバージョンから選ぶか、ZIPファイルをアップロードまたはS3に格納したアプリケーションファイルを指定します。
Environment Information
新しい環境の名称、URL、詳細を設定します。
Additional Resources
RDSを使用する場合、「Create an RDS DB Instance with this environment.」にチェックを入れます。またT2インスタンスを使用する場合、下の「Create this environment inside a VPC」は必須なのでチェックを入れます。
Configuration Details
「Instance type」で使いたいT2インスタンスを選びます。「EC2 key pair」は既存のものを流用可能です。
Environment Tags
key-valueのペアで環境独自のタグを定義できるようです。特に必要なければ空白でOKです。
RDS Configuration
RDSを使用する場合「Snapshot」より事前にとっておいたDBスナップショットを指定します。その他DBタイプ等の各種設定を行います。
VPC Configuration
「VPC」でBeanstalk環境で使用したいVPCを選択し、「Associate Public IP Address」をチェックします。また画面下部の「EC2」で、インスタンスを所属させるサブネットを最低一つ選択します。
Review
ここまでに設定した内容を確認します。
問題なければ「Launch」ボタンを押すと環境構築が開始します。しばらく時間がかかります。
環境構築が完了したら画面中央左の「Health」が「Green」になります。
「Configuration」の「Instances」より、インスタンスタイプがT2となっていることを確認できます。
AWS Elastic Beanstalk環境の置き換え
環境の移行方法はURLを入れ替える方法と、独自ドメインを使用していてCNAME
レコードを設定してある場合はレコードの値を書き換える方法があります。
旧環境と新環境のURLを置き換える場合
Elastic Beanstalkトップページよりから該当のアプリケーションの「Swap URLs」をクリックします。
確認画面となるので置き換えて問題なければ「Swap」ボタンを押します。旧環境と新環境のURLが入れ替わります。
CNAMEレコードを書き換える場合
Amazon Route53で、Elastic Beanstalkアプリケーションで使用しているCNAME
レコードのValueを、新しいElastic Beanstalk環境のURLに書き換え、「Save Record Set」をクリックします。しばらく待つとCNAME
レコードに設定したURLにアクセスすると、新しい環境に繋がるようになります。
CPUクレジットの使用量と蓄積量の確認
CPUクレジットの使用量と蓄積量はEC2インスタンス一覧よりT2インスタンスを選択し、「Monitoring」タブから確認できます。「CPU Credit Usage」がCPUクレジットの使用状況、「CPU Credit Balance」が蓄積状況です。
おわりに
t2.microインスタンスをWEBアプリケーションで早速使ってみましたが、t1.microインスタンスよりもメモリが多いためか若干表示が高速になったような印象を受けました。
普段はベースライン性能で問題ない用途であればCPUクレジットは貯まっていく一方なので、T2インスタンスの登場で「必要な分だけ使う」というクラウドの恩恵をますます実感できるようになったと思いました。