🦈

EC2インスタンスのコピーとEIP追加手順

2021/09/17に公開

AWSで、商用環境をコピーして、検証・ステージング環境のスポットインスタンスを作成したのですが、Elastic IPアドレスが足りなくなったので、その追加申請方法も含めてメモを残しておきます。

インスタンスからAMIイメージの作成

コピーしたいインスタンスにチェックを入れ、アクションから「イメージを作成」をクリックするだけです。AWSのマネジメントコンソールはUIが直感的で分かり易いですね。

インスタンスは停止しておくのが望ましいです。

今回は「再起動しない」にチェックを入れました。ただし、作成されたイメージのファイルシステム整合性が保証されなくなるので、サービスの計画停止が許される時間帯ならチェックは入れないでおきましょう。
インスタンスボリュームの「終了時に削除」のチェックは外しておきました。

対象AMIのステータス表示が「pending」から「available」に変わるまで待ちます。

AMIイメージからインスタンスを作成

作成されたAMIにチェックを入れ、今回は、アクションから「スポットリクエスト」をクリックします。

スポットリクエストとは、スポットインスタンスの起動をAWSにリクエストすることです。受理されると起動します。

インスタンスの種類をおさらいしておきましょう。

  • オンデマンドインスタンス ... 起動したいときに起動し、不要になれば何時でも止められます。
  • リザーブドインスタンス ... 1年や3年といった単位での購入を前提に割引が得られます。
  • Savings Plans ... ここではリザーブドインスタンスをより使い易くしたものとだけ言っておきます。

そして、スポットインスタンスは、AWSの余剰リソース(スポットプール)を安価で利用できるようにしたものです。
なので、AWSに空きがあれば調達できますが、キャパシティーがひっ迫すると回収されて使えなくなります。回収時にはインスタンスをシャットダウンする旨の通知が数分前に届くので仕掛中の処理を退避したりすることになります。
つまり、AWS側の都合で、いつでも停止させられてしまうサーバですが、その分、安く利用できるわけです。テスト環境には持って来いのサーバですよね。

インスタンスタイプは本番環境と同等もしくは下位スペックを選択しました。

回収され難いインスタンスタイプを調べるならスポットインスタンスアドバイザーが役立ちます。
https://aws.amazon.com/jp/ec2/spot/instance-advisor/

インスタンスの詳細を設定していきます。
コピー元のVPCやサブネット情報を前もって控えておくとスムーズです。

最後にセキュリティグループの設定ですが、今回は本番環境と同じにしたかったので「既存のセキュリティグループ」を選びました。

今回はキーペアも本番環境と共有するので「既存のキーペアの選択」としました。

Elastic IP の追加申請

作成したスポットインスタンスに Elastic IP を割り当てようとすると、次のメッセージが出てしまいました。

1リージョンあたり、初期値として5つまでのElasticIPアドレスに制限されているので、AWS Support Center から上限値の緩和申請をします。

https://console.aws.amazon.com/support

「Create case」をクリックし、Service limit increase(サービス制限の引き上げ)、制限タイプに Elastic IPs を選択します。

今回は上限値を 5 → 10 に引き上げてみます。

Limitは、

  • EC2-Classic Elastic IP アドレス上限
  • ご希望のVPC Elastic IPアドレスの合計数

が選択できますが、EC2-Classic は2013年12月以前にあった古い方式なので、殆どのアカウントは該当しないはずです。

ユースケースの入力と、連絡方法を指定し、送信します。

日本時間のビジネスアワーに申請しましたが、3分ほどでメールで回答がありました。

この度は上限緩和につきましてお問い合わせいただき、誠にありがとうございます。

ご依頼いただきました上限緩和リクエストの設定が完了いたしました。
反映されるまでに30分ほどかかる場合がございますが、予めご了承くださいませ。

ご依頼いただいた上限緩和リクエストの概要:
  [AP_NORTHEAST_1]: Elastic IPs / ご希望のVPC Elastic IP アドレスの合計数, New Limit = 10

定義修正とリビルド

必要に応じて、定義ファイルを検証・ステージング環境のものに修正してリビルドを行います。

次のようにコマンド化しておくと次回からラクです。

sed -i 's/[元環境]/[新環境]/g' 定義ファイル名

個別の修正がすべて終わったらAMIイメージを保存しておくと安心です。

以上です。

Discussion