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?

【技術検証】CloudFormation × SQS でFIFOキューを構築するチュートリアルをやってみた

Posted at

はじめに

今回は、AWSのマネージドメッセージキューサービスである「Amazon SQS(Simple Queue Service)」を、AWS CloudFormation を使って作成してみました。

下記のハンズオンの内容となり、自分の環境で実際に手を動かして構築し、その内容をまとめたものになります。

SQSは今まで触ったことのないサービスでしたが、サーバーレスアーキテクチャやマイクロサービスの間の非同期通信にとても便利なサービスという印象です(AWSの認定試験で勉強しました!)。

Amazon SQSとは?

Amazon SQSは、マイクロサービス、分散システム、およびサーバーレスアプリケーション向けに設計された、完全マネージド型のメッセージキューサービスです。

アプリケーション間で非同期にメッセージをやりとりするために使われ、信頼性が高く、スケーラブルで、使いやすいのが特徴です。

このサービスです!(今まで使ったことなかったです...)

Screenshot 2025-06-21 at 14.48.41.png

過去にLambda関連の記事で一度取り上げたことがあるサービスなので、その記事のリンクを掲載しておきます(メインはLambdaですが...)。

何が嬉しいのか?

  • 非同期処理が可能:処理のボトルネックを分離できる
  • スケーラブル:トラフィックの急増にも対応
  • マネージド型:インフラ管理が不要
  • 高い可用性:自動で冗長性を確保
  • サーバーレスとの相性抜群:LambdaやStep Functionsと連携可能

個人的にわかりやすかったサイトです

実際にチュートリアルで作ってみた

今回は、AWS CloudFormation コンソールからFIFOタイプのSQSキューを作成してみました。

使用したテンプレート(MyQueue.json)

{
   "AWSTemplateFormatVersion": "2010-09-09",
   "Resources": {
      "MyQueue": {
         "Properties": {
            "QueueName": "MyQueue.fifo",
            "FifoQueue": true,
            "ContentBasedDeduplication": true
             },
         "Type": "AWS::SQS::Queue"
         }
      },
   "Outputs": {
      "QueueName": {
         "Description": "The name of the queue",
         "Value": {
            "Fn::GetAtt": [
               "MyQueue",
               "QueueName"
            ]
         }
      },
      "QueueURL": {
         "Description": "The URL of the queue",
         "Value": {
            "Ref": "MyQueue"
         }
      },
      "QueueARN": {
         "Description": "The ARN of the queue",
         "Value": {
            "Fn::GetAtt": [
               "MyQueue",
               "Arn"
            ]
         }
      }
   }
}

作成手順(AWSマネジメントコンソール)

  • CloudFormationコンソールで「スタックの作成」→「新しいリソースを使用(標準)」を選択

Screenshot 2025-06-21 at 14.10.49.png

  • 「テンプレートファイルをアップロード」で MyQueue.json を選択

Screenshot 2025-06-21 at 14.12.42.png

  • スタック名に MyQueueStack を入力

Screenshot 2025-06-21 at 14.13.24.png

  • オプションはそのまま変更せずに「次へ」

Screenshot 2025-06-21 at 14.13.55.png

  • 内容を確認して「送信」

Screenshot 2025-06-21 at 14.14.30.png

CloudFormation のイベントが正常に実行されていることも確認でき、問題ありませんでした!

Screenshot 2025-06-21 at 14.16.46.png

マネジメントコンソール上で、想定通りに作成されていることは確認できましたが、まだ何もリソースと紐付けていないため、現時点では「作成しただけ」の状態になっています。

Screenshot 2025-06-21 at 14.45.18.png

明日は、このリソースにSNSやLambda関数を紐付けて、いろいろと検証してみようと思っています〜

まとめ

ここまで読んでいただき、ありがとうございました!Amazon SQSは、非同期処理を取り入れたいときや、システムの結合度を下げたいときに非常に便利だと感じました。

一方で、使いこなすにはまだまだ理解が足りていない部分も多く、これからしっかり勉強していきたいと思います!

今回は基本のキュー作成だけでしたが、今後はLambda連携やデッドレターキューとの組み合わせなども試していきたいと思います...!

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?