Home / 用語 / YAML

YAML

※本ページにはプロモーション(広告)が含まれています

一般IT用語

読みヤムル
英語YAML Ain't Markup Language

💡 ひとことで言うと

インデントで階層を表現する人間に読みやすい設定ファイル形式。Kubernetes・Docker Compose・CI/CD設定など、DevOps分野の標準フォーマット。

詳しい解説

YAMLは「YAML Ain't Markup Language(YAMLはマークアップ言語ではない)」の再帰的頭字語で、人間が読み書きしやすい形式を目指して設計されたデータシリアライズ言語です。拡張子は `.yaml` または `.yml` で、JSONと同じデータ構造を表現できますが、記述はよりシンプルになります。

JSONの `{}` や `,` を使わず、インデントで階層を表現し、キーと値は `key: value` のコロン区切りで書きます。配列は `- item` のハイフン記法で列挙します。コメントが `#` で書ける、複数行文字列が自然に扱える、といったJSONにない利点があります。

代表的な用途はアプリケーションの設定ファイルで、Kubernetesのマニフェスト、Docker Compose、GitHub Actionsのワークフロー定義、Ansibleのplaybook、CI/CD設定(.gitlab-ci.yml、.travis.yml)、npmパッケージ以外の設定など、DevOps分野で圧倒的なシェアを持ちます。

一方で、インデントがシンタックスの一部であるため、スペースとタブを混在させるとパースエラーになる、コロンの後に半角スペースが必須、文字列に見える値が暗黙的に真偽値や数値に変換される(`yes`→true、`1.0`→数値)といった罠があります。特に『ノルウェーの問題』と呼ばれる、国コード `NO` が真偽値の `false` として解釈されてしまう事例は有名です。

安全性のためには、YAML 1.2準拠のパーサーで、`yaml.safe_load()`(Pythonなど)のように危険な型を除外したロード関数を使うのが推奨されます。

📘 具体的な場面

KubernetesでWebアプリをデプロイするマニフェストはYAMLで書きます。`apiVersion: apps/v1` から始まり、`kind: Deployment` でデプロイメントを指定、`spec.replicas: 3` で3個のPodを起動…というように、設定内容が文章のように読めるのが利点です。JSONで同じ内容を書くと中括弧とカンマだらけで可読性が落ちるため、人間が手で編集する設定ファイルはYAMLが定番になっています。

別の呼び方

ヤムル
ヤメル
YAML Ain't Markup Language

関連する用語

この用語に関する関連記事

Check Also

Klipsch Reference Premiereのポートプラグ対処法

【2026年最新版】Klipsch Reference Premiereのポートプラグ対処法【完全ガイド】

Klipsch Referen …