マネジメントコンソールの AMI 選択画面から確認できない古いバージョンの RHEL AMI から EC2 インスタンスを起動する方法

古いバージョンの AMI は非推奨となってEC2 コンソール経由で確認できなくなっている可能性があります。AWS CLI の describe-images コマンドで --include-deprecated オプションを含めて対象バージョンが存在するかどうかを確認してください。
2023.11.11

困っていた内容

オンプレで稼働している古いバージョン(RHEL7.4など)のサーバを AWS へ移行する必要があるが、マネジメントコンソールの AMI 選択画面では同じバージョンの AMI を確認することができない。

該当バージョンを使用した EC2 インスタンスを起動する方法があれば教えてください。

実際の状況

EC2 コンソールから AMI を選択して「パブリックイメージ」を選んだ後に、検索バーで公式の Red Hat Enterprise Linux AMI を識別する「所有者=309956199498」を入力し、「RHEL-7.4」と入力したが何もヒットしない。 AMI検索に表示されない

どう対応すればいいの?

原因

AWS はバージョンが古く、非推奨となった AMI を EC2 コンソール経由で選択できないようにします。

AMI を非推奨にする

・AMI ユーザーは、非推奨の AMI をは EC2 コンソール経由で選択できなくなります。例えば、非推奨の AMI は、インスタンスの起動ウィザードの AMI カタログに表示されません。AMI 所有者の EC2 コンソール上には、非推奨の AMI が引き続き表示されます。

・AMI ユーザーで、非推奨となった AMI の ID がわかっている場合は、API、CLI、または SDK により、非推奨の AMI を使用しながらインスタンスの起動を継続することができます。

対応方法

AWS CLI の describe-images コマンドを使用して、対象バージョンとなる(非推奨の) RHEL AMI の AMI ID を確認し、その AMI ID を run-instances コマンドで使用して EC2 インスタンスを起動します。

実際に EC2 インスタンスを起動させてみた

① describe-images コマンドを使用する

describe-imagesコマンドを使用して希望する条件の AMI の検索をかけます。
今回は以下の条件でコマンドを実行して AMI 名と AMI ID をテキスト形式で返却するようにします。

  • 所有者: 309956199498(※ 公式の RHEL)
  • 非推奨のものも含める
  • リージョン: 東京
  • ルートデバイスタイプ: EBS
  • アーキテクチャ: x86_64
  • バージョン: RHEL-7.4
aws ec2 describe-images --owners 309956199498 \
--include-deprecated \
--region ap-northeast-1 \
--filters Name=root-device-type,Values=ebs Name=architecture,Values=x86_64 \
--output text \
--query 'Images[].[Name,ImageId]' \
| grep RHEL-7.4

コマンド結果は次のようになりました。

RHEL-7.4_HVM_GA-20170808-x86_64-2-Hourly2-GP2	ami-30ef0556
RHEL-7.4_HVM_Beta-20170518-x86_64-1-Hourly2-GP2	ami-31261f56
RHEL-7.4_HVM-20180122-x86_64-1-Hourly2-GP2	ami-36f09350
RHEL-7.4_HVM_GA-20170724-x86_64-1-Hourly2-GP2	ami-3901e15f
RHEL-7.4_HVM-20180103-x86_64-2-Hourly2-GP2	ami-eb50cd8d

② run-instances コマンドを使用する

上記で返却された結果にある ami-36f09350run-instancesコマンドで使用します。
今回はインスタンスタイプとして t2.micro を選んでいます。

aws ec2 run-instances --image-id ami-36f09350 \
--instance-type t2.micro \
--key-name キーペア名 \
--region ap-northeast-1

コマンドを実行して少しすると EC2 コンソールで対象の AMI を使用した EC2 インスタンスが起動されました。

対象AMIでEC2インスタンスが起動できた

注記

  • 非推奨の AMI ではサポート期限やセキュリティ更新の問題がありますため、検証や移行などの用途でどうしても古いバージョンの AMI を使って EC2 インスタンスを立ち上げる必要がある場合にのみ、上記の対応方法をご使用いただければと存じます。

  • describe-imagesコマンドで返却される利用可能な AMI のリストは随時変更される可能性がございます。

参照情報