AWS クラウド

AWS AMIとは?AMIの解説から作成まで

AWS AMIについて紹介します。

AMIとは

AMIとは何か...に入る前に、まずはEC2とEBSの関係についておさらいします。

EC2EBS

EC2はコンピューターインスタンスサービスで、EBSはブロックストレージサービスであることは既知かと思います。

使われ方としては、EC2インスタンスにEBSボリュームをアタッチしてコンピューターリソースを使います。
EBSのボリュームをEC2が使いやすいようにパーティション分割をして利用する感じです。

当然、EBSがないとEC2インスタンスは動かないです。
逆にEC2インスタンスがないとEBSはただのストレージです。

このように、EC2とEBSはそれぞれ別のサービスでありながら必ず連携して動作する必要があります。

AMIとは?

それで肝心のAMIなんですが、
AMIはOSやアプリケーションが格納されたEBSボリュームのことを指します。

パーティション分割のテンプレートではなく、OSやアプリケーションのインストールまでをイメージとして残せるのは非常に強力ですね。

使い方の例としては、
リモートデスクトップ用のLinuxサーバーを複数台建てたいと思ったとき、OSをインストール→各種ネットワークの設定→VNCをインストール→...を都度していくのは非常に面倒です。
ですが、一度設定してAMIを作成しておくと、後は起動ボタンポチーで環境が用意できます。

AMIは、Amazonが用意した代表的なテンプレートを使うことができます。
あるいは、起動しているインスタンスやスナップショットから作成することができます。

自分だけのオリジナルのAMIを用意しておくと、環境を複製するときに非常に手間が少なくなるかと思います。

AWS Marketplaceに登録されたAMIを見てみる

OSやアプリケーションが格納された...と言っても、実際にはどのようなものなのか、やはりみて見ないことにはイメージしにくいですよね。

そこで、2021年8月現在のAWS Marketplaceに登録されているAMIを例に見てみましょう。

OSはAmazon Linux 2で、64bitですね。
systemd、GCC、Glibc、Binutilsをはじめ、必要な汎用ソフトウェアが既にインストール済みです。
ルートデバイスはEBS、仮想化タイプはhvm、ENAは有効ですね。

ユーザーが選択するのは、せいぜいCPUがx86かArmにするかのところですね。

では、実際に起動してこのAMIでEC2インスタンスを作成し、セッションマネージャで繋いでみます。

fdiskコマンドで確認してみると、ルートにxvdaがマウントされていますね。

まぁこれだけ見せられてもだから何?って感じなので、次に自分でAMIを作って環境を複製してみましょう。

自分でAMIを作成してみる

と言うことで、今度はマイAMIを作ってみましょう。

後で確認できるように、さっき作ったEC2インスタンスにとりあえずApacheのインストールをします。
(yumコマンドでインストールしました。)

では、マネージメントコンソールに戻ってAMIを作成しましょう。

対象のEC2インスタンスを選択し、[アクション]->[イメージとテンプレート]->[イメージを作成]をクリックします。

イメージ名を入力して、[イメージを作成]をクリックします。

5分弱くらい待ちます。

EC2の左ペインの[イメージ]->[AMI]から進捗を確認することもできます。
ステータスがpending中だと、作成中なのでまだ使うことができません。

作成が完了したら、EC2インスタンスを新たに起動します。
その際、AMIを選ぶ時に、[マイAMI]を選択すると、先程作成したイメージを選択することができるようになっています。

では、起動してたのでApacheが入っているか確認してみます!

同様にマウントされていますし、Apacheが入っていますね。
複製が完了しました。

最後に

OSの確認までするのを忘れていました...

以下、参考情報です。

Linuxディスク関連コマンドまとめ
「初心者向け」EC2のインスタンスからAMIを作成し、新しいインスタンスを起動してみましょう

-AWS, クラウド
-, , ,