こんにちは。ソリューションアーキテクト森(@mosuke5) です。 12/4~5はJapanContainerDaysに参加する予定で非常に楽しみにしていたのですが、大人の事情で4日の前半だけしかいくことができなくなり悲しい気持ちで満ち溢れています笑
さてアドベントカレンダーシーズンですが、Alibaba Cloudでもアドベントカレンダーやっています。今回は6日目の投稿でサブスクリプションインスタンスのAPI制御について書きます。
はじめに
ご存知と思いますがAlibaba Cloudには、従量課金とサブスクリプションの2つのタイプの購入方法があります。俗に言う、プリペイドかポストペイドかといった認識に近いです。 Alibaba CloudではAPIを提供していて、プログラマブルにリソースの制御ができるのですが、実はサブスクリプションインスタンスについては注意が必要です。API経由で購入するにはアカウントの支払い方法の制限があります。
Alibaba Cloud では、ユーザアカウントで購入できるようになるには、有効な支払い方法(例:クレジットカード)を事前に登録する必要があります。そして、登録可能支払い方法の種類として以下の2つが存在します。
- お客様のクレジットカード
- Alibaba Credit: 請求書で後払い契約を頂いているお客様のアカウントに付与されるクレジットのこと。
API を利用してサブスクリプションインスタンスの購入は、Alibaba Credit が付与されたアカウントでしか行うことができません。 Alibaba Cloudをご利用していただいている法人のお客様の多くはサブスクリプションインスタンスを購入していますので、サブスクリプションインスタンスのAPI制御についてまとめておきます。
※Alibaba Creditの付与については、現在は審査の通った法人のお客様のみが利用可能です。もし、ご利用になりたい方はSBクラウドまでお問い合わせください。
API で ECS サブスクリションインスタンスを購入する方法
まずは基本的な購入から。本ブログではCLIを利用していきます。
従量課金インスタンスを買う場合と基本的に同じなのですが、--InstanceChargeType PrePaid
こちらのオプションをつけることでサブスクリプションで購入することが可能です。
$ aliyun ecs CreateInstance \ --RegionId ap-northeast-1 \ --ImageId ubuntu_16_0402_64_20G_alibase_20180409.vhd \ --InstanceType ecs.xn4.small \ --SecurityGroupId sg-6webczsnsibeos9vvd9m \ --VSwitchId vsw-6we2d6fih3tozw7enhwd2 --InstanceChargeType PrePaid \ --Period 1 \ --AutoRenew True
※サブスクリプションは1ヶ月単位での購入になるのですが --Period
は購入する期間のことです。--AutoRenew
は期限が切れた際の自動更新のフラグになります。
※その他利用可能なオプションはこちらのドキュメントをご参照ください。
インスタンスのスペック変更について
サブスクリプションインスタンスは基本的に1ヶ月単位での支払いになるため、途中でスケールアップしたい、スケールダウンしたいとなったときには大丈夫なの?とよく聞かれます。 こちらもちろんスケールアップ/ダウンの機能を用意しています。こちらの機能は、APIでもWebコンソールからもご利用いただけます。なお、Webコンソールから操作する場合にはクレジットカード登録でも操作可能です。
スペック変更方法
サブスクリプションインスタンスの場合は、 ModifyPrepayInstanceSpec API を利用します。従量課金インスタンスのスペック変更を行う場合は ModifyInstanceSpec API を利用します。 同じスペックの変更でも利用するAPIが異なるので注意が必要です。
こちらを利用するには、事前にインスタンスをStoppedの状態にする必要があります。
// インスタンスをまず停止します $ aliyun ecs StopInstance --InstanceId <InstanceId> // 停止状態であることを確認の上、スペック変更を行います // 例:アップグレードの場合 $ aliyun ecs ModifyPrepayInstanceSpec --InstanceId <InstanceId> --InstanceType ecs.n4.large
ダウングレードの場合は OperatorType のマラメーター指定が必要です。デフォルト値は upgrade のため、ダウングレード時は downgrade とします。
$ aliyun ecs ModifyPrepayInstanceSpec \ --InstanceId <InstanceId> \ --OperatorType downgrade \ --InstanceType ecs.xn4.large
スペック変更した場合の支払い
スペックを変更した際の支払いについてきになりますよね。特にダウングレードした場合はどうかと。 アップグレードの場合は、現在の設定とアップグレード後の設定の差額を支払う必要があります。 ダウングレードの場合は、価格差(既存構成とダウングレード後の構成)は元のお支払方法(使用されたクーポンは返却されません)に戻されます。 ですので、安心してご利用いただくことができますね.