購入済み EC2 のリージョン RI を AZ 指定に変更する方法

2019.02.15

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

こんにちは。池田です。本記事では、購入時に AZ 指定をせずにデフォルトの「リージョン指定」で購入したリザーブドインスタンス(RI)をキャパシティ予約が必要になった場合などに「AZ 指定の RI」へ変更する手順をご紹介します。

はじめに

RI はいくつかの種類(購入オプション)があり、スコープもそのひとつです。EC2 の場合「リージョンを指定する」か「アベイラビリティーゾーン(AZ)を指定する」という選択肢があります。 ※ EC2 RI 購入画面のデフォルトでは「リージョン指定」での購入となっており「AZ 指定」で購入するには画面右上にある「キャパシティ予約のある提供タイプのみ表示」のチェックボックスを ON にし、表示されるドロップダウンリストから目的の AZ を選択する必要があります。

スコープの違いによる特徴

それぞれの特徴を改めて整理します。

リージョン指定(デフォルト)

  • 条件を満たす場合、インスタンスサイズの柔軟性が提供される(詳細は公式ドキュメントをご覧ください)
  • 購入したリージョンと同じリージョン内であればインスタンスを起動する AZ を意識することなく割引のメリットを受けられる
  • キャパシティの予約はされない

AZ 指定

  • 指定した AZ にインスタンスを起動する際のキャパシティが購入した数だけ予約できる
  • インスタンスサイズの柔軟性は提供されない
  • 料金はリージョン指定と同じ

変更手順

1: EC2 ダッシュボードより「リザーブドインスタンス」を選択し、変更したい RI を RI ID で検索(間違い防止です)します。

2: 対象 RI を選択したのち「アクション」から「リザーブドインスタンスの変更」を選択します。

3: 変更したい内訳を入力していきます。 (1) 現在の数量が表示されていますので「変更せずに残したい数量」を入力します(全て変更する場合はそのまま左側の条件を変更します)。 (2) 一部だけを変更する場合は「追加」をクリックしていきます。 (3) 内訳の入力が終わったら「次へ」で進みます。

入力例

(1) で AZ 指定にしたい内容と数量を入力しています。 (2) 必要な内容を入力したら「次へ」

4: 内容を確認して問題なければ「変更を送信」をクリックします。

5: 画面が戻り、既存の RI の「状態」が画像のように「active (pending-modification)」と表示されます。 数分待ってこれが「retired」となれば変更処理は成功となり、新たな RI ID が付与された RI が一覧画面に追加されます。AWS 基板側の状況などにより失敗した場合は再び「active」となり内容は変更されないままとなります。 どうしても対象インスタンスのキャパシティを予約したい(対象インスタンスで利用しているサービスを継続したい)が、何度変更操作を行っても AZ 指定に変更できない場合は、AZ の変更やインスタンスサイズまたはファミリーの変更も検討する必要があるかもしれません。 ※ スコープのみを変更する場合には追加料金等は発生しません。

成功した場合

6: 変更に成功した場合は以下のように新しい RI ID で一覧に表示され、新規購入時同様「payment-pending」となり、数分後に「active」へ変われば完了です。

池田ならこう買うと思います

RI といえばコストメリットが大きい分、関心が価格に向きがちですが、特定のインスタンスを特定 AZ で長期運用したい場合などは AZ 指定によるキャパシティ予約(確保)を利用することも可能です。以下に筆者が思いついた3つのシーンにおいて現時点で RI を新規購入する場合「池田ならこう買うと思います」を挙げてみます。

検証環境やサービス開始初期

どのインスタンスタイプ、インスタンスサイズで運用していくかが確定していない状況だと思います。こういった場面では無理に RI を購入しない方が良いかもしれません。一方で対象インスタンスが多く、他の案件やシステムでも同じインスタンスファミリーを利用しているようであれば「リージョン指定のコンバーティブルを 1年」で買うのが良いかなぁと考えます。 理由としてはコンバーティブルであれば、プラットフォーム(OS)やインスタンスファミリーを変更(交換)することも可能ですので、例えば検証環境では m3 ファミリーで問題ないと構築したサービスがリリース後に想定以上の利用があり(うれしい悲鳴)急遽、m5 ファミリーに変更し、更にサイズアップもする。といったことがあっても対応が可能だからです。

基幹業務向けシステムや安定したサービス

1年以上の長期間継続運用が確定している業務系システムや、既に安定しているサービスなどであれば「AZ 指定のスタンダードを 3年」かなぁと考えます。 これはスタンダードで 3年というのは基本的に最も割引率が高くなっているからです(一部インスタンスでは前払いなしタイプは提供されておらず、一部前払いか全前払いのみとなる点に注意が必要です)。 ※ 初回投稿時は「リージョン指定」と間違えて記載しており「AZ 指定」に修正しました。

システムの停止が重大な影響を与える場合

自身のビジネスであれば 1年や 3年といったスパンでの事業計画はあるでしょうから、それをベースにインスタンスの利用費など予算計画も立てられると思いますが、利用したいインスタンスがキャパシティ不足で起動できないシーンというのは推測ができません。ですので、インスタンス停止が重大な影響をもたらすことがはっきりしている場合は「AZ 指定のコンバーティブルを 1年または 3年」で買うことになるのかなぁと考えます。 これは通常利用であっても利用者数の単純な増加などによる処理能力不足が生じてきた際のスペックアップにも対応しつつ、キャパシティ予約をするためです。

まとめ

今回は購入後の RI に対してスコープの変更を行う手順をご紹介しました。これは、特定インスタンスの需要が AWS による供給量を超えてしまう場合において必要となる操作です。ですが、例えば既に「旧世代」とされて久しいインスタンスファミリーなどはそもそもの供給量が「現行世代」のそれと比べると少ない可能性があると思われます。 「旧世代」からの移行が簡単ではないケースが多いことも理解していますが、構築から運用フェーズに入る時点で「利用するインスタンスファミリーにもライフサイクルがある」ことを前提とし、インスタンスタイプや AZ の変更についても設計や運用計画に入れておくことでより安定したサービス提供やシステムの継続利用が可能になるのではないでしょうか。

おまけ

参考になりそうだと思われる記事をご紹介します。

あの日リリースされたインスタンスタイプを君は憶えていますか?

RIを購入せずに任意の期間でEC2のキャパシティを確保可能になりました

AWS再入門2018 素朴な疑問 -リザーブドインスタンス – 編

この記事がどなたかの役に立てれば幸いです。