$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
トレタの大規模バックエンドを移行するまでの道のりと舞台裏
Search
wind-up-bird
February 25, 2021
Technology
1
120
トレタの大規模バックエンドを移行するまでの道のりと舞台裏
wind-up-bird
February 25, 2021
Tweet
Share
More Decks by wind-up-bird
See All by wind-up-bird
いつもみてるよ、エラーもその先も
w1ndupb1rd
0
110
CDNの自動割当ドメインをすべて独自ドメインに移行したよ
w1ndupb1rd
0
22
Teachme Biz で利用するドメインを統合して安心安全に静的コンテンツを取得する
w1ndupb1rd
0
150
studist tech talk #1
w1ndupb1rd
1
200
トレタを支える技術(インフラ編)
w1ndupb1rd
0
94
Other Decks in Technology
See All in Technology
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
830
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
RAG/Agent開発のアップデートまとめ
taka0709
0
190
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
520
Identity Management for Agentic AI 解説
fujie
0
110
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
6
1.6k
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
860
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
What's in a price? How to price your products and services
michaelherold
246
13k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Producing Creativity
orderedlist
PRO
348
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
26
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Balancing Empowerment & Direction
lara
5
810
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
[SF Ruby Conf 2025] Rails X
palkan
0
540
Transcript
トレタの大規模バックエンドを移行するまでの道のり と舞台裏 プロダクト開発におけるAWS活用のいろは 株式会社トレタ
自己紹介 名前:柳楽瑛 入社:2018年11月 部署:プロダクト開発部SREチームに所属 領域:AWS、GCPなどクラウドサービス全般 担当:トレタのほぼ全てのサービス @_windupbird_
目次 - トレタのサービスと移行前の構成 - これまでの課題 - どのように解決したか? - 移行後の構成 -
今後の課題 - まとめ
トレタのサービスと移行前の構成
トレタのサービスと移行対象 サービス群 構成: API + 複数のサービス 特性: APIが止まると他のサービス にも影響が波及する
移行対象: API
トレタのバックエンド API移行前の構成 NW: Public Subnet 構成: ALB + EC2 +
AutoScaling API: Nginx + Unicorn 非同期処理: Sidekiq ログ収集: Fluentd
トレタのバックエンド API移行前のデプロイ アプリケーションのデプロイ CI: CircleCI CD: CircleCI Gem: Capistrano
これまでの課題
これまでの課題 課題: 長期運用 EC2レイヤー 例: メンテナンス(イベント) 例: ステータスチェック OSレイヤー 例: OSのEOL対応 例: プロセスの起動設定
その他 EC2のイメージにすべて同梱されている
これまでの課題 課題:開発スピード(イメージ作成) AMI の作成時間 Packer: 30分以上 修正 小さな修正も都度 待ち時間が発生
これまでの課題 課題:開発スピード(イメージのデプロイ) Terraform 手動実行 AMIの差し替え B/Gデプロイ
これまでの課題 課題:開発スピード(イメージのデプロイ) Terraform 手動実行 AMIの差し替え B/Gデプロイ
これまでの課題 課題:開発スピード(イメージのデプロイ) Terraform 手動実行 AMIの差し替え B/Gデプロイ staging/procuction 計4回の terraform apply
...
これまでの課題 課題:設定ファイル・Secret管理 設定ファイル(Packer管理) テンプレート+変数 例: unicorn.rb Secret(Packer管理) 暗号化してGithubに保存 Packer Build時に複合&埋め込み
例: database.yml チーム間で作業の依存関係 アプリチームからSREチームに依頼 設定待ちの状態が発生 packer build + terraform apply staging + production
これまでの課題 課題:セキュリティ Public Subnet すべて Public Subnet に配置 Session Manager
導入以前は ssh 接続していた ssh 接続 CircleCI経由でデプロイ Security Group 22番ポート開放 ssh 秘密鍵の管理
どのように解決したか?
どのように解決したか? 長期運用 EC2レイヤー コンテナの採用 プラットフォームはECS FargateでEC2の管理から解放 OSレイヤー UbuntuなどホストOSの管理不要 その他 すべてEC2同梱
=> 各コンテナに分離
どのように解決したか? 開発スピード(イメージ作成) イメージの作成時間 CodeBuild docker build: 2分 素早い修正が可能に
どのように解決したか? 開発スピード(イメージのデプロイ) CodePipelineの採用 イメージ作成 タスク定義のイメージIDの差し替え B/Gデプロイ
どのように解決したか? 設定ファイル・Secret管理 設定ファイル アプリケーションのレポジトリ管理に Secret Parameter Store 例: database 接続情報
環境差分(staging/production) コンテナの環境変数で吸収 設定待ち、チーム間の依存関係が解消
どのように解決したか? セキュリティ Private Subnet Private Subnet にコンテナ配置 Session Manager も廃止
ssh 接続が不要 CodePipeline経由でデプロイ AWS内で完結(22番ポート開放が不要) ssh 秘密鍵の管理が不要に
移行後の構成
トレタのバックエンド API移行後の構成 構成: ALB + Container + AutoScaling プラットフォーム: ECS
on Fargate NW: Private Subnet API: Nginx + Unicorn 非同期処理: Sidekiq ログ収集: Fluent Bit
トレタのバックエンド API移行後のデプロイ アプリケーションのデプロイ CI: CircleCI CD: CodePipeline Gem: Capistrano
今後の課題
今後の課題 Log の Aggregator 課題 EC2 の利用とメンテナンス fluentd バージョン古い どうする?
kinesis + lambda とか?
今後の課題 コンテナセキュリティ イメージ脆弱性スキャン ECRイメージスキャン、Trivy etc… Pipeline への組み込み スキャン後のアクションなど運用も課題 信頼できるベースイメージの利用
今後の課題 API以外のサブシステム 一部ECS/EKSでホストしているが、 古いサービスはEC2を利用している (Herokuもいる) 最終的にはECS/EKSに統一したい
まとめ
まとめ ECS on Fargate へ移行できた 開発スピードの向上 技術的負債の返却 将来的なトイルの撲滅 DX(Developper Experience)の向上
まだまだ改善の余地がある 脆弱性対策 サブシステムのコンテナ化 周辺システムの改善 マネージドサービスへの移行
最後に エンジニア採用してます!! SRE フロントエンド サーバーサイド Clojureエンジニア etc... https://corp.toreta.in/recruit/engineer/
ありがとうございました