AMI (Amazon Machine Image) とは、Amazon EC2(Elastic Compute Cloud)インスタンスを起動するためのテンプレートのことです。AMIは以下の内容を含むものとして定義されます:
- OS(オペレーティングシステム)
例:Amazon Linux、Ubuntu、Red Hat Enterprise Linux、Windows Server など。 - アプリケーションとソフトウェア
必要に応じて特定のソフトウェアやアプリケーションをあらかじめインストールできます。 - 設定情報
ファイルシステムや設定(セキュリティ設定、ネットワーク設定など)が含まれます。 - ボリュームスナップショット
必要に応じてEBSボリュームのスナップショットが含まれます。
AMIの特長
- 再利用性
一度作成したAMIを利用して、複数のEC2インスタンスを一貫性のある環境で簡単に起動できます。 - カスタマイズ可能
ベースのAMIからカスタマイズして、自分のアプリケーションや設定を含んだ独自のAMIを作成できます。 - 共有と配布
AMIを他のAWSアカウントやAWSマーケットプレイスを通じて共有することができます。
AMIの種類
- パブリックAMI
AWSや他のユーザーによって公開されている一般公開のAMIです。 - カスタムAMI
自分で作成したAMIで、特定のアプリケーションや設定を含んでいます。 - AWSマーケットプレイスAMI
サードパーティが提供するAMIで、商用ソフトウェアを含んでいることが多いです。
AMIの作成プロセス
- EC2インスタンスを起動し、必要なソフトウェアや設定を行う。
- EC2インスタンスの状態をスナップショットとして保存し、AMIを作成する。
- 作成したAMIを基に、新しいEC2インスタンスを起動する。
AMIの活用シーン
- デプロイの標準化
テスト済みの環境を複数インスタンスにデプロイ。 - バックアップ
特定の時点でのインスタンス状態を保存しておき、復旧に使用。 - スケーリング
負荷が増えた際に同じAMIを利用してインスタンスを増やす。
AMIはAWS環境での柔軟なインフラ構築に欠かせない重要なコンポーネントです。
AMIを作成するには、通常以下のステップで既存の構築済みインスタンスを使用します。手順を具体的に説明します:
既存のインスタンスからAMIを作成する手順
- 対象インスタンスを準備する
- AMIに含めたいソフトウェアや設定をインストール・構成します。
- 不要なファイルやデータを削除し、クリーンな状態にしておくと良いです。
- AWS Management Consoleで操作
- AWS Management Consoleにログインします。
- [EC2サービス]に移動します。
- 作成したいAMIの元となるインスタンスを選択します。
- AMIを作成する
- 対象インスタンスを右クリックまたは[インスタンス状態]メニューから「イメージの作成」を選択します。
- 以下のオプションを設定します:
- イメージ名: 作成するAMIの名前を設定。
- 説明: オプションで、AMIの用途や内容を記載。
- EBSボリューム設定: 必要に応じてボリュームサイズやストレージタイプを設定。
- 設定が完了したら「イメージの作成」をクリックします。
- AMIの作成完了を確認
- 数分~数十分でAMIが作成されます(インスタンスのサイズやデータ量によります)。
- [AMI]タブに移動して作成されたイメージが表示されていることを確認します。
- AMIを使用する
- 作成したAMIを基に、新しいEC2インスタンスを起動できます。
注意事項
- 一時停止の検討
- AMI作成中、インスタンスの状態がキャプチャされます。そのため、作成前にインスタンスを停止することでより正確な状態を保存できます。
- ただし、停止が許容されない場合は、稼働中のままでもAMIを作成できます。
- EBSボリューム
- AMI作成時、インスタンスのルートボリュームとすべてのアタッチされたEBSボリュームが含まれます。ただし、インスタンスストアの内容は含まれません。
- コストの確認
- AMIに含まれるEBSスナップショットは、AWSのストレージ料金が発生します。
- セキュリティとデータ整備
- AMIに含まれるデータや設定を適切に管理し、不必要な機密情報が含まれないように注意してください。
CLIやSDKでの作成
AWS CLIやSDKを利用してAMIを作成することも可能です。たとえば、以下はCLIコマンドの例です:
bashコードをコピーするaws ec2 create-image --instance-id i-xxxxxxxxxxxxxxxxx --name "MyAMI" --description "Description of MyAMI"
この方法を使うと、スクリプトでAMI作成を自動化できます。
他の方法でAMIを作成
- Marketplace AMIからカスタマイズ
AWS Marketplaceで提供されているベースのAMIを使い、カスタマイズ後に新しいAMIを作成します。 - AWS Systems Managerを利用
AWS Systems Managerでパッチ適用やソフトウェア更新後に自動でAMIを作成するプロセスを組むことも可能です。
Oracle Cloud Infrastructure (OCI) でも、AWSのAMIと同様の機能があります。それを 「Custom Image」または「Custom Machine Image」 と呼びます。OCIのカスタムイメージを利用することで、既存の仮想マシン(VM)インスタンスを元に新しいイメージを作成し、それを再利用して他のインスタンスを起動できます。
OCIのCustom Image機能の概要
- Custom Imageとは
現在動作しているVMインスタンスのOSディスク(ブートボリューム)のスナップショットを取り、その状態を保存したものです。これを利用して他のインスタンスを同じ構成で起動できます。 - 用途
- インフラの標準化: 開発・テスト・本番環境で同じ設定を再現。
- バックアップ: 既存のインスタンスをバックアップとして保存。
- スケールアウト: 同一設定のインスタンスを増やす際に利用。
Custom Imageの作成手順(OCIコンソール利用)
- OCIコンソールにログイン
Oracle Cloud Infrastructureの管理コンソールにログインします。 - 対象インスタンスを選択
カスタムイメージを作成したいVMインスタンスを選びます。 - カスタムイメージを作成
- 「インスタンスの詳細」ページで「アクション」メニューを開きます。
- 「カスタムイメージの作成」を選択します。
- イメージ名と必要に応じて説明を入力します。
- イメージの作成プロセスを開始
作成が開始され、数分~数十分後にイメージが準備完了となります(インスタンスサイズやデータ量による)。 - カスタムイメージを確認
- OCIコンソールの「カスタムイメージ」セクションで、作成したイメージが一覧表示されます。
- イメージを基に新しいインスタンスを起動
- 新しいインスタンスを作成する際に、作成済みのカスタムイメージを選択します。
カスタムイメージの主な特長
- 共有可能
カスタムイメージを他のコンパートメントやテナントに共有できます。
(ただし、IAMポリシーの設定が必要です) - クロスリージョン対応
カスタムイメージを他のリージョンにコピーして利用できます。 - 保存コスト
カスタムイメージの保存にはOCIのブロックストレージ料金が適用されます。
CLIやAPIでのカスタムイメージ作成
OCI CLIを使えば、カスタムイメージの作成や管理をスクリプトで自動化できます。以下はCLIでカスタムイメージを作成する例です:
bashコードをコピーするoci compute instance export-image \
--instance-id ocid1.instance.oc1..<INSTANCE_OCID> \
--display-name "MyCustomImage"
他のイメージタイプ
- Platform Image
Oracleが提供する標準イメージ(例:Oracle Linux、Ubuntuなど)。 - Boot Volume Backupからのイメージ
既存のブートボリュームバックアップを使ってイメージを作成することも可能です。
AWS AMIとの比較
| 特徴 | AWS AMI | OCI Custom Image |
|---|---|---|
| 作成方法 | インスタンスから作成 | インスタンスから作成 |
| 共有 | 他のアカウントと共有可能 | 他のテナント/リージョンで共有可能 |
| クロスリージョン | 対応(手動コピー) | 対応(手動コピー) |
| データ保存場所 | S3ベース | ブロックストレージベース |
結論: OCIにはAWSのAMIとほぼ同等の「Custom Image」機能があります。環境や要件に応じて、AWSまたはOCIで効率的なイメージ管理を行うことができます!