使用している Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタイプを別のファミリーおよびハイパーバイザータイプに変更したいです。
解決策
インスタンスの互換性と要件を検証する
現在のインスタンスタイプと、切り替え先のインスタンスタイプの仕様を比較します。各インスタンスタイプについて、次の要素を確認します。
- CPU アーキテクチャ (例: Intel、AMD、ARM ベース)
- 仮想化タイプ (例: Nitro、Xen)
- ネットワークパフォーマンス機能
- ストレージ最適化 (例: Amazon Elastic Block Store (Amazon EBS) 最適化 EBS ボリューム、インスタンスストア)
- アクセラレータサポート (例: GPU、FPGA)
同じファミリー内のインスタンスや、同じハイパーバイザーを使用するインスタンスは、互換性がある可能性が高くなります。ただし、ハードウェアの仕様や機能の違いが互換性に影響する可能性があります。詳細については、「インスタンスタイプを変更する際の互換性」を参照してください。
たとえば、m4.large (Xen) インスタンスから m5.large (Nitro) インスタンスに移行する場合は、AMI とカーネルが Nitro 拡張ネットワーキング Elastic Network Adapter (ENA) をサポートしていることを確認してください。Nitro は、m5、c5 などの新しいインスタンスタイプのみが使用します。m3、c3 などの初期のインスタンスタイプでは、Xen 仮想化を使用します。
AMI のバックアップを作成する
既存の EC2 インスタンスのバックアップ Amazon マシンイメージ (AMI) を作成します。インスタンスタイプの変更中または変更後に互換性の問題が発生した場合は、この AMI を使用すると従来のインスタンスにロールバックできます。
テストインスタンスを更新する
AMI を使用して新しいインスタンスタイプを含むテストインスタンスを起動し、本番環境を更新する前に互換性を検証し、問題を特定します。
テストインスタンスでは、アプリケーション、サービス、ワークロードを入念にテストし、新しいインスタンスタイプで期待通りに機能することを確認してください。リソースの使用状況を監視し、インスタンス、ネットワーク、ストレージ、およびアプリケーションのパフォーマンスを監視します。
潜在的な問題を特定するために、dmesg または /var/log/syslog にドライバーの欠落を示すエラーがないか確認します。インスタンスにアクセスして次のコマンドを実行し、ネットワーク機能などの主要なインスタンス機能を検証します。
# ping google.com
# curl -I http://example.com
ストレージに問題がないかどうかを確認するには、次の操作を行います。
インスタンスのパフォーマンスをテストするには、次の手順を実行します。
-
CPU 負荷をシミュレートするには、次のコマンドを実行します。
# stress --cpu 4 --timeout 60s
-
使用可能なメモリを確認するには、次のコマンドを実行します。
# free -h
たとえば、c5.large (Nitro) インスタンスタイプから c6i.large (Nitro、新しい Intel Ice Lake) インスタンスタイプに移行する場合は、正常に変更できます。ただし、m4.xlarge (Xen) インスタンスタイプから m6i.xlarge (Nitro) インスタンスタイプに移行する場合は、問題が発生する可能性があります。この問題を解決するには、ENA ドライバーを更新します。詳細については、「インスタンスで拡張ネットワーク機能を有効にする」を参照してください。
本番インスタンスを更新する
次のいずれかの方法で本番インスタンスを更新します。
ワークロードが重要ではなく、メンテナンス期間が指定されている場合は、Amazon EC2 コンソールでインスタンスタイプを変更します。
重要: インスタンスタイプを変更する前に、停止と起動によるインスタンスへの影響をレビューしてください。
本番環境のワークロードで中断を最小限に抑える必要がある場合は、次の手順を実行して代替インスタンスを起動します。
- 更新したインスタンスタイプを含む新しいインスタンスを起動します。
- 前のインスタンスの EBS ボリュームをアタッチします。または、EBS スナップショットから新しいインスタンスを復元します。
- DNS、ロードバランサー、Amazon Route 53 レコードを更新して、新しいインスタンスを指すようにします。
ステートレスでスケーラブルなアプリケーションでは、次の手順を実行して Amazon EC2 Auto Scaling グループを更新します。
- Auto Scaling グループの起動テンプレートを新しいインスタンスタイプで更新します。
- インスタンスの更新を開始して、以前のインスタンスを徐々に置き換えます。
本番インスタンスに問題がないか監視する
ドライバーとカーネルモジュールをレビューするには、次のコマンドを実行します。
# modinfo ena
NVMe ストレージを確認するには、次のコマンドを実行します。
# nvme list
注: nvme コマンドを実行するには、nvme-cli パッケージをインストールする必要があります。nvme-cli をインストールするには、ディストリビューションに応じて次のコマンドを実行します。
Debian、Ubuntu:
sudo apt-get install nvme-cli
Red Hat Enterprise Linux (RHEL)、CentOS:
sudo yum install nvme-cli
Fedora:
sudo dnf install nvme-cli
Arch Linux:
sudo pacman -S nvme-cli
インスタンスのパフォーマンスと安定性を監視するには、Amazon CloudWatch メトリクスで CPUUtilization、NetworkIn、NetworkOut を確認します。メトリクスを参照し、CPU 使用率とネットワーク帯域幅を監視します。
問題が発生した場合は、バックアップ AMI を使用して以前のインスタンスの状態にロールバックします。
関連情報
Amazon EC2 インスタンスタイプを変更する
Amazon EBS ベースの AMI を作成する