Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2023/12/13 バックエンドシステムre-architect
Search
サイバーセキュリティクラウド
December 12, 2023
53
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2023/12/13 バックエンドシステムre-architect
サイバーセキュリティクラウド
December 12, 2023
More Decks by サイバーセキュリティクラウド
See All by サイバーセキュリティクラウド
会社紹介資料
csc
0
1.4k
CSC Culture Code
csc
0
930
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
430
Code Review Best Practice
trishagee
74
20k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
エンジニアに許された特別な時間の終わり
watany
109
250k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Code Reviewing Like a Champion
maltzj
528
40k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Transcript
バックエンドシステム re-architect 2023/12/13 深見浩司
自己紹介 深見浩司 株式会社サイバーセキュリティクラウド (CSC) WAF自動運用サービス部 開発リーダー 2023/07 CSC入社 エンジニア歴は 17年目
LAMP環境の構築から始まり、フロントエンド・バックエンド・インフラと経験 現在は WafCharm のフロントエンド・バックエンドの開発を行っています。
プロダクト (WafCharm)の説明 https://www.wafcharm.com
前提 • WafCharm においてはフロントエンド・バックエンドともにシステムの re- architect を行っています。 • 本日はバックエンドの開発の話です。 •
主にモノリシックな構成が前提で作られている中に、Serverless Service を使 って開発した内容です。
構築内容 決済情報の同期を行うタスク 外部の決済システムから定期処理でデータを取得し、内部のDBに保存する 実装内容は外部APIを叩いて保存するという単純なもの 従来の開発であれば EC2 で動作しているバッチプログラムに追加となるところ あえて Serverless を使用した実装を選択
Serverless の選択のモチベーション 既存の問題の解決 • EC2 インスタンスの管理の脱却 • インフラコスト Serverless 開発文化の構築
• Serverless 開発の知見を深める • 開発者できる人数の増加、手法の確立 • インフラ面の費用対効果を意識した開発 • 今後のシステムのドメイン分割のための第一歩
実装手法 開発フレームワークとして Serverless Framework を選択 選択の理由としては、実装に使用する Lambda, Step Functions, EventBridge
を一元管理する ことができるため (インフラ面は Terraform で管理) Lambda は Node.js (Typescript) で実装
実装後の構成 指定期間の更新情報を取得し保存 未完了情報を更新
実装コード serverless.yml (一部) Lambdaの定義 Step Functionsの定義 EventBridge の定義
Serverless にしたことによるメリット CPU処理時間あたりの費用対効果 EC2 インスタンスの管理から脱却 エラー時の情報確認の容易になった Lambdaを使うメリットであり、今後 Serverless 化が進むことにより、より大きくなる部分 今回は
EC2 インスタンスを削除するまでは至っていないが、今後開発を進めることで、EC2を無くすことが できると考えている。 EC2での設定追加が不要となった、これまでは手動で cron に登録しており、Serverless Frameworkを使った ことにより、デプロイ時に EventBridge(schedule) が作成されている。 エラー通知の条件を Step Functions の失敗時に行うことにより、通知情報に失敗した Step Functions の URL を記載している、この URL での詳細を確認することにより、エラー内容・エラー箇所・入力パラメータが確 認可能、特にエラー箇所がすぐにわかるのが大きい。 これまでは Lambda - CloudWatch Logs - 通知であったため、必要なログを探すのに苦労していた。
まとめ 開発チームの大きな目標としては、ドメイン分割・マイクロサービス化などを検討している。 ただし一度に達成できる目標ではないため、徐々に移行を実施していく必要がある。 様々な移行パターンがあるが、strangler fig パターン が最適と考えている。 そのためにも Serverless化は必要な技術。 今回の開発内容は、WafCharm
の開発の方向性の選択として、大きなものになったと考えてい る。 また新規のシステムは Serverless を前提とした構成としていく想定。 現在 EC2 の台数を半数以下に出来るよう、特定の処理を Lambda化する計画も実施中。 今後も新しい技術やサービスを取り入れて、開発に携わる人が成長していける環境を作っていき たいと考えています!