はじめに
インフラのコード化や構成管理の現場では、JSON (JavaScript Object Notation) を目にする機会が多くあります。
私の場合、特にAWS CloudFormationのテンプレートを作成する際に活用することが一般的です。
しかし、実務で頻繁に触れる機会が少ないため、理解が浅い部分もありました。
そこで、自分の備忘録としてJSONに関する基本的な知識を整理しておきます。
JSONとは?
JSONは、軽量で簡潔なデータ交換フォーマットです。
引用画像:https://apidog.com/jp/blog/what-is-json-and-how-differ-with-json-schema/
人間が読める形で記述でき、機械でも効率よく解析や生成が可能です。
もともとはJavaScriptの一部として開発されましたが、現在では多くのプログラミング言語で広く利用されています。
JSONの主なデータ型
JSONの主なデータ型は、ざっくりと以下になります。
-
オブジェクト (Object):
キーと値のペア { "key": "value" } -
配列 (Array):
順序付けられたリスト [1, 2, 3] -
文字列 (String):
ダブルクォートで囲まれたテキスト "example" -
数値 (Number):
整数や小数 42 または 3.14 -
真偽値 (Boolean):
true または false -
null: 値が存在しないことを表す null
基本的に、初学者でも扱いやすいデータ形式となっています。
JSONの特徴
JSONを使用するメリットは以下の通りです。
-
シンプルで軽量:
JSONはテキスト形式で簡潔にデータを記述できます。 -
言語に依存しない:
多くのプログラミング言語で扱うためのライブラリが存在します。 -
直感的に読み書き可能:
シンタックスがシンプルなので、初心者でも理解しやすいです。
CloudFormationテンプレート形式について
引用画像:https://aws.amazon.com/jp/cloudformation/
AWS CloudFormationのテンプレートは、インフラストラクチャをコードとして管理する際に利用される重要な形式であり、JSONまたはYAML形式で作成できます。
CloudFormationに関する詳細は、過去の記事でも技術検証を行っているので、興味がある方はぜひご覧ください。
個人的に、AWSの中でもCloudFormationが特に好きで、たくさん技術検証をしています。笑
JSONとYAMLの違いについて
CloudFormation テンプレートは、JSON または YAML 形式を選択できます。
簡単に違いについてまとめてみました。
特徴 | JSON | YAML |
---|---|---|
形式 | 厳格でフォーマットが固定 | 人間が読みやすいフォーマット |
記述量 | やや冗長 | 簡潔 |
コメント | 非対応 | 対応 (# ) |
使用場面 | プログラム間のデータ交換 | 設定ファイルや構成管理 |
JSONは構文が厳格で、機械解析に適しているため、APIレスポンスやデータ交換に多く利用されます。
一方、YAMLは簡潔で人間にとって読みやすく、設定ファイルや構成管理に適しています。
JSONを使ってテンプレートを書いてみた
以下は、AWS CloudFormationを使用してEC2インスタンスを1台構築するJSONテンプレートの例です。
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS EC2 Instance Creation Example",
"Resources": {
"MyEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "t2.micro",
"KeyName": "my-key-pair",
"Tags": [
{
"Key": "Name",
"Value": "MyFirstInstance"
}
]
}
}
}
}
コードの簡単な説明
少しAWSの知識も必要になりますが、これはJSONを使った簡単なコードです。
-
AWSTemplateFormatVersion
:
CloudFormationテンプレートのバージョンを指定。 -
Resources
:
作成するリソースの定義。 -
Properties
:
リソースの設定内容(AMI ID、インスタンスタイプ、キーペアなど)。
JSONはフォーマットがシンプルでありながら柔軟性が高く、特にインフラやAPIの分野では欠かせない存在です!
まとめ
JSONの基本から実践的な利用例までをまとめてみました。
使い慣れているつもりでも、改めて調べることで理解が深まることを実感しました。
YAMLとの違いやCloudFormationの例を通して、JSONの実用性を再確認できました。
今後もJSONの活用方法を探りながら、さらに効率的なインフラ管理を目指していきたいと思います!
参考記事