はじめに
CloudFormation を学び始めると、YAML の書き方やリソースごとの設定項目でつまずきやすいと思います。
自分もテンプレートを書いても、プロパティ名の記述ミスやインデントのずれでスタック作成に失敗し、エラー修正に半日以上かかったことがあります。S3 なら「数行で作れるはず」なのに、バケット名の一意性やパブリックアクセス設定の書き方で迷う——そんな経験はないでしょうか。
(別記事で、S3 バケット作成の最小構成とつまずきやすい設定についても書いています)
そこで個人開発した IaCraftStudio では、画面のフォームに入力すると、その場で CloudFormation YAML がプレビュー表示されるようにしました。
Amazon S3 はログインなしで試せます。 所要時間はおおよそ 3 分です。
この記事では、システム構成(AWS)・作った背景・画面の様子・試し方を紹介します。
システム構成(AWS)
構成概要
・ReactはCloudFront経由で配信
・APIはAPI Gateway→Lambda
・ログインはCognito
・保存はDynamoDB
・静的ファイルはS3
なぜ作ったか
CloudFormation は、AWS 構成をコードとして管理できる便利な仕組みです。
一方で、初めて使うと次のような点でハードルが高いと感じました。
- YAML の書き方に慣れる必要がある
- リソースごとのプロパティをドキュメントで調べる必要がある
- インデントや設定の微妙な違いでデプロイが失敗する
- コンソールでは分かる設定でも、CloudFormation でどう書くか迷う
企業向けの本格的な IaC 管理ツールではなく、AWS初学者や個人開発者が学習・試作するときの補助輪として作っています。
想定しているのは、次のような方です。
- CloudFormation を学び始めた人
- S3 や Lambda などの基本構成を素早く YAML で確認したい人
- コンソール操作だけでなく IaC にも触れてみたい人
IaCraftStudioでできること(現状)
IaCraftStudio は、AWS の構成情報を画面から入力し、CloudFormation テンプレートを生成する Web ツールです。
| 機能 | 内容 |
|---|---|
| テンプレート生成 | S3 / CloudFront / API Gateway / Lambda / DynamoDB |
| YAML プレビュー | 入力に応じて右ペインにリアルタイム表示 |
| コピー・ダウンロード | 生成した YAML をそのまま持ち出せる |
| テンプレートセット | 複数サービスを組み合わせた構成から作成開始 |
| 保存・再利用 | ログイン後にワークスペースを保存 |
なお、S3 / CloudFront /APIGateway /Lambda / DynamoDB のテンプレート生成・プレビュー・コピー・ダウンロードはログインなしでも試せます。
入力例と生成される YAML
S3 画面で、たとえば次のように入力します。
- バケット名:
my-app-dev-logs-202606 - バージョニング: 有効
- 暗号化: SSE-S3(AES256)
- パブリックアクセスブロック: すべてブロック
- 削除ポリシー: Retain(スタック削除時もバケットを残す)
右側には、おおよそ次のような YAML が生成されます。
AWSTemplateFormatVersion: '2010-09-09'
Description: S3 buckets created by IaCraftStudio
Resources:
S3Bucket01:
DeletionPolicy: Retain
Type: AWS::S3::Bucket
Properties:
BucketName: 'my-app-dev-logs-202606'
VersioningConfiguration:
Status: Enabled
OwnershipControls:
Rules:
- ObjectOwnership: BucketOwnerEnforced
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
PublicAccessBlockConfiguration:
BlockPublicAcls: true
IgnorePublicAcls: true
BlockPublicPolicy: true
RestrictPublicBuckets: true
Outputs:
S3Bucket01Name:
Value: !Ref S3Bucket01
S3Bucket01Arn:
Value: !GetAtt S3Bucket01.Arn
フォームで選んだ項目が、そのまま CloudFormation のプロパティに対応しているので、「この設定は YAML だとこう書くのか」と対応関係を確認しながら学べます。
生成した YAML は、AWS コンソールの CloudFormation や aws cloudformation deploy でそのまま試すこともできます。
実際の画面
S3 テンプレート作成画面
左側でパラメータを入力し、右側で生成 YAML を確認できます。
トップページ
「サービス選択」から個別サービスを選ぶか、「テンプレートセット」から複数サービス構成で始められます。
3分で試す手順
- IaCraftStudio の S3 画面 を開く(ログイン不要)
- バケット名・バージョニング・暗号化などを入力する
- 右側の CloudFormation YAML を確認する
- 必要なら「コピー」または「ダウンロード」する
- AWS 環境があれば、生成 YAML をデプロイして動作確認する
まずは手順 1〜3 だけでも、CloudFormation の書き方の参考になると思います。
関連記事
同じテーマで、次の記事も書いています。CloudFormation 学習の流れとして併せて読んでもらえると嬉しいです。
今後の予定(簡潔に)
利用状況やフィードバックを見ながら、料金目安の表示や VPC / EC2 などのサービス追加を検討しています。
まとめ
CloudFormation は便利ですが、最初はテンプレートの書き方や設定項目で迷いやすいと感じています。
IaCraftStudio では、フォーム入力から CloudFormation YAML を生成することで、学習や試作のハードルを少し下げることを目指しています。
使ってみた感想や「こういうリソースが欲しい」などがあれば、コメントで教えていただけると嬉しいです。


