CentOS7の最新AMI IDの取得方法考えてみた

CloudFormationでEC2を立てるときにAMI IDが欲しくなります。CentOS7の最新AMI IDを取得する方法について考えてみました。
2018.09.28

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

こんにちは、臼田です。

皆さん、CloudFormationテンプレート書いてますか?(挨拶)

CloudFormationを使ってEC2を立てていると、アレをうまく取得したくなります。AMI IDです。

そんなときに利用する新しい手法としてパラメータストアから取得する方法が取れるようになっています。

パラメーターストアから最新のWindows AMIのIDを取得する

最新のECS-optimized AMI IDをParameter Storeから取得できるようになりました(Amazon Linuxもあるよ)

すでにWindowsやAmazonLinuxも取得できるようになっているのですから、CentOSだって取得したいですよね?少なくとも僕はそう思いました。

パラメータストアからCentOSのAMI ID取得を試みる

パラメータストアからAMI IDを取得する方法の細かい内容は上記2つの記事を見ていただくのが手っ取り早いです。

それぞれ下記のようなパスを指定しています。

  • /aws/service/ami-windows-latest
  • /aws/service/ami-amazon-linux-latest

厳密には上記配下の詳細なエイリアスを指定しますが、上記のパスでクエリをかけるとエイリアスの一覧が出てくるので、そこから適切なものを選ぶだけです。

残念ながら僕がググって見た限りでは上記以外のパブリックパラメータストアの値を見つけることはできませんでした。

でも見てください、パスの命名規則はすっごいわかりやすい!こんなん楽勝やろ!

$ aws ssm get-parameters-by-path --path "/aws/service/ami-centos-latest"

An error occurred (AccessDeniedException) when calling the GetParametersByPath operation: No access to "/aws/service" unless public parameter, aws/service/ami-centos-latest is not a valid namespace.

………うそやろ

明らかに/aws/service/ami-centos-latestで行けそうな雰囲気でしたが、全然だめでしたorz

ちなみにcentos7とかバージョン入れてみたり、ubuntuとか他のOSも試してみましたが全滅でした

ならこれならどうや!

$ aws ssm get-parameters-by-path --path "/aws/service"

An error occurred (AccessDeniedException) when calling the GetParametersByPath operation: No access to "/aws/" namespace unless public or reference parameter, /aws/service is neither a public nor a reference parameter.

………完 全 敗 北

/aws/service自体はアクセスできないようです、残念

というわけで、確認した限りではパラメータストアからの取得はできないようでした

AmazonLinuxやWindows以外のOSの対応も待たれます

でもCentOS7のAMI IDを取得する方法はあった!

というわけで諦めかけていたのですが、同僚の助けによりCentOS7のAMI IDを取得する方法を見つけました!

まずは利用するCentOS7のマーケットプレイスからSubscribeします。

Continueします。

バージョンやリージョンを合わせるとAMI IDが表示されます!

やったね!(GUIだけど)

本当はCLIなりAPI一発で取得して上手くCloudFormationと組み合わせて使いたいところですが、現状では上記手法で手動で取得したあと、パラメータとして入力するしか無いと思います、多分

補足: ベンダーの提供情報について

実はCentOSのAMI IDは昔からCentOSのwikiに乗っているのでこれを参照すればいいと思っていたのですが、実際に見てみると現状の最新版の情報がなくお手上げ状態でした。

なので、上記手法でAWSのプラットフォームから取得する方法が確実だと思います。

まとめ

パブリックパラメータストアはすごく良い機能ですので、他のOSや他にも欲しい値は多分いろいろあるので、展開に期待したいですね。

ついでにパブリックパラメータストアの一覧がまとまっているページが欲しい!

CentOSの最新AMI IDについてはとりあえずマーケットプレイスから取得しましょう。