YAMLとは?初心者でもわかる基本構造と使い方・使う場面を徹底解説

YAMLの概要

YAML(ヤムル、Yet Another Markup Language)は、データの構造を人間が読みやすい形で表現するためのフォーマットです。現在では「YAML Ain’t Markup Language(YAMLはマークアップ言語ではない)」という再定義がされており、主に設定ファイルやデータ交換に用いられます。

PythonやDocker、GitHub Actions、Kubernetesなど、多くのツールで設定ファイル形式として採用されているため、ITエンジニアやプログラマーにとっては必須の知識です。


YAMLの特徴

  1. 人間が読みやすい
    • JSONやXMLに比べて、シンプルで見やすい構文が特徴です。
    • 例:波括弧やタグがなく、インデントで階層を表します。
  2. インデントによる階層構造
    • 半角スペースでネストを表現します(タブは使用禁止)。
    • ミスを防ぐため、通常は2〜4スペースを使用します。
  3. データ形式を自然に表現
    • 文字列・数値・配列・辞書など、主要なデータ構造を簡潔に書けます。
    • コメント(#)も利用可能です。

YAMLの基本構文例

# サンプルYAML設定
user:
  name: Taro
  age: 26
  skills:
    - Python
    - HTML
    - Docker
active: true

上記の例では、userの中に名前・年齢・スキルが階層的に定義されています。配列(リスト)は-で示し、ブール値(true/false)もサポートしています。


JSONとの違い

比較項目YAMLJSON
可読性高い(人に優しい)構文的に厳密だが見づらい
コメント可能(#)不可
構造の表現インデントで階層を表現波括弧 {} と角括弧 []
主な用途設定ファイル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を扱う際の注意点

  1. タブ文字を使わない(スペースのみ)
  2. インデントレベルを揃える
  3. 値の型を意識する(例:true"true"は別物)
  4. コロンの後にはスペースを入れる

小さな違いでエラーになることがあるため、構文ルールを正確に守ることが大切です。


まとめ

YAMLは、人間にも機械にも扱いやすいデータ記述フォーマットです。特に設定ファイルとしての利用が中心であり、可読性・柔軟性・簡潔さが評価されています。
システム開発、サーバー構築、自動化ツールなど、幅広い分野で使われており、**「複雑な設定をわかりやすく書きたいとき」や「構造化データを共有したいとき」**に最適です。
今後のIT現場では、YAMLの理解と活用スキルがますます求められるでしょう。