🚨

サポート期限の過ぎた 3rd party の AWS AMI が、検証環境で起動できなくなって困った話

に公開

3rd party 製の AWS AMI を使っていて困ったことがあり、同じような問題を記事にしている人もいなそうだったので、記事にしてみます。

発生したこと

あるプロジェクトではウェブサイトの管理にソフトA[1]を使っています。
現在はソフトAのバージョンX系を使っていたのですが、このバージョンが End of Maintenance (以下、 EoM と省略します)になったということで、バージョンを上げる作業をすることとなりました。

ソフトAのサーバーの構築には、ソフトAの開発会社が提供する 3rd party 製 AWS AMI を使っていました。
今回、アップデート作業の万全を期すため、本番のソフトAサーバーのバックアップ AMI を取ったうえで、本番サーバーが起動している AWS アカウントとは別の「開発用 AWS アカウント」でバックアップ AMI を起動し、その上でアップデート作業の検証をしようとしました。

ところが、バックアップ AMI を起動しようとしたときに以下のようなエラーが発生しました。

なるほど、バックアップ AMI の復元時も、そのバックアップ AMI のベースとなった AMI が 3rd party AMI の場合は、事前にその 3rd party AMI をサブスクライブしないといけないようです。
確かに開発 AWS アカウントではまだソフトA の AMI をサブスクライブしていなかったので、言われた通りソフトA のバージョンX の AMI をサブスクライブしようとしました。

すると……

ソフトA バージョンX の AMI の詳細画面までは行けるものの、 サブスクライブボタンを押した瞬間に "Page not found" と表示されます

これについて AWS サポートに問い合わせたところ、サポートの力でサブスクライブをすることは難しいとの回答を得ました :cry:

  • ソフトA バージョンX の AMI は、ソフトA の開発会社側で何らかの理由で subscribe しようとすると "Page Not Found" ページが表示されるようにされている。
    • AWS 側では関与してないので、開発会社に問い合わせてほしい
  • AMI を subscribe しない限り、その AMI (をベースとして作った AMI )を起動することはできない

また、開発会社のドキュメントでは、 「ソフトA のバージョンの EoM 後は、 AMI の提供を終了する」 旨が明確に記されています。そこをなんとかサブスクライブさせて欲しいと連絡しても、おそらく通らないでしょう……

ソフトA バージョンX 系は EoM を迎えているものの、EoL は1年後なので、今回のような検証用途のことも考慮して新規サブスクライブをさせてほしいですね……

というわけで、ソフトAの EoM 化により、 検証環境上に本番環境のサーバーを再現する方法を失ってしまいました。

今回の対応

今回は、仕方がないので、本番の AWS アカウント上で AMI の復元を行ない、そのまま検証を行なうこととしました。

また、その結果ほとんどの検証はソフトA バージョン(X+1) AMI に本番サーバーのファイルを転送して配置することで代替となることがわかったので、以降はソフトA バージョン(X+1) AMI を開発 AWS アカウント上に立てて検証しました。

なお、ソフトAの公式ドキュメントによれば、ソフトA のアップデートは「in-place でやる」か「バージョンアップ後の AMI でインスタンスを新しく建てて、移行が必要なファイルを転送する」の2択が示されています。

しかし、古い AMI が新規にサブスクライブできなくなることを考えると、 in-place でソフトA をアップデートして 同じ AMI を使い続けることは危険なので、「バージョンアップ後の AMI でインスタンスを新しく建てて、移行が必要なファイルを転送する」方法でアップデートしていくのが良さそうです。

今後

今後は、 3rd party AMI をサブスクライブして利用するときは、プロジェクト内にあるすべての AWS アカウントでサブスクライブしておくのが良いかなと思いました。
そうすることで、なにか本番アカウントで問題が発生したときに、他の AWS アカウントでも 3rd party AMI を必ず立ち上げられるようにしたいと思います。

  • 今回はサブスクライブ自体にお金がかからないタイプの 3rd party AMI なのでこれができるが、サブスクライブ期間に応じてお金がかかるタイプの AMI [2] だと、無駄にサブスクライブすることもできないはず…… どうするのがいいんだろう……

3rd party AMI を供給する各社には、 EoM までではなく EoL まで新規 AMI のサブスクライブ手段を残してほしいところです。

脚注
  1. 念の為伏せさせてください。 ↩︎

  2. https://aws.amazon.com/marketplace/search/results?FULFILLMENT_OPTION_TYPE=AMAZON_MACHINE_IMAGE&PRICING_MODEL=RECURRING_FEE&filters=FULFILLMENT_OPTION_TYPE%2CPRICING_MODEL で検索できる ↩︎

GitHubで編集を提案
MIXI DEVELOPERS Tech Blog

Discussion