Skip to content

moto に Terraform を打ち込み、基本的なイベント駆動の構成を動かしてみた#1836

Merged
ma91n merged 4 commits into
mainfrom
feature
May 28, 2026
Merged

moto に Terraform を打ち込み、基本的なイベント駆動の構成を動かしてみた#1836
ma91n merged 4 commits into
mainfrom
feature

Conversation

@ma91n
Copy link
Copy Markdown
Collaborator

@ma91n ma91n commented May 28, 2026

No description provided.

@ma91n ma91n self-assigned this May 28, 2026
ローカルや CI 上で AWS・ Terraform のテストをしたいときのエミュレータとして、これまでは LocalStack が採用されるケースが多かったかと思います。

ただ 2026 年 3 月に Community Edition が廃止され、統合イメージへの移行と認証トークンの必須化が行われました。その後フィードバックを受けて非商用限定の Hobby プランも用意されましたが、いずれにせよ「アカウント登録 + 認証トークン」が必要になっています。 (参考: https://www.localstack.cloud/pricing#Tab%201)
「ローカルで気軽に使いたい」「CI 上で認証なしで使いたい」というユースケースに対しては、以前ほど手軽ではなくなりました。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "で" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "で"
  • "で"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)

ただ 2026 年 3 月に Community Edition が廃止され、統合イメージへの移行と認証トークンの必須化が行われました。その後フィードバックを受けて非商用限定の Hobby プランも用意されましたが、いずれにせよ「アカウント登録 + 認証トークン」が必要になっています。 (参考: https://www.localstack.cloud/pricing#Tab%201)
「ローカルで気軽に使いたい」「CI 上で認証なしで使いたい」というユースケースに対しては、以前ほど手軽ではなくなりました。

そこで、認証も登録もいらない代替を探していて見つけたのが [moto](https://github.com/getmoto/moto) です。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "も" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "も"
  • "も"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)


Terraform には、`*_override.tf` というファイル名で書いたリソース定義が、同名のリソースをマージで上書きしてくれる機構があります([Override Files](https://developer.hashicorp.com/terraform/language/files/override))。

moto を向くための設定を `override.tf` に切り出すことで、 `main.tf` を編集することなく、moto に向く設定に上書きできます。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "に" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "に"
  • "に"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)

}
```

特記事項は以下のとおり:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/ja-no-mixed-period> reported by reviewdog 🐶
文末が"。"で終わっていません。
理由: 句点は文の境界を明確にし、読み手の理解を助けます
修正: 適切な文末表現で文を完結させ、句点を追加してください
例: 「〜です。」「〜ます。」「〜でした。」など (ja-technical-writing/ja-no-mixed-period)

- ローカル完結なので `access_key` / `secret_key` / `region` は任意の文字列で可。
- 以下を参考に、 `skip_~~` 系を true に設定しました。
- [Non-Python SDK’s / Server Mode / Example Usage](https://docs.getmoto.org/en/latest/docs/server_mode.html#example-usage)
- ローカルだと S3 の `s3_use_path_style` を有効にしておく必要があります。これを設定しないと、ローカルでの名前解決が正しく行われません。本題から逸れるので、理由はトグルの中に入れておきます。気になる方は以下のトグルをご参照ください。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-mix-dearu-desumasu> reported by reviewdog 🐶
箇条書き: "である"調 でなければなりません
=> "である"調 であるべき箇所に、次の "ですます"調 の箇所があります: "ます。"
Total:
である : 0
ですます: 3
(ja-technical-writing/no-mix-dearu-desumasu)

したがって、 ECS サービスやタスクを模したい場合は、 moto の外側で動かす必要があります。

最初は、上記のコンテナも ECS のエミュレータ上で動かせたら嬉しいと考えていたのですが、上記の制約より、普通のコンテナとして動かす方針で検証を進めました。
:::
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/ja-no-mixed-period> reported by reviewdog 🐶
文末が"。"で終わっていません。
理由: 句点は文の境界を明確にし、読み手の理解を助けます
修正: 適切な文末表現で文を完結させ、句点を追加してください
例: 「〜です。」「〜ます。」「〜でした。」など (ja-technical-writing/ja-no-mixed-period)

ここまで動いたとはいえ、moto は実 AWS の完全な置き換えではありません。今回検証して見えた範囲だと、以下のような制約があります。

- **状態遷移系は再現対象外**
moto は Lambda 関数自体は Docker コンテナで実行できますが、他サービスのトリガー機構の中で Lambda が呼び出されるフローは実装が限定的です。たとえば Cognito の Custom Auth Flow (認証チャレンジを Lambda で進める仕組み) は moto の Cognito 側にトリガー発火実装が無く動きません。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "は" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "は"
  • "は"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)

ここまで動いたとはいえ、moto は実 AWS の完全な置き換えではありません。今回検証して見えた範囲だと、以下のような制約があります。

- **状態遷移系は再現対象外**
moto は Lambda 関数自体は Docker コンテナで実行できますが、他サービスのトリガー機構の中で Lambda が呼び出されるフローは実装が限定的です。たとえば Cognito の Custom Auth Flow (認証チャレンジを Lambda で進める仕組み) は moto の Cognito 側にトリガー発火実装が無く動きません。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "は" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "は"
  • "は"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)

ここまで動いたとはいえ、moto は実 AWS の完全な置き換えではありません。今回検証して見えた範囲だと、以下のような制約があります。

- **状態遷移系は再現対象外**
moto は Lambda 関数自体は Docker コンテナで実行できますが、他サービスのトリガー機構の中で Lambda が呼び出されるフローは実装が限定的です。たとえば Cognito の Custom Auth Flow (認証チャレンジを Lambda で進める仕組み) は moto の Cognito 側にトリガー発火実装が無く動きません。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-mix-dearu-desumasu> reported by reviewdog 🐶
箇条書き: "である"調 でなければなりません
=> "である"調 であるべき箇所に、次の "ですます"調 の箇所があります: "です。"
Total:
である : 0
ですます: 3
(ja-technical-writing/no-mix-dearu-desumasu)

- **状態遷移系は再現対象外**
moto は Lambda 関数自体は Docker コンテナで実行できますが、他サービスのトリガー機構の中で Lambda が呼び出されるフローは実装が限定的です。たとえば Cognito の Custom Auth Flow (認証チャレンジを Lambda で進める仕組み) は moto の Cognito 側にトリガー発火実装が無く動きません。
- **副作用ありの動作は限定的**
S3 → SQS は動きますが、たとえば SQS → Lambda の自動起動は moto では発火しません。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [textlint] <eslint.rules.ja-technical-writing/no-doubled-joshi> reported by reviewdog 🐶
一文に二回以上利用されている助詞 "は" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

  • "は"
  • "は"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
(ja-technical-writing/no-doubled-joshi)

ma91n and others added 3 commits May 28, 2026 11:26
…の構成を動かしてみた.md

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…の構成を動かしてみた.md

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…の構成を動かしてみた.md

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- http://localhost:5050/123456789012/moto-test-queue
```

# 試したいこと② : S3 → SQS → コンテナ のイベント駆動を動かす
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[textlint-fix] reported by reviewdog 🐶

Suggested change
# 試したいこと : S3 → SQS → コンテナ のイベント駆動を動かす
# 試したいこと(2) : S3 → SQS → コンテナ のイベント駆動を動かす

@ma91n ma91n merged commit c99c315 into main May 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant