SRE(Site Reliability Engineering / Site Reliability Engineer)とは、サイトやサービスの信頼性を高めるためにさまざまなツールを活用し、システムの管理業務や運用業務を自動化する仕組み、あるいは組織のことです。業務の属人化を排除し安定した品質を維持することで、信頼の維持・醸成につながります。
今回は、スマートバンクでSREを務めるuehiraさんとmasaさんに、SREチームのミッションや具体的な業務内容、エンジニアとのコミュニケーションについて話を聞きました。
プロフィール
上平 裕弥|@uehira SRE
レンタルサーバー事業会社、Fablic、楽天を経て、2019年6月に創業直後のスマートバンクにジョイン。現在はSREとしてインフラ改善や運用・保守、情シス業務を担当する。
中野 雅之|@maaaato SRE
2016年にインフラエンジニアとしてKyashに入社。その後、ヌーラボのアプリチームでSRE(Embedded SRE)を経験。2022年11月にスマートバンクに入社し、SREとしてインフラ改善や運用・保守、情シス業務に加え、EM(Engineering Manager)を務める。
安心と信頼を支えるSRE
── まずは、uehiraさんとmasaさんの自己紹介をお願いします。
上平 裕弥(@uehira):SREの上平裕弥です。レンタルサーバー事業を運営する会社でオンプレサーバーを一から学び、転職した会社でAWSに出会いました。「インフラの革命だ」と感動して以来AWSにはまり、前職のFablicでインフラに関わるようになりました。スマートバンクでもゼロからインフラ基盤の構築を経験し、PCI DSS準拠(後述)を実現して今に至ります。
「これまでスタートアップで積み重ねてきたインフラ知識を形にしたい」「セキュリティの導入・実践を経験できるフィンテックに挑戦したい」という思いでスマートバンクにジョインし、現在はSRE業務に加え、情シス業務も担当しています。
中野 雅之(@maaaato):SREの中野雅之です。普段は「中野さん」や「masaさん」と呼ばれています。スタートアップを数社経験した後、ソーシャルゲームの会社に入社しました。サーバーサイドエンジニアをやりつつ、インフラに興味を持ってAWSを触るようになり、以降SREの道を進んできました。
スマートバンクに入社する前もフィンテック業界にいたことがあるのですが、もう一度フィンテックで、最新の方法でPCI DSS要件をクリアする挑戦、エンジニアを巻き込み、チームでSREに取り組む挑戦をしたいと思い、スマートバンクにジョインしました。現在はSRE業務のほか、EMとしてマネジメントにもチャレンジしています。
▼ masaさんが入社するきっかけとなったuehiraさんの記事。PCI DSS 3.2.1要件をクリアするためのインフラ構築プロセスを紹介しています。
FinTechスタートアップ企業のインフラができるまで(構築編) blog.smartbank.co.jp
FinTechスタートアップ企業のインフラができるまで(構築編2部) blog.smartbank.co.jp
── 現在SREチームは2名体制でインフラ構築やオペレーションを担当されていますが、どんなミッションを持ち、どんな業務を行っているチームなのでしょうか?
masa: SREは「スケーラブルなインフラをつくり、安心して使っていただけるサービスを提供する」というミッションのもと、インフラの運用・保守に加え、PCI DSSの定期的な更新作業を行っているチームです。
運用・保守業務としては、ミドルウェアのアップデートやパフォーマンスチェックを行っています。
パフォーマンスチェックには、サーバーサイドとインフラの2面があり、それぞれ2週間に1回のペースでパフォーマンスチェックを実施します。サーバーサイドは、APM(アプリケーション・パフォーマンス・モニタリング)にNew Relicを使い、レスポンスタイムの劣化やデータベースの負荷状況を確認します。インフラのパフォーマンスチェックにはAmazon CloudWatchを使い、リクエスト数やリソース状況の確認を行っています。
── SRE業務に加え、情シス(情報システム)周りの業務も担当されているんですね。
masa: はい。情シス業務としては、PCの用意やセットアップ、オフィスのネットワーク回りの改善、社内で利用している各種ツールのガイドライン作成などを通して、みなさんが気持ちよく働くための環境づくりの部分を担当しています。スタートアップだとSREが情シスを兼務することは少なくないですが、フィンテックということもあり守備範囲は相当広いと思います。
スマートバンクはクレジットカードを発行していることもあり、PCI DSSの要件で、カード情報や個人情報を安全に保管するためのセキュリティルームの設置が義務付けられているんです。なので、セキュリティルームの設置もuehiraさんを中心に進めていただきました。
── ありがとうございます。SREチームの目標設定はどのようにしていますか?
masa: スマートバンクでは、目標設定にOKRを導入しています。2023年のOKRを例にすると、SREチームはコスト削減やナレッジ共有にフォーカスしてOKRを立てていました。円安の影響でさまざまなツールの利用金額が高騰しているので、インスタンスをエネルギー効率が高く高性能なARM64に入れ替えて費用を抑えるなどしてコスト削減を進めてきました。ナレッジ共有については、アラートが上がってきたときの対応が明確になっていないという課題があったので、SREだけではなく、ほかのサーバーサイドエンジニアもアラートに対応できるようにするためのアラームブックをつくりました。
── アラームブックも作成したとのことですが、アラートや障害が発生したときのオペレーションは現在どうなっているのでしょうか?
masa: オオカミ少年アラート(重要度・優先度の低いアラート)に都度対応していると、本当に重要なアラートが来た時に反応が遅くなってしまいます。なので、まずはアラートの内容を精査し、お客様に影響があるアラートや早めに調べたほうがいいアラートが通知としてちゃんと届くようにしました。
さらに、アラートへの対応としては、現場のエンジニアと協力してドキュメントを見れば復旧手順がわかるように情報を整備しました。
── 直近は、バックエンドエンジニアの生産性を上げる取り組みもしていますよね。ここに関してはどのような目標を立てていますか?
masa: そもそもにはなりますが、サービスが安定稼働している状況をつくるというのも非常に大事だという話をuehiraさんとしていて、今年は「開発効率の向上」もOKRに入れました。
例えば、サーバーサイドとSREの間で「デプロイをもう少し早くしたい」という共通の課題があったのですが、デプロイの高速化が実現すると障害対応にも効いてくるので、優先度を上げて取り組んでいます。運用面だと、 EOL(ハードウェアやソフトウェアにおいて、バージョンアップやサポートが終了すること)を迎えるミドルウェアもあればバージョンが上がっていくミドルウェアもあるので、それぞれをしっかり追従し、確実にアップデートしていくことも目標においています。
── バックエンドエンジニアのみなさんとは、普段どのようにコミュニケーションを取っているのでしょうか?
masa: 毎週、開発のメンバーが集まるエンジニアリング本部定例というミーティングがあります。そこでSREから情報共有をしたり、バックエンドからSRE、SREからバックエンドへの要望を伝えあっています。さきほどお話ししたパフォーマンスチェックなど、インフラ面で気になるところはSlackで気軽に連絡するなどのコミュニケーションももちろんあります。
最近、コミュニケーションをきっかけに良いことがありました。 uehiraさんが、いつデプロイしたかをモニタリングできるように、New Relicのモニタリング画面にデプロイしたタイミングでマーカーを打つ仕組みを導入してくれたんです。そのおかげで、「デプロイした後に遅くなっている」などがパフォーマンスチェックでわかるようになり、そこからエンジニア同士の会話が生まれるようになりました。
このように、定例ミーティングでのコミュニケーション以外でも、バックエンドエンジニアとSREがコラボレーションできるような仕組みもできています。
── SREチーム内ではどのようにコミュニケーションを取っているのでしょうか?
masa: 朝会、SRE定例、スプリントレビューと、大きく3つの会議体があります。朝会は、火曜と木曜の毎週2回実施しており、その日にやることの確認と、上がってきたアラートのチェック、情シスの作業確認をしています。SRE定例は、ディスカッションしたいテーマについて事前にアジェンダを立て、議論する場です。毎週金曜にやっているスプリントレビューでは、今週やったこと・来週やることを持ち寄り、簡単な振り返りをしています。
お財布を預かる責任とやりがい
── フィンテックのインフラ構築や運用は深いドメイン知識が求められ、難しそうと思われることもあると思います。スマートバンクのSREとして感じている仕事の難しさややりがいを教えてください。
uehira: 4〜5年、フィンテックのインフラに関わっていますが、絶対に落とせないサービスをよりセキュアな状態で維持し続けることが、難しくもありやりがいがあるところだと感じます。
クレジットカード番号のような情報を安全な状態で保管したり、PCI DSSに準拠したりして安全な状態を維持し続けるというのはやはり大きなテーマです。
私たちはユーザーさんのお財布をお預かりしているサービスだと自負しています。健全な状態でなければ、お金が使えなかったり、最悪セキュリティホールを突かれてお金がなくなったりすることもあったりするサービスだと考えているので、そうなることを絶対に防ぐという強い責任感を持って実行に移せるところが、難しいけれどやりがいを感じる部分ですね。
── そういったセキュリティの一環として、直近ではPCI DSS v4.0の対応がありました。PCI DSSについて、どのようなものなのか教えてください。
uehira: PCI DSSというのは、クレジットカード情報を安全に取り扱うために策定された、クレジット業界における国際セキュリティ基準です。国際クレジットカードブランドであるVISA、American Express、JCB、MasterCard、Discoverの5社が共同で策定しました。
PCI DSSに準拠すると、最新のセキュリティ基準に則ってクレジットカード情報を取り扱っていることが立証されるので、不正から自社のサービスを守り、悪用・情報盗用等のリスクを低減できます。毎年監査もあるので、PCI DSSに準拠しているという認定をもらえないと、そもそもフィンテックのサービス自体ができなくなってしまいます。なので、PCI DSSはスマートバンクがフィンテック事業を運営するために必要不可欠なものです。
── PCI DSSに準拠するために、インフラ面ではどのようなことに気を付けていますか?
uehira: 我々はカード発行会社にあたるので、クレジットカード番号などの個人情報をデータベースに保存しています。PCI DSSに準拠するため、それらの情報をすべて暗号化し、鍵の扱い者も決めました。
我々のシステムをざっくりお話すると、AWSアカウントが2つあります。カード情報など、PCI DSSに準拠する情報を処理するアカウントと、ユーザー情報や残高情報など、PCI DSSに準拠しない情報を処理するアカウントの2つです。ただ、カード情報とユーザー情報は切っても切れないものなので、その間にBFF(backend for frontend)というサーバーを立て、双方の情報を適切に処理できるようなシステムを構築しています。
SREのプレゼンス向上と持続的な運用を目指す
── ありがとうございます。最後に、今後SREチームでやっていきたいことを教えてください。
masa: サービスも大きくなり開発メンバーも増えてきて、これから新しくチームをつくっていくフェーズです。現状、SREはuehiraさんと僕の2人でいろんなことをやっている状況なので、手付かずになってしまっているものもあり、それが徐々にボディーブローのように効いてきている実感もあります。なので、まずは一緒にSREを担ってくれる人を増やしたいですね。
そのためにはSREに興味を持ってくれる人を増やす必要があるので、社内外に対してSREのプレゼンスを上げていく動きをやっていきたいです。あまり関わらない方からすると、SREが何をしているのかがわかりづらいと思います。ただ、さきほどuehiraさんが説明してくれたとおり、PCI DSSがないと事業運営自体ができなくなってしまうくらい重要なものなので、そこに準拠できるように社員みんなで取り組んでいこうというメッセージは僕たちから積極的に発信していきたいですね。
uehira: 僕も、masaさんが言うように社内全体を巻き込んでいきたいというところは同じ意見です。 より現場寄りの話でいうと、基本的な運用の強化も引き続きやっていきたいところです。
今まで、スタートアップで駆け足でゼロからものをつくってきました。それなりに大きなサービスに育ち、今後も新しい機能を追加していく中で、運用は切っても切れないものです。ミドルウェアのバージョンアップや、EC2(AWSが提供する仮想サーバサービス)などのメンテナンスは必ずやらなければいけません。PCI DSS v4.0を取ったとしてもそれらに脆弱性があれば意味がないので、基本的な運用の強化を通してSREを持続させていく取り組みもしていきたいです。
▼ uehiraさんの最新記事もぜひご覧ください! 悪戦苦闘! PCI DSS準拠の社内システムをCognitoで認証する blog.smartbank.co.jp
あとがき
お客様に信頼されるサービスを提供し続けるために欠かせないSRE。フィンテックのSREとして強い責任感を持ち、運用強化に真摯に取り組むお二人のお話しが聞けました。
ぜひ、スマートバンクでuehiraさん、masaさんと一緒に働いてみませんか? ご興味のある方は、ぜひお気軽にご連絡ください。
▼カジュアル面談 smartbank.co.jp
▼SRE smartbank.co.jp