Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2023/12/13 バックエンドシステムre-architect
Search
サイバーセキュリティクラウド
December 12, 2023
47
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.1k
CSC Culture Code
csc
0
860
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.3k
Rails Girls Zürich Keynote
gr2m
96
14k
30 Presentation Tips
portentint
PRO
1
350
GitHub's CSS Performance
jonrohan
1033
470k
Making the Leap to Tech Lead
cromwellryan
135
10k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Agile that works and the tools we love
rasmusluckow
331
22k
Amusing Abliteration
ianozsvald
1
220
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
So, you think you're a good person
axbom
PRO
2
2.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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化する計画も実施中。 今後も新しい技術やサービスを取り入れて、開発に携わる人が成長していける環境を作っていき たいと考えています!