1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者向け:AWS CloudFormationで学ぶJSONテンプレートの基本と備忘録

Last updated at Posted at 2024-12-03

はじめに

インフラのコード化や構成管理の現場では、JSON (JavaScript Object Notation) を目にする機会が多くあります。

私の場合、特にAWS CloudFormationのテンプレートを作成する際に活用することが一般的です。

しかし、実務で頻繁に触れる機会が少ないため、理解が浅い部分もありました。

そこで、自分の備忘録としてJSONに関する基本的な知識を整理しておきます。

JSONとは?

JSONは、軽量で簡潔なデータ交換フォーマットです。

スクリーンショット 2024-12-03 21.03.08.png
引用画像: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テンプレート形式について

スクリーンショット 2024-12-03 21.04.19.png
引用画像: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の活用方法を探りながら、さらに効率的なインフラ管理を目指していきたいと思います!

参考記事

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?