Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2023/12/13 バックエンドシステムre-architect

2023/12/13 バックエンドシステムre-architect

Transcript

  1. 自己紹介 深見浩司 株式会社サイバーセキュリティクラウド (CSC) WAF自動運用サービス部 開発リーダー 2023/07 CSC入社 エンジニア歴は 17年目

    LAMP環境の構築から始まり、フロントエンド・バックエンド・インフラと経験 現在は WafCharm のフロントエンド・バックエンドの開発を行っています。
  2. 前提 • WafCharm においてはフロントエンド・バックエンドともにシステムの re- architect を行っています。 • 本日はバックエンドの開発の話です。 •

    主にモノリシックな構成が前提で作られている中に、Serverless Service を使 って開発した内容です。
  3. Serverless の選択のモチベーション 既存の問題の解決 • EC2 インスタンスの管理の脱却 • インフラコスト Serverless 開発文化の構築

    • Serverless 開発の知見を深める • 開発者できる人数の増加、手法の確立 • インフラ面の費用対効果を意識した開発 • 今後のシステムのドメイン分割のための第一歩
  4. 実装手法 開発フレームワークとして Serverless Framework を選択 選択の理由としては、実装に使用する Lambda, Step Functions, EventBridge

    を一元管理する ことができるため (インフラ面は Terraform で管理) Lambda は Node.js (Typescript) で実装
  5. Serverless にしたことによるメリット CPU処理時間あたりの費用対効果 EC2 インスタンスの管理から脱却 エラー時の情報確認の容易になった Lambdaを使うメリットであり、今後 Serverless 化が進むことにより、より大きくなる部分 今回は

    EC2 インスタンスを削除するまでは至っていないが、今後開発を進めることで、EC2を無くすことが できると考えている。 EC2での設定追加が不要となった、これまでは手動で cron に登録しており、Serverless Frameworkを使った ことにより、デプロイ時に EventBridge(schedule) が作成されている。 エラー通知の条件を Step Functions の失敗時に行うことにより、通知情報に失敗した Step Functions の URL を記載している、この URL での詳細を確認することにより、エラー内容・エラー箇所・入力パラメータが確 認可能、特にエラー箇所がすぐにわかるのが大きい。 これまでは Lambda - CloudWatch Logs - 通知であったため、必要なログを探すのに苦労していた。
  6. まとめ 開発チームの大きな目標としては、ドメイン分割・マイクロサービス化などを検討している。 ただし一度に達成できる目標ではないため、徐々に移行を実施していく必要がある。 様々な移行パターンがあるが、strangler fig パターン が最適と考えている。 そのためにも Serverless化は必要な技術。 今回の開発内容は、WafCharm

    の開発の方向性の選択として、大きなものになったと考えてい る。 また新規のシステムは Serverless を前提とした構成としていく想定。 現在 EC2 の台数を半数以下に出来るよう、特定の処理を Lambda化する計画も実施中。 今後も新しい技術やサービスを取り入れて、開発に携わる人が成長していける環境を作っていき たいと考えています!