AWSでマシンを作るのは簡単であることは、本サイトでもご紹介したとおりです。では何台も同じマシンを作るとすればどうでしょうか?作業手順書を作るのもよいでしょう。しかしさすがに何回も同じことをするのは・・・面倒ですし、生産的じゃないですよね。
いっそマシンのひな形があったらマシン量産できるのに、そう考えるのは当然です。それが・・・あるんです!AWS AMIというサービスです。
自分で稼働中のマシン(=インスタンス)からひな形(=AMI)を作れますし、MarketPlaceから他の人が作ったものを購入できます。さらに、自分の作ったひな形を販売できます!
本記事では、Amazon Machine Image(AMI)を解説します。
AWS AMIとは
AMIとは、クラウドの仮想サーバーであるインスタンスの起動に必要な情報を提供します(AWSの解説より)。つまり、どういったインスタンスを立ち上げるのかという情報です。
インスタンス立ち上げ時にAMIを指定して、求める仕様を満たすインスタンスを簡単に立ち上げられるというわけです。
AMIのメリット
仕様をAMIに保存できるので、作業手順の誤りによってインスタンスの設定にバラツキが出るのが防げます。よって、作業者の力量によらず、作業品質が保てます。作業手順書も必要なくなるので、ドキュメントのメンテナンス工数が削減できます。
その他、インスタンスの仕様をテンプレ化できることによるメリットは計り知れないものがあります。
AWS AMIの取得方法
インスタンスを立ち上げるときに、どこからAMIを取得するのか、どんな方法があるのか解説します。AWSマネジメントコンソールに表示される順で解説します。
普通に立ち上げたときでも・・・
AMIはそれぞれに振られた「ami-」で始まるIDを持っています。ところで、クイックスタートの画面をよく見てみると、すべて「ami-」で始まっています。つまり普通に立ち上げるときも、実はAMIを指定しているのです。
上位に出てくるAmazon Linux AMIは、Amazonが開発したLinuxのAMIなのです。
マイAMIと共有AMI
自分が作成したマイAMIと、他人(つまり別のAWSアカウントの、という意味)が共有してくれた共有AMIからインスタンスを立ち上げることができます。
AWSマーケットプレース(Marketplace)
AWS Marketplaceには、SAPやMicrosoft製品がセットアップされたAMIや、OSS製AMIが多数あります。無料のものもあれば有料もあります。
コミュニティAMI
コミュニティで公開されているAMIもあります。ご覧いただいてお分かりのとおり、とても多数のOSが公開されています。
以下のような意外なAMIも公開されていました。ディープラーニングで有名なTensorFlow(テンソルフロー)の環境込みのUbuntuとのこと。とても今時ですね。
その他、Kali Linuxなどなど、本当にさまざまな人が独自のものを公開しています。TensorFlowに限らず、自分が欲しいマニアックなAMIを検索してみるのも良いかもしれません。
AWS AMIの作り方
AMIのライフサイクルを俯瞰しつつ、実際に作ってみましょう。アイコンはAWSシンプルアイコン<リンク:AWSシンプルアイコンで「魅せる」ドキュメントを書こう!>を使いました。
まずはインスタンスを立ち上げて、自分仕様にカスタマイズします。そこからAMIを作成します。それがAMI #1です。もちろん、使わなくなったら登録解除(削除)できます。
AMI #1からインスタンスを起動できます。インスタンス #1です。
AMIそのものをコピーすることも可能です。それがAMI #2です。
AMIの利用サイクルの全体イメージ、つかめましたか?
では実際に作ってみましょう。インスタンスをすでに作成した前提で解説を進めます。
マネジメントコンソールから、インスタンスを右クリックします。表示されたコンテキストメニューの中の「Create Image」を選択します。
表示される画面で、必要事項を入力してください。
以上で完了です。作成したマイAMIはに表示されます。
これで完成です。簡単でしたね。
作ったAWS AMIの共有方法
自分が作ったAMIを、他の人へ共有しましょう。マネジメントコンソールより、EC2→イメージ→AMIと進み、作成したAMIを見つけてください。見つけたら右クリックして、「アクセス許可」タブの「編集」ボタンがあります。それをクリックしてください。
をクリックしてください。そこで共有したいAWSのアカウント番号を入力すればOKです。ちなみにアカウント番号とは、マネジメントコンソールのアカウント画面を開いたときに表示される、「アカウント番号」のことです。
AMIの料金
AMIからインスタンスを起動したときにインスタンスの利用料金が、またはAMIをS3に保存したときにS3の利用料金がかかります。しかしAMIを保持するだけなら、特に料金は発生しません。
登録の解除方法
不要になったAMIを登録解除、つまりAMIを削除するのも簡単です。EC2→AMIと進み、解除したいAMIを選択し、アクションをクリック。その中に「登録解除」という選択肢があるのでそれを選んでください。
これでAMIが登録解除、つまり削除されます。
まとめ
本記事ではAMIについて解説しました。
特にSIerの方々、AWSを使うときのインスタンスの量産化に悩んでおられたのではないでしょうか?ユーザーに依存するインフラの仕様は仕方がないにしても、基本部分はどのお客様も同じですよね。そんな基本部分、丸ごとひな形化できるAMI、ぜひ検討にしてみてください。