---
title: レガシーをサーバレス化で大勝利したかった話
tags: 
author: [加納広太](https://www.docswell.com/user/5307701)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/972D3XL17R.jpg?width=480
description: レガシーをサーバレス化で大勝利したかった話 by 加納広太
published: March 28, 25
canonical: https://www.docswell.com/s/5307701/522G4G-2025-03-28-170047
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/972D3XL17R.jpg)

レガシーをサーバレス化で大勝利したかった話
クラウドLT大会 vol.9


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DJY218Q4JM.jpg)

INDE X
1. 自己紹介
2. 発表概要
3. レガシーシステムについて
4. リアーキテクチャ
5. 落とし穴
6. まとめ / 今後の展望
7. 最後に
©TOPPAN Digital Inc.
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/V7N82QK6E8.jpg)

自己紹介
©TOPPAN Digital Inc.
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YJ9K1DVRJ3.jpg)

自己紹介
名前： 加納 広太（かのう こうた）
加納 広太
所属： TOPPANデジタル ICT開発センター DXソリューション開発部
役割：
１ 自社IoTソリューションの開発
組み込みデバイス / Webアプリ(backend) / インフラ
２ webアプリ/インフラのアーキテクチャ検討・実装など
資格：
【公式】TOPPANデジタル｜ICT開発センター (@toppan_dxd_ict) on X
©TOPPAN Digital Inc.
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJ8R43PG7D.jpg)

発表概要
©TOPPAN Digital Inc.
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LJLK6V1X7R.jpg)

発表概要
サーバレス化奮闘記
AWSサービスの紹介
アーキテクチャの詳細な説明
©TOPPAN Digital Inc.
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/47M25GW37W.jpg)

レガシーシステムについて
©TOPPAN Digital Inc.
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/P7RM3ZYRJ9.jpg)

レガシーシステムについて
タスク処理コンポーネント
2
1
Web EC2
用途：Webアプリ
3
SQS
5
4
振り分けEC2
用途：自前
Load balancer
Autoscaler
タスクEC2
用途：タスク処理API
1. ユーザーがwebアプリからタスク処理を依頼
2. WebEC2がタスクの内容をSQSにpush
3. 振り分けEC2がタスク内容をSQSからpop
4. 振り分けEC2がタスクEC2にタスク処理を依頼し、結果を取得
5. 振り分けEC2がSQSに処理結果をpush
©TOPPAN Digital Inc.
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PJXV49GYEX.jpg)

レガシーシステムについて
要求：タスク処理コンポーネントの費用が高すぎ、とにかく安くしたい！
タスク処理コンポーネント
Web EC2
用途：Webアプリ
SQS
1
振り分けEC2
用途：自前
Load balancer
Autoscaler
2
タスクEC2
用途：タスク処理API
問題点
1. 振り分けのロジックを自前実装しているため、実行環境の更新などが定期的に必要になる
振り分けEC2自体にもコストが掛かる
2. 振り分けEC2のAutoscalingロジックの都合で、使用されていなくても一定台数は起動してしまいコストが高い
©TOPPAN Digital Inc.
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3JKQZP44JD.jpg)

レガシーシステムについて
タスク処理コンポーネント
Web EC2
用途：Webアプリ
SQS
振り分けEC2
用途：自前
Load balancer
Autoscaler
タスクEC2
用途：タスク処理API
基本的にはEC2が常時起動しているのがコスト増の原因
未使用時のコスト削減のためサーバレス化を検討！
©TOPPAN Digital Inc.
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE3PDXLDJ5.jpg)

リアーキテクチャ
©TOPPAN Digital Inc.
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/8EDLP2N2JG.jpg)

リアーキテクチャ
タスク処理コンポーネント
AWS Step Functions workflow
1
2
3
4
タスク処理ECS
Web EC2
用途：Webアプリ
SQS
EventBridge Pipes
5
1. ユーザーがwebアプリからタスク処理を依頼
2. WebEC2がタスクの内容をSQSにpush
3. EventBridge Pipesがタスク内容をSQSからpop
4. EventBridge PipesがStepFunctionsを起動し、ECS（タスク処理API）を実行
5. ECSがSQSに処理結果をpush
©TOPPAN Digital Inc.
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/V7P2N15L78.jpg)

リアーキテクチャ
タスク処理コンポーネント
AWS Step Functions workflow
Web EC2
用途：Webアプリ
SQS
タスク処理ECS
EventBridge Pipes
■各サービスを選定した理由
SQS:
既存のWebの構成をなるべく変更したくなかったため、SQSを軸に検討
EventBridge Pipes:
SQSとStep Functionsの統合をサーバレスで実現するのに最適なため
Step Functions:
ECSタスクのエラーやスロットリング対応のため
ECS:
EC2で稼働していたタスク処理APIを置き換えるため
※15分以上の稼働必要なためLambda不可
©TOPPAN Digital Inc.
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2JVDKYP6JQ.jpg)

リアーキテクチャ
実装したフローが導通したときの気持ち
©TOPPAN Digital Inc.
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/5EGYQ9P2EL.jpg)

リアーキテクチャ
と思ったのも束の間。。。
©TOPPAN Digital Inc.
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4JQMKW297P.jpg)

落とし穴
©TOPPAN Digital Inc.
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/K74VPKPRJ1.jpg)

落とし穴
突然ですが、みなさんはAWS SQSの「一時キュー（仮想キュー）」はご存知でしょうか。
Amazon SQS一時キュー - Amazon Simple Queue Serviceによれば、
仮想キューは、Temporary Queue Client が作成するローカルデータ構造です。
仮想キューを使用すると、トラフィックの少ない複数の宛先を単一のAmazon SQSキューに結合できま
す。（中略）
一時キューの最も一般的な使用例は、リクエスト-レスポンスメッセージングパターンです。
このパターンでは、要求者が各レスポンスメッセージを受信するための一時キューを作成します。
SQSを同期的（リクエスト-レスポンスパターン）に利用することができるようになる仕組み
一時キューを利用するためには、リクエスト側とレスポンス側の両方でロジックの実装が必要
©TOPPAN Digital Inc.
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LJ139X9V7G.jpg)

落とし穴
実は元実装のSQSは一時キューなるものとして利用されていた
タスク処理コンポーネント
Requester
一時キュー
Responder
Web EC2
用途：Webアプリ
SQS
振り分けEC2
用途：自前
Load balancer
Autoscaler
タスクEC2
用途：タスク処理API
ロジックが必要なため
単純に振り分けEC2部分をEventBridge Pipesなどに置き換えることは不可能…
とほほ…
©TOPPAN Digital Inc.
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GJWPQNQ372.jpg)

まとめ / 今後の展望
©TOPPAN Digital Inc.
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EZKW3WGE3.jpg)

まとめ / 今後の展望
Good
・サーバレス実装の知見を得ることができた
・タスクEC2 → タスクECS での稼働を確認することができた
・一時キュー！そういうのもあるのか
Motto
・そもそも最初から一時キューが使用されていると知っておくべきだった
・動作確認は実施したが、各リソースの作り込み（エラー処理、
二重実行の抑制など）についてはまだまだこれから
©TOPPAN Digital Inc.
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/Y76QGXGQ7V.jpg)

まとめ / 今後の展望
パターン１ サーバーレス化の検討を継続する
パターン２ 振り分けEC2の機能を一部オミットして利用する
タスク処理コンポーネント
Requester
Web EC2
用途：Webアプリ
Responder
SQS
振り分けEC2
タスク処理ECS
基本的にはパターン１で進めつつ、難しければ
どこかのタイミングでパターン２への切り替えを検討
©TOPPAN Digital Inc.
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/G75RVXV2E4.jpg)

最後に
©TOPPAN Digital Inc.
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9J2D3X31JR.jpg)

5. 最後に
メンバーを積極的に募集中です！
気軽にドアノックしてみてください！
©TOPPAN Digital Inc.
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/DEY21814EM.jpg)

ご清聴ありがとうございました


