YAMLとは?初心者でもわかる基本構造と使い方・使う場面を徹底解説
YAMLの概要
YAML(ヤムル、Yet Another Markup Language)は、データの構造を人間が読みやすい形で表現するためのフォーマットです。現在では「YAML Ain’t Markup Language(YAMLはマークアップ言語ではない)」という再定義がされており、主に設定ファイルやデータ交換に用いられます。
PythonやDocker、GitHub Actions、Kubernetesなど、多くのツールで設定ファイル形式として採用されているため、ITエンジニアやプログラマーにとっては必須の知識です。
YAMLの特徴
- 人間が読みやすい
- JSONやXMLに比べて、シンプルで見やすい構文が特徴です。
- 例:波括弧やタグがなく、インデントで階層を表します。
- インデントによる階層構造
- 半角スペースでネストを表現します(タブは使用禁止)。
- ミスを防ぐため、通常は2〜4スペースを使用します。
- データ形式を自然に表現
- 文字列・数値・配列・辞書など、主要なデータ構造を簡潔に書けます。
- コメント(#)も利用可能です。
YAMLの基本構文例
# サンプルYAML設定
user:
name: Taro
age: 26
skills:
- Python
- HTML
- Docker
active: true
上記の例では、userの中に名前・年齢・スキルが階層的に定義されています。配列(リスト)は-で示し、ブール値(true/false)もサポートしています。
JSONとの違い
| 比較項目 | YAML | JSON |
|---|---|---|
| 可読性 | 高い(人に優しい) | 構文的に厳密だが見づらい |
| コメント | 可能(#) | 不可 |
| 構造の表現 | インデントで階層を表現 | 波括弧 {} と角括弧 [] |
| 主な用途 | 設定ファイル | API通信やデータ交換 |
YAMLは「人が読むためのフォーマット」、JSONは「プログラムが扱うためのフォーマット」と覚えるとわかりやすいです。
YAMLを使う代表的な場面
YAMLはさまざまな開発や運用の場面で利用されます。特に「設定内容をわかりやすく記述したいとき」や「システム間でデータ構造を共有したいとき」に活躍します。
主な使用シーン
- 1. アプリやツールの設定ファイル
- 例:アプリケーションの動作設定(config.yml)
- 内容を変更することで挙動を簡単にカスタマイズ可能。
- 2. GitHub Actionsなどの自動化設定
- CI/CDパイプラインを定義する際に使用されます。
- 例:コードをプッシュしたら自動でテストやデプロイを実行。
- 3. Docker Composeの構成管理
- 複数のコンテナをまとめて管理できます。
- 例:Webサーバー、データベース、キャッシュサーバーを1つの設定で起動。
- 4. Kubernetesのリソース定義
- Pod、Service、Deploymentなどを宣言的に記述。
- 大規模システムの自動構成やスケーリングを支える基盤。
- 5. インフラ自動化(Ansibleなど)
- サーバー構築や設定変更を自動化する際に利用。
- 「どのサーバーに、何を、どう設定するか」を明確に記述できる。
- 6. データ共有や設定のテンプレート化
- JSONの代わりにAPI設定や初期データ定義にも利用可能。
- YAMLは視覚的に把握しやすいため、非エンジニアでも理解しやすい。
YAMLを扱う際の注意点
- タブ文字を使わない(スペースのみ)
- インデントレベルを揃える
- 値の型を意識する(例:
trueと"true"は別物) - コロンの後にはスペースを入れる
小さな違いでエラーになることがあるため、構文ルールを正確に守ることが大切です。
まとめ
YAMLは、人間にも機械にも扱いやすいデータ記述フォーマットです。特に設定ファイルとしての利用が中心であり、可読性・柔軟性・簡潔さが評価されています。
システム開発、サーバー構築、自動化ツールなど、幅広い分野で使われており、**「複雑な設定をわかりやすく書きたいとき」や「構造化データを共有したいとき」**に最適です。
今後のIT現場では、YAMLの理解と活用スキルがますます求められるでしょう。


