バナー画像

AWSのAMI(Amazon マシンイメージ)についてまとめています。

AWS AMIは、インスタンス起動用の仮想マシンイメージ

Amazon マシンイメージ (AMI) とは、インスタンス起動用の仮想マシンのイメージです。同じ設定で複数のインスタンスを立ち上げたい場合に、AMIを利用すると便利なんですね。インスタンスをそれぞれ異なる設定のAMIから起動することも可能です。

関連)Amazon マシンイメージ (AMI) – Amazon Elastic Compute Cloud

AMIには以下が含まれています。ストレージ領域のスナップショットに加え、管理情報がセットになっているんですね。

AWS AMIとスナップショットの違い

AMIとスナップショットは何が違うのでしょうか?

スナップショットは、AmazonのEBSボリュームのデータのコピーをS3上に保管したもので、インスタンスを構成するための管理情報は含まれません。スナップショットからインスタンスを起動するには、スナップショットをもとにEBSボリュームを作成して管理情報を設定する必要があるんですね。Windowsのような有償のOSの場合、スナップショットを取得しても必要な管理情報が抜け落ちてしまい起動できないこともあります。

スナップショットはあくまでバックアップ・リストア用のデータと考えると良いでしょう。スナップショットを利用してインスタンスを構成することは可能なものの、スナップショットから複数のインスタンスをポン、と起動させることはできないんですね。

対してAMIは、仮想マシンのイメージに加えてインスタンス起動用の管理情報が含まれているため、容易にインスタンスを起動できます。

関連)AWS Solutions Architect ブログ: AWSトレーニングでよくいただくご質問シリーズ – 第一回 Amazon Machine Image (AMI) とスナップショットの違い

AWS AMIの料金

AMIを作成するのに料金はかかりませんが、AMIを保管料がかかります。AMIの保管料は、Amazon EBSスナップショットの料金として請求されます。

公式サイトによると、EBSスナップショットの料金は1 か月に格納されたデータ 1 GB あたり 0.055USD。30GB程度のAMIなら月に1.65ドルとなります。AMIは生データではなく圧縮されて保存されるため、元データが30GBでもかなり小さくなる可能性があります。

スナップショットストレージの基盤になるのは、データを Amazon S3 で保存するのに使用された領域の大きさです。Amazon EBS では空のブロックが保存されないため、スナップショットのサイズはボリュームサイズよりもかなり少なくなるはずです。ボリュームの最初のスナップショットについては、データ全体のコピーが Amazon S3 に保存されます。増分スナップショットごとに、Amazon EBS ボリュームの変更部分のみが保存されます。
引用:Amazon EBS の価格 – アマゾン ウェブ サービス

なお、保管領域にかかる料金とは別に、AWS Marketplaceには、有料のAMIが販売されているんですね。有料AMIを使ってインスタンスを立ち上げた場合、AMIの所有者が設定した料金とインスタンスの時間料金がかかります。

関連)有料 AMI – Amazon Elastic Compute Cloud

また、有用なAMIを作成して、AWS Marketplaceで販売することも可能です。

AWS Marketplaceには、バックアップやデータ移行、OSやネットワーク、セキュリティなどのインフラソフトウェア、DevOps、ビジネスアプリ、機械学習、データ製品、IoTなどのソフトウェアソリューションがAMI形式で販売されています。(LinuxやWindowsのOSなど、利用料金無料のAMIもダウンロード可能です)

関連)AWS Marketplace: Homepage

AMIごとの詳細ページに、Pricing(料金)の項目があります。実際に有料で販売されているAMIの詳細ページを見てみましょう。以下は、ウイルス対策のTrend Micro Cloud Oneの料金ページです。

かなり複雑な料金体系です。

ワークロード:Micro-Med EC2インスタンス、WorkSpace、その他のクラウド1 vCPU / Hrごと $ 0.01 /ユニット
ワークロード:ラージEC2インスタンスごと、その他のクラウド2 vCPU / Hr $ 0.03 /ユニット
ワークロード:XLおよびより大きなEC2インスタンスごと、その他のクラウド4+ vCPU / Hr $ 0.045 /ユニット
ネットワーク:検査されたギガバイト(GB)あたり $ 0.013 /ユニット

このソフトウェアは仮想CPU時間ごと、検査されたネットワーク上のデータ量、などにより料金が決まる価格設定ですね。なお、料金は税金は含まれていません。シンプルな価格体系のものは詳細ページの右上に想定されるインスタンス料金と合わせた概算料金が表示されるのですが、複雑な料金体系のプロダクトでは概算表示がされないようです。

このような場合は、販売者に価格情報について問い合わせ、要件に対する概算見積もりをしてもらうのが良いでしょう。

AWS AMIの作成

AMIはどのように作成できるのでしょうか?

Amazon EC2 Instances (Amazon EC2 インスタンス)ビューで、インスタンスからAMIを作成することができます。インスタンスは実行中でも停止中でもかまいません。

関連)Amazon EC2 インスタンスからの AMI の作成 – AWS Toolkit for Visual Studio

デフォルトの動作では、Amazon EC2はインスタンスをシャットダウンしてからスナップショットを取得し、AMIを作成します。オプションでNo Reboot(再起動しない)を選ぶことができますが、その場合はファイルシステムの整合性が保証されません。実行中のマシンイメージのある瞬間をAMI化することになるんですね。

実際にNo RebootでAMIを作成した人によると、作成したはずのファイルが消えるなどの現象が起こったそうです。

参考)No RebootでAMIを作成したらファイルが消えたりした – Qiita

AWS AMIのまとめ

ポテパンダの一言メモ
  • AWS AMI(Amazon マシンイメージ)は、インスタンス起動用の管理情報を含む仮想マシンのイメージデータ
  • AMI作成の料金は無料だが、AMIの保管料金とスナップショット使用料金がかかる
  • AMIは実行中または停止中のインスタンスから作成できる

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。