CloudFormationでSQSを1個デプロイするのがあまりに面倒で投げた話(アンチ記事注意)
Posted On 2025-02-05
注意:CloudFormationアンチ記事です。信者の方はブラウザバック推奨!
CloudFormationを使ってみたが、SQSひとつ作るだけでもコマンドの長さやエンコード問題など作業工程が多く、非常に面倒だと感じた。AWS公式のメリットはあるが、現状ではTerraformの手軽さに軍配が上がるという結論だった。
目次
はじめに
- CloudFormationの問題をさんざん見たのでいい加減触ってみるかと思って触ってみた
- SQSを1個するためだけのもの
- 触った結果、あまりに不便だったので「もう二度とこんなの使うか」ってなった
コード
AWSTemplateFormatVersion: '2010-09-09'
Description: "CloudFormation を使用して SQS キューを作成するテンプレート"
Resources:
MySQSQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: MyQueueName # 任意の名前に変更可能です
これをsqs-queue.yamlに保存する
デプロイ
aws cloudformation create-stack --stack-name MySQSStack --template-body file://./sqs-queue.yaml --profile hogehoge
ローカルファイルはfile://
でつなぐ。一応相対パスも可能。
な…なげえ……。Terraformならterraform apply
で終わりなのに。いちいちこんなの入力したくない
はまりどころ💩
日本語コメントがある場合は、ファイルのエンコードがUTF-8だとエラーになる。Shift-JISで保存する必要がある
UTF-8の場合に出たエラー
Error parsing parameter '--template-body': Unable to load paramfile (./sqs-queue.yaml), text contents could not be decoded. If this is a binary file, please use the fileb:// prefix instead of the file:// prefix.
参考:CloudFormationでUnable to load paramfileエラー
さすがにこれは……
やっと成功
はい。SQS1個作るだけでなんでこんなに面倒なんだ
リソース削除
(スタック名忘れたらどうするんだろう)
aws cloudformation delete-stack --stack-name MySQSStack --profile hogehoge
(経過メッセージなし)
あくまでスタックの削除がトリガーされるだけで、削除が成功したかどうかはCLIのコマンドだとわからないんですね。
terraform destroy
だとそこらへん表示してくれるのに
所感
微妙なところ
- 日本語エンコード問題💩
- コマンドが長すぎる。Dockerでいうところの、Terraformがdocker composeで、CloudFormationは素のDockerコマンドみたい。もっとちゃんと抽象化してほしい
- Terraformだとできた、LambdaのPythonファイルのZip圧縮→デプロイがEnd-to-Endでできない。SAMかパッケージ化を挟まないといけなくてだるい
- SAMとか使えばできると思うが、CloudFormation単体だとyamlファイルが複数におそらくできない。スタック間で依存関係作れば理論上はできるが、GitHub見てると1個のモノリスyamlな例が多いので、可読性が非常に落ちる💩
- おそらく別コマンド叩けばあると思うのだが、delete-stackで経過が表示できないので、削除が成功しているか失敗しているかすぐわからなくてUXが悪い
良いところ
- AWS公式なところ。Stack Setsとか使えばマルチアカウントにデプロイできるところ
自分の意見
- 良いところはあくまでこれは理屈的な話で、自分が使ってみて良かったみたいなの特になかった。逆に「なんでこんなにめんどいの(ドン引き)」みたいな感じだった。擁護できる部分がない
- このあとVPC作る例やってみようかと思ったが、やる気すらなくなったので、Terraform使おうと思う
- 現状、CloudFormationは技術検討するときの選択肢から普通に外すかな。
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー