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
グループウォレットアプリ6gramの運用をはじめてみた / 6gram SRE NEXT 2020
Search
ryosan470
January 25, 2020
Technology
16k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
グループウォレットアプリ6gramの運用をはじめてみた / 6gram SRE NEXT 2020
SRE NEXT 2020
ryosan470
January 25, 2020
More Decks by ryosan470
See All by ryosan470
6gram to MIXI M / 6gram から MIXI M へ 〜2年間の軌跡〜
ryosan470
2
2.6k
Our monitoring past and future tale
ryosan470
3
1.5k
the background of mixi git challenge
ryosan470
1
410
新米SREとしての半年
ryosan470
1
3.2k
Other Decks in Technology
See All in Technology
生成AI時代のIAMのマニアックな話
takuros
6
2.6k
新卒エンジニア、 介護士になる
ryu1013
1
690
超⼩型・多⾔語検索モデル Bekko Embedding
hotchpotch
1
110
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
200
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
150
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
640
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
4
290
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
180
eBPF 簡介 2026 版
shunghsiyu
0
190
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
0
430
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
4
3.1k
登壇はいいぞ! 〜Kaigi on Railsに登壇して起きた3つの変化〜
occhi
0
110
Featured
See All Featured
Abbi's Birthday
coloredviolet
4
11k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
810
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
680
Mind Mapping
helmedeiros
1
430
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
360
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
グループウォレットアプリ 6gram の運⽤をはじめてみた SRE NEXT 2020 株式会社ミクシィ ID・ペイメント事業部 佐藤 良祐
2020/01/25
⾃⼰紹介 佐藤 良祐 (@ryosan-470 / @jtwp470) 株式会社ミクシィ ID・ペイメント事業部 2017年4⽉⼊社 ‣
~ 2019/04 モンスターストライク⽇本版SRE ‣ 2019/04 ~ 新規の決済系サービス「6gram」や社内決済基盤の開発と運⽤
None
「6gram」サービス紹介 ひとりでも、グループでも使うことのできるウォレットサービス グループに⼊れたお⾦をシェアしたり、インスタントに発⾏したプリペイドカードに残⾼を割 り付けたりといろんな使い⽅ができる ‣ JCB プリペイドカードを1アカウントで複数枚発⾏できる ‣ ApplePay /
GooglePay と連携して QUICPay+ 決済 ‣ iOS では コンタクトレス決済に対応 ‣ リアルカードも発⾏予定 2019年11⽉にAndroid版を先⾏リリース ‣ 現在は完全招待制
None
iOSは審査中 (もうしばらくお待ちください)
今⽇は配布物の中に招待コードあります! QRコードを読み取って是⾮使ってくださいー
もくじ 決済サービスの基礎的な概念 PCI DSS 完全準拠 の⼯夫 6gram システム構成 開発、運⽤体制 課題
決済サービスの基礎的な概念 (出⾦ / カード発⾏、管理) ユーザー 加盟店 アクワイアラ 国際ブランド クレジットカード決済 イシュア
カード発⾏業務 加盟店管理 VISA / JCBなど ISO8583形式の電⽂ でやりとり ISO8583形式の電⽂ でやりとり
決済サービスの基礎的な概念 (⼊⾦ / 決済代⾏) ユーザー アクワイアラ 国際ブランド クレジットカードによる⼊⾦ 加盟店管理 VISA
/ JCBなど ISO8583形式の電⽂ でやりとり ISO8583形式の電⽂ でやりとり イシュア 決済代⾏
決済サービスの基礎的な概念 (まとめ) 「出⾦」と「⼊⾦」の両⽅とも⾃社でシステムを実装 「出⾦」では、プリペイドカードの発⾏、管理 「⼊⾦」では、ユーザーが⼊⾦するために必要なカード情報を保持 ⇨ これらをサポートするためには、「PCI DSS」に準拠しなければならない
PCI DSS とは? クレジットカード業界のセキュリティ基準 これに準拠することにより、カード番号などの情報を保持することができる 12要件、約400項⽬ 数年に⼀度、基準が改訂される
PCI DSS 完全準拠の⼯夫
アカウント要件 要件8 コンピュータにアクセスできる各ユーザーに⼀意のIDを割り当てる ‣ 8.2.3 パスワードは以下を満たす必要がある ‣ パスワードに7⽂字以上含まれる ‣ 数字と英⽂字を両⽅含む
‣ 8.2.4 パスワードは少なくとも90⽇ごとに変更する ‣ 8.2.5 これまで使⽤した最後の4つのパスワードのいずれかで同じである新しいパス ワードを許可しない
アカウント要件 パスワード管理めんどくさいなぁ
セキュリティ要件 要件5 すべてのシステムをマルウェアから保護する ⇨ 稼働中のサーバーにウイルスチェックなどが必要 要件11 セキュリティシステムおよびプロセスを定期的にテストする ‣ 11.4 侵⼊検知/侵⼊防⽌システムを使⽤して警告する
‣ 11.5 変更検出メカニズムを導⼊してファイル変更を監視、警告する
セキュリティ要件 ウイルス検知ソフトウェア、侵⼊検知ソフトウェアが落ちてもインシデント
われわれの⼤⽅針 ⇨ 運⽤負荷をできるだけさげたい
インスタンスを使わない
インスタンスを使わない
インスタンスを使わないことで何が嬉しいか アカウント管理をIAMに集約しやすい 90⽇に1回のパスワード変更祭り (しかも4回分は使えない) をしなくてすむ 管理すべきコンポーネントを減らすことができる 運⽤負荷を下げるために重要
さらに
コンテナをRead Only で動かす
セキュリティ要件 要件5 すべてのシステムをマルウェアから保護する ⇨ 稼働中のサーバーにウイルスチェックなどが必要 要件11 セキュリティシステムおよびプロセスを定期的にテストする ‣ 11.4 侵⼊検知/侵⼊防⽌システムを使⽤して警告する
‣ 11.5 変更検出メカニズムを導⼊してファイル変更を監視、警告する
インスタンスレス + Read Only で何が嬉しいか 侵⼊検知の仕組みを導⼊する必要がない リモートコンソールが存在しないためそもそも侵⼊できない ファイル変更検出ソフトウェアが不要になる Read Only
なのでそもそも書き換えができない
コンテナをRead Only で動かす⼯夫 コンテナはAWS Fargate上で動かしている コンテナは Read Only で稼働させている ‣
具体的には、ECSタスク定義の readonlyRootFileSystem を true にしている ⼯夫点 ‣ ログはファイルを作成せず、標準出⼒に ‣ 起動時に作成されるディレクトリはあらかじめ作成しておく
クレジットカード情報の保有についての制約 要件3 保存されるクレジットカード情報を保護する ‣ 3.4 クレジットカード情報は暗号化などの仕組みを⽤いて保存する ‣ 3.5.2 クレジットカード情報へのアクセスを必要最低限に制限する ‣
3.5.3 暗号化に使⽤される鍵の保存 要件7 クレジットカード情報へのアクセスを制限する 要件10 クレジットカード情報へのアクセスを追跡、監視する
クレジットカード情報の保有について クレジットカード情報をはじめとするすべてのデータをDynamoDBに保存 AWSには ‣ IAMをベースとした細かいアクセス制御 ‣ KMSによるテーブルの透過的暗号化 さらにスケーリングや管理をすべてAWSにお任せできる 運⽤をはじめて、DynamoDBを起因とする障害は今の所ない
その他の⼯夫点
定時実⾏処理 バッチ処理には CodeBuild を使⽤ 売上データを取得、オーソリゼーション業務などの定時処理をすべてCodeBuildで 採⽤理由 ‣ AWS Batch は裏でEC2が爆誕するからだめ
‣ Lambdaは実⾏時間が短すぎる ‣ Fargate で 「タスクを動かす」は⼀部やっていたがリトライなどを⼿動でやるのが ⼤変だった ‣ さらに「読み取り専⽤」環境では動かないソフトウェアがあった
リリースパイプラインの⾃動化 CodePipeline と CodeBuild を組み合わせたリリースパイプラインの構築 リリースの障壁をできる限り下げ、アジリティーを確保 コンテナイメージ のビルドと ECRへのプッシュ コンテナイメージ
ウイルススキャン Fargateへの ブルーグリーン デプロイ 要件5 のウイルススキャンを満たす
「6gram」システム構成図
「6gram」システム構成 ‣ 開発⾔語: Elixir ‣ ⼀部 DynamoDB Streams を経由した NodeJS
や解析環境で Python など ‣ インフラ: AWS ‣ データベース: DynamoDB ‣ コンピュート: Fargate ‣ 監視: CloudWatch、Rollbar ほぼすべてのコンポーネント (⼊出⾦処理、カード会社とのやりとり) は内製 ‣ なぜ内製しているのか、Elixir採⽤理由などは、Developer Boost 2019の「Elixirで 決済サービスを作ってみた」を! https://speakerdeck.com/enerick/elixir-dejue-ji-sabisuwotukututemita
PCI DSS 完全準拠の⼯夫まとめ 少⼈数で運⽤していくためにできる限り運⽤負荷を減らす努⼒をしている フルマネージドサービスを使うことで簡単に⾼い信頼性を確保できる アプリケーションの改善に注⼒できる
開発、運⽤体制
開発、運⽤体制 チーム構成 エンジニアリングマネージャ 1名 サーバーサイドエンジニア 5名 クライアントエンジニア 2名 SRE といった専⾨職ロールは存在せず、
全員で開発、運⽤を⾏っている
運⽤の⼯夫 (エラーの通知) Rollbar を⽤いて、対処する必要があるものに対してはSlack通知 具体的に responder が何をすればいいか記載しておくことで素早い対処が可能
運⽤の⼯夫 (インシデント対応計画) インシデント対応計画シミュレーションの実施 (年に1回程度) サイバー攻撃、セキュリティに関連するバグ、インフラストラクチャのバグなどの条 件を机上でシミュレーションする インシデントハンドリングを経験、改善点などの気づきが得られる
課題
課題 可観測性が低い 現状では細かいトレーシングやログなどを取りきれていない 分散トレースなどがほしい ⾃動化を突き詰めていく ⼈間の判断をできるかぎり減らす 開発環境をより本番環境に近づけていく 決済ネットワークとのつなぎこみを含め開発環境だけで再現できる領域を増やしてい きたい
None