Amazon EC2のAMIとインスタンスの違いは何か?

2020年3月18日

AmazonWebService(以下、AWSと略記)ではAmazon EC2というサービスがあり、仮想サーバーをすばやく用意することができます。今回はAmazon EC2のAMIとインスタンスの違いについて説明していきます。

AmazonWebServiceのAmazon EC2

AmazonWebService(以下、AWSと略記)ではAmazon EC2(以下、EC2と略記)というサービスがあります。
正式名称はAmazon Elastic Compute Cloudであり、直訳すると「Amazonの柔軟なコンピュータのクラウド」ということになるでしょうか。
サーバー構築に使用され、すばやく仮想サーバーを構築することができます。

AMIとインスタンスの違いは何か?

AWSのマネジメントコンソールからEC2を選ぶ画面
AWSのマネジメントコンソールからEC2を選ぶ

AMI≒ミドルウェア、インスタンス≒ハードウェア

AMIとインスタンスの関係の画像
AMIとインスタンスの関係

EC2での仮想サーバーの構築を始めると、AMIとインスタンスを選択するよう促されます。
AMIとは「Amazon マシンイメージ」の略で、 インスタンスの作成に必要なソフトウェア構成 (OS、アプリケーションサーバー、アプリケーション) を含むテンプレートのことを指します。
ではインスタンスは何かというと、アプリケーションを実行できる仮想サーバーのことを指します。
ざっくりいうと、AMIはOSやミドルウェアのセットのことであり、インスタンスはハードウェアのことを指しています。

AMIで使いたいOSを選ぶ

AMIの選択画面
AMIの選択画面

上述の通り、AMIは使用するOSやミドルウェアの組み合わせ(テンプレート)を指しています。
あらかじめAWSが用意しているテンプレートもありますし、自分で作成したAMIや他者が作成したものも選択することができます。
基本的には使用するOSを選びます。AMIの選択画面でわかるように、Amazon LinuxというLinux系のOSをはじめ、RedHatやWindowsなど、多種多様なOSを選択できます。
あらかじめPythonやJavaなどのプログラミング言語がインストールされているものもあるため、用途に合わせて選んでいきましょう。

インスタンスで仮想サーバーの質を決める

インスタンスの選択画面
インスタンスの選択画面

インスタンスはハードウェアの役割を担っており、CPUやメモリ、ストレージの組み合わせから最適なものを選んでいきます。
CPUやメモリが少ない組み合わせであれば、あまりEC2の魅力はわかりません。しかし、インスタンスの選択画面を見てみると、CPU128、メモリ3904GiBというモンスター級のマシンも作成することがわかります。このようなマシンの用意は本来かなり骨を折らなければならないのですが、モンスター級のマシンもその場ですぐに構築できてしまうのがEC2の魅力です。

AMIとインスタンスの組み合わせで様々な環境を用意できる

AMIとインスタンスの組み合わせの画像
AMIとインスタンスの組み合わせ

EC2の魅力は高い性能のマシンであっても、すばやく作成できることにあります。それだけでなく、EC2ではAMIとインスタンスを組み合わせることで、様々な環境を作成できることもEC2の魅力です。
あるAMIを作り、それを複数のインスタンスで共有することも可能ですが、例えば本番環境用とテスト環境用の2つのインスタンスを作り、同一のAMIを使うこともできます。
こうすることにより、OSやミドルウェアは共通のまま、本番環境のスペックは高くし、テスト環境のスペックは抑えるというような使い方もできます。

まとめ

今回はAWSのEC2のAMIとインスタンスの違いについてみてきました。
AMIとインスタンスの関係を再度まとめると、マシンをどれくらいのストレージ(容量)で、どのようなCPUを積むようにするかを設定するのがインスタンスです。
一方、そのマシンの中にどんなOSを入れるのか、あるいはどんな言語を動かせるようにするのかがAMIにあたります。