

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# カスタマイズされた cloud-init
<a name="cloud-init"></a>

cloud-init パッケージは、クラウドコンピューティング環境で Linux イメージをブートストラップするオープンソースアプリケーションです。詳細については [cloud-init のドキュメント](https://cloudinit.readthedocs.io/en/22.2.2/)を参照してください。

AL2023 には、cloud-init のカスタマイズバージョンが含まれています。cloud-init を使用すると、起動時のインスタンスの動作を指定できます。

インスタンスを起動する際、ユーザーデータフィールドを使用して cloud-init にアクションを渡すことができます。つまり、さまざまなユースケースに対して共通の Amazon マシンイメージ (AMI) を使用し、インスタンスの起動時にその AMI を動的に設定できます。AL2023 は `ec2-user` アカウントの設定にも cloud-init を使用します。

AL2023 は `/etc/cloud/cloud.cfg.d` と `/etc/cloud/cloud.cfg` にある cloud-init アクションを使用します。独自の cloud-init アクションファイルを `/etc/cloud/cloud.cfg.d` ディレクトリに作成できます。Cloud-init はこのディレクトリ内のすべてのファイルを辞書順に読み込みます。後のファイルは以前のファイルの値を上書きします。cloud-init がインスタンスを起動すると、cloud-init パッケージは以下の設定タスクを実行します。
+ デフォルトのロケールの設定
+ ホスト名の設定
+ ユーザーデータの解析および処理
+ ホストプライベート SSH キーの生成
+ 容易にログインおよび管理できるように、ユーザーのパブリック SSH キーを `.ssh/authorized_keys` に追加
+ パッケージ管理のためのリポジトリの準備
+ user-data で定義されたパッケージアクションの処理
+ user-data に含まれるユーザースクリプトの実行
+ インスタンスストアボリュームのマウント (該当する場合)
  + デフォルトでは、`ephemeral0` インスタンスストアボリュームが存在し有効なファイルシステムを含む場合、インスタンスストアボリュームは `/media/ephemeral0` にマウントされます。それ以外の場合は、マウントされません。
  + デフォルトでは、`m1.small` および `c1.medium` インスタンスタイプの場合、インスタンスに関連付けられたすべてのスワップボリュームがマウントされます。
  + 以下の cloud-init ディレクティブを使用して、デフォルトのインスタンスストアボリュームマウントを上書きできます。

    ```
    #cloud-config 
    mounts:
    - [ ephemeral0 ]
    ```

    マウントをより制御するには、「cloud-init ドキュメント」の「[マウント](https://cloudinit.readthedocs.io/en/22.2.2/topics/modules.html#mounts)」を参照してください。
  + インスタンスが起動しても、TRIM をサポートするインスタンスストアボリュームはフォーマット化されません。インスタンスストアボリュームをマウントする前に、インスタンスストアボリュームを分割してフォーマット化する必要があります。

    詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスストアボリュームの TRIM のサポート](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html#InstanceStoreTrimSupport)」を参照してください。
  +  インスタンスを起動する際、`disk_setup` モジュールを使用してインスタンスストアボリュームを分割およびフォーマット化することができます。

    詳細については、「cloud-init ドキュメント」の「[ディスクの設定](https://cloudinit.readthedocs.io/en/22.2.2/topics/modules.html#disk-setup)」を参照してください。

SELinux で cloud-init を使用する方法については、「[cloud-init を使用して `enforcing` モードを有効にする](enforcing-mode.md#cloud-init-enforcing)」を参照してください。

cloud-init ユーザーデータフォーマットについては、「cloud-init ドキュメント」の「[User-Data フォーマット](https://cloudinit.readthedocs.io/en/22.2.2/topics/format.html#format)」を参照してください。