インスタンス起動ウィザードの「高度な詳細」タブの項目についてまとめてみた

2022.07.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、つくぼし(tsukuboshi0755)です!
新インスタンス起動ウィザードでEC2を起動する際に、以下の項目は設定が必須となります。

  • AMI
  • インスタンスタイプ
  • キーペア(ログイン)
  • ネットワーク設定
  • ストレージ設定

ただし以上の項目以外にも、インスタンス起動時に設定可能な項目が、「高度な詳細」タブに数多く存在します。(2022/7/18現在)
この項目1つ1つの機能について毎回忘れがちなので、本記事で参考文献と併せてまとめてみたいと思います!

高度な詳細タブの項目一覧

購入オプション

チェックを入れる事で、スポットインスタンスを使用します。
スポットインスタンスを使用する事で料金を抑えられる一方、インスタンスが強制終了されるリスクがあるため、もし途中で止まっても影響の少ない処理を実行する場合に向いてます。

Domain join directory

任意でインスタンス結合ディレクトリを指定できます。
Active Directoryを利用してドメインを管理している場合、本機能を使用する事で、サーバ起動時に自動的にドメイン参加を実行できるようになります。

IAMインスタンスプロファイル

任意でIAMインスタンスプロファイルを指定できます。
主にEC2インスタンスからAWSリソースを操作したい場合に、適切なインスタンスプロファイルを作成してEC2にアタッチする必要があります。

ホスト名のタイプ

サブネットの設定に応じて、OSのホスト名のタイプをIP名/リソース名から指定できます。
「IP名」を指定した場合、OSのホスト名はインスタンスのプライベートIPv4アドレスを含み、ip-10-24-34-0.ap-northeast-1.compute.internalのような形式となります。
「リソース名」を指定した場合、OSのホスト名はインスタンスIDを含み、i-0123456789abcdef.ap-northeast-1.compute.internalのような形式となります。

DNSホスト名

サブネットの設定に応じて、使用可能なDNSホスト名が指定されます。
原則サブネットのデフォルト設定を元に自動的に選択されますが、一部変更する事も可能です。

インスタンスの自動復旧

有効化する事で、インスタンスがAWS基盤側の障害で終了した際に、自動的にインスタンスを復旧してくれます。
デフォルトでは「有効」となっています。
以前はEC2インスタンス毎にCloudWatchアラームを設定する必要がありましたが、2022/3にデフォルトで有効化されるようになったので便利ですね。

シャットダウン動作

OSコマンドでのシャットダウンが実行された場合のインスタンスの動作を、停止/終了のいずれかから指定します。
デフォルトでは「停止」になっています。
インスタンスを終了してしまうとシステムへの影響が大きいため、基本的には「停止」のままで良いと思います。

Stop - Hibernate behavior

有効化する事で、インスタンスでハイバーネーションを使用できます。
なおハイバーネーションとは、シャットダウンする前にメインメモリの内容をハードディスク等に退避し、次回起動時にメインメモリに読み込んで、シャットダウンする前と同じ状態で起動する機能の事です。
メモリを大量に使用するアプリケーション等をインスタンス上で起動している場合、本機能を使用する事で、起動時間の短縮につながります。

終了保護

有効化する事で、EC2コンソールやAWS CLIの操作ミスによるインスタンスの削除を防ぎます。
デフォルトでは「無効」となっています。
万が一誤ってインスタンスを削除してしまうとシステムへの影響が大きいため、特別な事情がなければ有効化するのがオススメです。

停止保護

有効化する事で、EC2コンソールやAWS CLIの操作ミスによるインスタンスのシャットダウンを防ぎます。
デフォルトでは「無効」となっています。
常に起動状態を維持する必要があるインスタンスで設定すると良さそうです。
なおOSコマンドでのシャットダウンは防ぐ事ができないため、注意しましょう。

CloudWatch モニタリングの詳細

有効化する事で、インスタンスの詳細モニタリングを使用できます。
デフォルトでは「無効」になっています。
詳細モニタリングを使用すると追加料金が発生するため、事前に必要可否を検討してから有効化する事をオススメします。

Elastic GPU

任意でインスタンスにGPUを追加できます。
既存のインスタンスタイプで、一般的なGPUを使用する事ができるようになります。

Elastic Inference

任意でインスタンスにElastic Inferenceを追加できます。
既存のインスタンスタイプで、推論のアクセラレーションのために必要なGPUを使用する事ができるようになります。

クレジット仕様

T系インスタンスを選択している場合のみ、バースト可能パフォーマンスのモードをスタンダード/無制限のいずれかから選択できます。
t2インスタンスはデフォルトで「スタンダード」、t3インスタンスではデフォルトで「無制限」になっています。

プレイスメントグループ名

任意で作成済のプレイスメントグループを追加できます。
プレイスメントグループを用いて複数のインスタンスを起動する事で、ネットワーク速度の向上やハードウェア障害の軽減につながります。

EBS-optimized instance

有効化する事で、インスタンスのEBS最適化機能を使用できます。
EBS最適化機能が使用可能なインスタンスタイプでは、デフォルトで「有効」となっています。
本機能を有効化するだけ事でEBSのパフォーマンスが向上するため、特別な事情がなければ有効化するのがオススメです。

キャパシティーの予約

オンデマンドキャパシティー予約を使用してインスタンスを起動できます。
デフォルトでは「Open」が指定されています。
「Open」を指定した場合、オンデマンドキャパシティー予約の設定を起動時に参照し、条件に一致するキャパシティー予約があれば、該当の設定を利用して起動を実施します。

テナンシー

テナンシーを共有/専有/専有ホストから選択できます。
デフォルトでは「共有」が指定されています。
基本的には「共有」のまま問題ないですが、各種ライセンスやセキュリティ要件によりハードウェアを指定したい場合は「専有」または「専有ホスト」を検討すると良さそうです。

RAM ディスク ID

任意でRAMディスクのIDを指定できます。
指定する事で、特定のRAMディスクを使用できるようになります。

カーネル ID

任意でカーネルのIDを指定できます。
指定する事で、特定のカーネルを使用できるようになります。

Nitro Enclave

有効化する事で、インスタンス内にEnclaveと呼ばれる分離されたアプリケーション環境が作成されます。
デフォルトでは「無効」となっています。
個人情報を始めとする機密性の高いデータを保護したいインスタンスで有効化すると良さそうです。

ライセンス設定

任意で作成済のLicense Managerルールを指定できます。
ソフトウェアベンダーのライセンスを管理し、ライセンス違反を制限する事が可能です。

CPUオプションを指定

チェックを入れる事で、CPUのコア数やスレッド、vCPUの数を指定できます。
ソフトウェアのライセンスによってはCPUの数に応じて料金がかけられる事があるため、あえてCPU性能を下げる事でライセンス料金を削減する事が可能になります。
(本機能はソフトウェアベンダーにより取り扱いが異なるため、実際に使用する場合はベンダーに事前に問い合わせする事を推奨します。)

アクセス可能なメタデータ

有効化することで、インスタンス内でメタデータを使用できるようになります。
デフォルトでは「有効」となっています。

メタデータのバージョン

メタデータのバージョンをv1またはv2/v2のみのいずれかからできます。
v2を使用する事で、セキュリティの向上が見込めます。

メタデータレスポンスのホップ制限

メタデータトークンが移動できるネットワークホップの数を指定できます。
デフォルトでは「1」が指定されています。

メタデータのタグを許可する

有効化する事で、HTTPリクエストによってインスタンスに紐づくタグを取得できます。 デフォルトでは「無効」となっています。
インスタンスのタグの設定値を参照した処理をインスタンス内で実装したい場合に、有効化すると良さそうです。

ユーザーデータ

任意で特定のシェルスクリプトまたはcloud-initディレクティブを記載する事で、インスタンス起動時に指定されたスクリプトを実行できます。
ミドルウェアやアプリケーションのの自動インストール/起動設定等を実施したい場合に役立つ機能です。

まとめ

EC2は基本的なサービスですが、改めてまとめてみると想像以上にたくさんの機能がありますね。
またこれからも新機能が追加される可能性が高いサービスでもあるので、今後の動向には目が離せません!

なお、本記事はBlackBeltの「Amazon EC2」も併せて参照しております。
ぜひご覧頂くと、新たな発見があって良いかもしれません。

以上、つくぼしでした!