Amazon EC2リザーブドインスタンスマーケットプレイスでRIを出品して販売する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

リザーブドインスタンス(RI)について

リザーブドインスタンスは、前金を支払うことでEC2インスタンスを「安く利用する権利」を得ることができる機能です。主にAWSから買うことができますが、実は、サードパーティから購入することもできます。「サードパーティ?」と思われる方も多いかと思いますが、これは「AWSアカウントを持った別ユーザ」を指しています。今回は、私自身がサードパーティとして、「購入済みのEC2インスタンスを販売」してみたいと思います。こういった機会はあまり無いと思いますのでお楽しみくださいw

サードパーティ

サードパーティのリザーブドインスタンスがどのように見えるのか確認してみましょう。

screenshot 2015-07-04 3.07.39

Sellerに見えていますね!また、Termを確認してみてください。通常、RIは12か月か36か月を指定して買いますが、サードパーティのRIは、それぞれ期間が異なります。また、単価も異なっています!サードパーティのRIは、「安く利用する権利」を得た「購入済みのEC2インスタンスを販売」することになりますので、残りの期間分を販売できることになります。例えば、12か月のRIを購入して3か月と10日経過した状態で販売するときは8か月分を販売することができます。

RI販売者として登録する

リザーブドインスタンスを販売するためには、一定の条件を満たしていなければなりません。詳しくは以下の「リザーブドインスタンスの要件チェックリスト」をご確認ください。

リザーブドインスタンスの要件チェックリスト

ポイントとなる部分は以下です。

  • 住所が米国内の銀行
  • RI購入後、30日が経過してから
  • RIの残りの有効期間が1か月以上
  • RI販売手数料として、12%掛かる

日本人の利用者にとって最もハードルが高いのは、住所が米国の銀行ですね。RIを販売した売上が振り込まれます。米国の銀行カードの作成方法についてここでは省きますが、日本の銀行は扱えないと憶えておいてください。また、販売手数料が12%掛かりますので、カジュアルに売買するというよりかは、利用しなくなったRIの損切り販売や、短期間のRIにプレミアム価格を付けての販売になるのではないでしょうか。マーケットプレイスという名前が付いていますので、どんな商品が売り買いしやすいかは皆さんの利用ケースによるかと思います。

screenshot 2015-07-04 9.48.13

それでは販売者として登録します。RIの一覧画面から販売したいインスタンスを選択し、「Sell Reserved Instances」をクリックします。

screenshot 2015-07-04 3.43.58

販売者として登録するか聞いてきますので次に進みます。

screenshot 2015-07-04 2.47.38

販売者としてユニークな名前を設定します。

screenshot 2015-07-04 2.48.02

米国の銀行口座に関する情報を登録します。これで完了です。

screenshot 2015-07-04 2.52.47

RIを販売する

それでは準備が整いましたのでRIを販売してみたいと思います。先ほどと同じようにRIの一覧画面から販売したいインスタンスを選択し、「Sell Reserved Instances」をクリックします。

screenshot 2015-07-04 6.03.31

そして、該当するRIの価格を決めます。

screenshot 2015-07-04 6.03.49

価格を入力後に見積もりが出ます。

screenshot 2015-07-04 6.03.59

これで完了です!

RIの販売価格について

RIを販売する際に自分で価格を設定することができます。この際、オススメの金額が表示されます。これは、通常のAWSが販売する価格に対して、残月数で割った数字が表示されます。例えば、2015年7月の東京リージョンt2.microの1年RI(Partial Upfront)は、85ドルです。85ドルを12か月で割って5か月分を掛けたら、35.42ドルとなります。そこで、オススメ価格が35ドルとなっています。

screenshot 2015-07-04 12.17.26

RIの販売オススメ価格は、残月数が減ることで購入者によるメリットは減りますので、金額も下がっていきます。価格を安く設定すると、早く処分できるでしょう。価格を高く設定すると、短い期間のRIを買いたい人が居れば売れるかもしれません。MMORPG(多人数同時参加型オンラインRPG)みたいですねw

RI販売手続き時のエラー

ちなみに、登録の過程で出たエラーをご紹介したいと思います。

Selle Registration Pending

これは、販売者の手続き中で未だ販売出来ない時のエラーです。

screenshot 2015-07-04 4.17.24

No Capacity Remaining

これは、購入から30日経っていないため販売できないエラーです。

screenshot 2015-07-04 12.12.42

Cannot Sell Reserved Instance

これは、すでに販売を開始してしまったRIをさらに販売しようとした時に出るエラーです。

screenshot 2015-07-04 6.03.12

これは、販売したいリザーブドインスタンスの価格が定価では無い時に出るエラーです。RIを沢山買うと値引きされたりします。

screenshot 2015-07-04 4.41.27

RIを購入する

自身で販売したRIを、他のアカウントから購入してみましょう。先ほど販売した34.99ドルのRIがサードパーティ提供として一覧に表示されていますね。

screenshot 2015-07-04 5.59.55

詳細を確認します。

screenshot 2015-07-04 6.00.12

5か月分のRIを購入することができました!

screenshot 2015-07-04 6.00.25

RIが売れたかどうか確認

出品しているRIが売れたかどうか確認してみましょう。awscliを用います。

$ aws ec2 describe-reserved-instances-listings 
{
    "ReservedInstancesListings": [
        {
            "ReservedInstancesId": "ebd8ef0e-721e-4ef6-9811-XXXXXXXXXXXX", 
            "Status": "closed", 
            "Tags": [], 
            "PriceSchedules": [
                {
                    "Active": false, 
                    "Term": 5, 
                    "CurrencyCode": "USD", 
                    "Price": 34.99
                }, 
                {
                    "Active": false, 
                    "Term": 4, 
                    "CurrencyCode": "USD", 
                    "Price": 27.99
                }, 
                {
                    "Active": false, 
                    "Term": 3, 
                    "CurrencyCode": "USD", 
                    "Price": 20.99
                }, 
                {
                    "Active": false, 
                    "Term": 2, 
                    "CurrencyCode": "USD", 
                    "Price": 13.99
                }, 
                {
                    "Active": false, 
                    "Term": 1, 
                    "CurrencyCode": "USD", 
                    "Price": 6.99
                }
            ], 
            "CreateDate": "2015-07-04T12:57:15.000Z", 
            "ClientToken": "unjfv143601463YYYYY", 
            "ReservedInstancesListingId": "35fc7611-3292-4f31-bccf-XXXXXXXXXXXX", 
            "UpdateDate": "2015-07-04T13:03:25.000Z", 
            "InstanceCounts": [
                {
                    "State": "available", 
                    "InstanceCount": 0
                }, 
                {
                    "State": "sold", 
                    "InstanceCount": 1
                }, 
                {
                    "State": "cancelled", 
                    "InstanceCount": 0
                }, 
                {
                    "State": "pending", 
                    "InstanceCount": 0
                }
            ], 
            "StatusMessage": "closed"
        }
    ]
}

販売済み(sold)になっていますね!

一方で購入した人はどうなっているか見てみましょう。こちらもawscliで確認してみます。

$ aws ec2 describe-reserved-instances
{
    "ReservedInstances": [
        {
            "ReservedInstancesId": "93bbbca2-1470-424d-ac87-ZZZZZZZZZZZ", 
            "OfferingType": "Partial Upfront", 
            "AvailabilityZone": "ap-northeast-1c", 
            "End": "2015-12-01T13:00:21.000Z", 
            "ProductDescription": "Linux/UNIX (Amazon VPC)", 
            "UsagePrice": 0.0, 
            "RecurringCharges": [
                {
                    "Amount": 0.005, 
                    "Frequency": "Hourly"
                }
            ], 
            "Start": "2015-07-04T13:00:22.552Z", 
            "State": "active", 
            "FixedPrice": 34.99, 
            "CurrencyCode": "USD", 
            "Duration": 12960000, 
            "InstanceTenancy": "default", 
            "InstanceType": "t2.micro", 
            "InstanceCount": 1
        }
    ]
}

確かに、34.99ドルで購入したRIがリストに表示されていましたね。

まとめ

リザーブドインスタンスは、EC2インスタンスを非常に安く利用するために用意された購入オプションです。しかし、一度買ったRIは基本的にキャンセルできません。(※最近、RIの同一タイプをスケールアップ/ダウンできるようになりました)ビジネスの持続性を見越してRIを購入することがほとんどだと思いますが、何が起こるか分かりません。もし、購入したRIが不要になってしまった場合、条件さえ揃えば、マーケットプライスに出品して販売することで、リスクを最小化できるかもしれませんね。それでは、また!

参考資料

Amazon Elastic Compute Cloud ユーザーガイド - リザーブドインスタンス