Amazon EC2 スポットインスタンスは、EC2を入札形式でインスタンスを利用できる機能です。自分が指定した入札価格が、変動スポット料金よりも高い状態の時に、EC2インスタンスを利用できるようになります。しかし、変動スポット料金が、自分が指定した入札価格よりも高くなった場合は、インスタンスが停止します。このような利用条件がありますが、用途上で問題がなければ、他のEC2価格モデルよりもかなり安価にEC2を利用できます。
今回、EC2 スポットインスタンスを使ってみましたので、その記録となります。
どのくらい安価なのか
例ですが、私が今回(2013/06/08)調べた時点は、リージョンが東京の場合、「マイクロ」での料金差異は以下でした。
- マイクロ オンデマンドインスタンス: $0.027 1時間あたり
- マイクロ スポットインスタンス:$0.007 1時間あたり
約26%の料金($0.007/$0.027)でEC2マイクロインスタンスを利用できる状態でした。
スポットインスタンスを利用する方法
AWSマネジメントコンソールから、スポットインスタンスの利用リクエストを行います。
- ログイン後、EC2管理画面を表示します。
- 左メニューにて「Spot Requests」リンクをクリックします。
- 画面上部にある「Pricing History」と「Request Spot Instances」を使って、欲しいインスタンスの入札設定を行います。
以降では、「3」の「Pricing History」と「Request Spot Instances」の利用方法を順番に記載しています。
1.Pricing History で料金状態の確認
まずはじめに、現時点のスポットインスタンス料金を把握する為に、「Pricing History」ボタンをクリックし、料金情報を確認します。
この画面情報で、どの料金であれば安く入札を行えるか、という料金を把握します。
私は今回、以下の条件で料金確認を行ったのですが、$0.0075 で入札できそうな感じでした。
- Product: Linux/UNIX
- Instance Type: t1.micro
- Date Range: 1 day
- Zone: All zones
「Pricing History」画面は以上ですので、「Close」ボタンで画面を閉じます。
2.スポットインスタンスをリクエスト
次に、「Request Spot Instances」ボタンをクリックします。すると、「Request Instances Wizard」画面が表示されます。
「Quick Start」タブの「Amazon Linux AMI」を「Select」ボタンで選択します。
次の画面では、スポットリクエストするインスタンス情報を指定します。
まず、画面上部で以下を指定します。
- Number of Instances: 1
- Instance Type : T1 Micro(t1.micro, 613MiB)
次に画面下部の「Request Spot Instances」で入札価格を指定します。「Current Price」が「 $0.007」でしたので、「Max Price」を同じく「 $0.007」に設定しました。
「Request Valid From」と「Request Valid Until」は入札期間の設定のようです。今回は短期間の利用目的でしたので、入札期間自体もとりあえず直近の30分で指定しました。
「Continue」ボタンをクリックすると、以下の画面が表示されます。
そのまま引き続き、「Continue」ボタンをクリックすると、以下のStorageデバイスの設定画面が表示されます。
変更する必要がなかったので、そのまま引き続き、「Continue」ボタンをクリックすると、以下のKey Pair 作成画面が表示されます。
Key Pair に名前を付けて、ダウンロードします。ダウンロードしたファイルを使って、後ほどスポットインスタンスにSSHログインする事になります。
次は、FireWallの設定画面になります。
SSHでログイン出来るだけで良い場合は、このまま「Continue」ボタンをクリックします。次の画面では、スポットリクエストの内容をレビューできる画面が表示されます。
問題なければ「Submit」ボタンをクリックします。すると、スポットリクエストが作成されます。
「Your Spot Requests are now being created.
View your Spot Requests on the Spot Requests page」と表示されています。「Close」ボタンで画面を閉じ、画面左メニューから「Spot Requests」画面を確認してみると、どうやら入札できており、インスタンスが起動しているようです。
インスタンス画面を見てみると、スポットリクエストした t1.micro インスタンスが「running」状態となっていました。
インスタンスの情報を確認し、「Public DNS」で表示されているインスタンスにPingを打ってみると、ICMP応答はありませんが、対応したグローバルIPアドレスが表示されます。
3.SSHで接続
「Public DNS」で表示されているアドレスにSSH接続を行ってみます。
ログインアカウントは「ec2-user」がデフォルトで作れられています。しかし、初期パスワードは設定されていません。先ほどダウンロードしたKey Pair ファイルを使ってログインを行います。
__| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/ There are 2 total update(s) available Run "sudo yum update" to apply all updates. $
なお、rootアカウントについて初期パスワードが設定されていないため、sudoを使ってパスワードを設定します。
$ sudo su - # passwd Changing password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully. # exit logout $ su - Password:(設定したパスワードを確認) #
uptimeコマンドで起動時間を見てみると、作成したばかりですので、つい先ほどの時間になっています。
4.スポットインスタンスを停止
入札した価格よりも、スポット料金が高くなったら、スポットインスタンスは停止されますが、スポットインスタンスが不要になった時点で停止(Terminate)してしまえば、請求料金をさらに抑えられます。
最後に
スポットインスタンスは、利用者の用途とスポットインスタンスの仕様が合致すれば、非常に有用なサービスだと思います。「いつ停止されても良いので、その代わり安価にコンピュータリソースを使いたい」という要望は結構あると思います。
私はちょいちょい使っていこうかなと思います。