【クラウドイニット】

cloud-init とは?

最終更新:
💡 起動時の設定を渡して、サーバーの準備を自動化

クラウドの仮想マシンなどで、起動時の初期設定を自動化するツール。メタデータやユーザーデータを読み取り、ユーザー・SSH鍵・パッケージなどを設定する。処理の実行頻度はモジュールや設定による。

📌 このページのポイント
起動時の設定を渡して準備する 設定データ ユーザー SSH鍵など cloud-init 起動時に 設定を実行 状態を確認 完了・エラー 設定の結果 初回だけ? 起動ごと? → 処理による cloud-init status --wait で待つ SSHで入れても、処理中の場合がある
設定形式や実行頻度は処理・環境によって異なります。処理が終わっていても問題が記録された場合があるため、状態と結果を確認します。
ひよこ ひよこ
cloud-initって何をしてくれるの?
ペンギン先生 ペンギン先生
仮想マシンなどの起動時に設定情報を読み取り、ユーザーの作成やSSH鍵の登録、パッケージの導入などを行うツールだよ。毎回手作業で準備する代わりに、必要な設定を先に渡せるんだ。
ひよこ ひよこ
設定はどう書くの?
ペンギン先生 ペンギン先生
代表的なのは先頭に#cloud-configを付けたYAMLだよ。ほかにシェルスクリプトなども扱える。利用するクラウドやイメージで、cloud-initが有効か、どこへユーザーデータを渡すかを確認しよう。
ひよこ ひよこ
どのクラウドでも同じ設定が使える?
ペンギン先生 ペンギン先生
多くのクラウドやOSに対応しているけど、何でも同じとは限らないよ。データの取得方法やOSのパッケージ名、使えるモジュールなどに違いがある。対象の環境で設定を確認する必要があるんだ。
ひよこ ひよこ
最初の一回だけ動くの?
ペンギン先生 ペンギン先生
処理によるよ。モジュールにはインスタンスごとに一回、起動ごと、一度だけといった頻度がある。再起動しても全てが再実行されるわけではないし、全てが一回限りでもない。各モジュールの頻度を確認しよう。
ひよこ ひよこ
SSHで入れたら準備は完了?
ペンギン先生 ペンギン先生
まだ最後の処理が動いている場合もあるよ。cloud-init status --waitで完了を待ち、状態やエラーを確認できる。終了していても問題が記録されたdegraded状態の場合があるので、必要な設定ができたかも確かめよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「cloud-init」って出てきたら「サーバー起動時の初期設定を自動化するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「cloud-init」 = クラウド環境の初期設定
💬 cloudとinitialization(初期設定)を結び付けると覚えやすいね。クラウド以外の環境にも対応しているよ

参考資料

← 用語集にもどる