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

トレタの大規模バックエンドを移行するまでの道のりと舞台裏

wind-up-bird
February 25, 2021

 トレタの大規模バックエンドを移行するまでの道のりと舞台裏

wind-up-bird

February 25, 2021
Tweet

More Decks by wind-up-bird

Other Decks in Technology

Transcript

  1. トレタのバックエンド API移行前の構成 NW: Public Subnet 構成: ALB + EC2 +

    AutoScaling API: Nginx + Unicorn 非同期処理: Sidekiq ログ収集: Fluentd
  2. これまでの課題 課題:設定ファイル・Secret管理 設定ファイル(Packer管理)  テンプレート+変数  例: unicorn.rb Secret(Packer管理)  暗号化してGithubに保存  Packer Build時に複合&埋め込み

     例: database.yml チーム間で作業の依存関係  アプリチームからSREチームに依頼 設定待ちの状態が発生   packer build + terraform apply   staging + production
  3. これまでの課題 課題:セキュリティ Public Subnet  すべて Public Subnet に配置  Session Manager

    導入以前は ssh 接続していた ssh 接続  CircleCI経由でデプロイ  Security Group 22番ポート開放  ssh 秘密鍵の管理
  4. どのように解決したか? セキュリティ Private Subnet  Private Subnet にコンテナ配置  Session Manager も廃止

    ssh 接続が不要  CodePipeline経由でデプロイ  AWS内で完結(22番ポート開放が不要)  ssh 秘密鍵の管理が不要に
  5. トレタのバックエンド API移行後の構成 構成: ALB + Container + AutoScaling プラットフォーム: ECS

    on Fargate NW: Private Subnet API: Nginx + Unicorn 非同期処理: Sidekiq ログ収集: Fluent Bit
  6. まとめ ECS on Fargate へ移行できた  開発スピードの向上  技術的負債の返却  将来的なトイルの撲滅  DX(Developper Experience)の向上

    まだまだ改善の余地がある  脆弱性対策  サブシステムのコンテナ化  周辺システムの改善  マネージドサービスへの移行