Slide 1

Slide 1 text

クラウドと長く付き合う Merpay/Mercoin SRE @tjun Junichiro Takagi

Slide 2

Slide 2 text

今日の内容 SREとしてクラウド上のシステムを5年以上運用してきた経験をもとに、クラウドを 長く利用することで直面する課題と、どのように対応してきたかを話します クラウドと書きましたが、今回はAWS, GCP, Azure等のIaaSを想定しています

Slide 3

Slide 3 text

自己紹介 Junichiro Takagi @tjun Merpay/Mercoin SRE Tech Lead 2018.04 Joined Merpay SRE 2019-2023 Engineering Manager 2023.07- Tech Lead

Slide 4

Slide 4 text

(参考)Merpay/Mercoinの技術スタック マイクロサービスアーキテクチャ Google Cloud Platform - Kubernetes (GKE) - Cloud Spanner CDN/WAF - Fastly Observability - Datadog API Gateway Authority API Service X API Service Y Google Cloud Load Balancer Service A Service B Google Kubernetes Engine Service C Web Service Z Cloud Spanner Project A Cloud Spanner Cloud Pub/Sub Project B Project GKE Project C Cloud Spanner Cloud Storage

Slide 5

Slide 5 text

クラウドを使い始めるとき

Slide 6

Slide 6 text

クラウドを使い始めるときにありがちなこと とにかくスピード重視 ● システム動くことが優先、適切な管理はあとで整理 ● セキュリティもあとから改善すればいい ● 手動でクラウドコンソールからリソースを作成・編集 ● インフラエンジニアはいないので、他のエンジニアが片手間に設定 ● 権限の問題が出たら、強い権限を付けて解決

Slide 7

Slide 7 text

クラウドを使い始めるときの期待 柔軟性 ● クラウドは柔軟にリソースを増やしたり減らしたりできるので、必要な分だけリ ソースを使えてコスト削減になる 自動化 ● さまざまな自動化ができるので、リソースの管理や監視も簡単にできる セキュリティ強化 ● クラウドプロバイダーの提供するインフラによってセキュリティも強化されて、 普通に使っておけば安心

Slide 8

Slide 8 text

クラウドを使ったシステムを長く運用している間に... 組織的な変更 ● 組織の拡大・体制変更 ● クラウド管理の担当者の変更や退職 サービスの成長 ● 自社サービスの機能追加や利用者数の増加 ● 自社の新規サービスの開始や終了 エンジニアリングの成長 ● クラウドインフラ管理の改善 ● セキュリティ意識の高まり 外部環境の変化 ● クラウドのプロダクトや機能追加 などさまざまな変化が社内外の環境にあると思います

Slide 9

Slide 9 text

クラウドを長く利用すると出てくる課題

Slide 10

Slide 10 text

クラウドを長く利用すると出てくる課題 ● 管理者が分からないリソース ● 部署ごとにバラバラな管理 ● 運用・更新されず放置されている ● 雑な権限管理 ● 作ったけど使ってないリソース ● 余裕持って設定したままのリソース ● 増え続けるデータサイズとコスト

Slide 11

Slide 11 text

クラウドを長く利用すると出てくる問題 ● 管理者が分からないリソース ● 部署ごとにバラバラな管理 ● 運用・更新されず放置されている ● 雑な権限管理 ● 作ったけど使ってないリソース ● 余裕持って設定したままのリソース ● 増え続けるデータサイズとコスト 管理の問題 + セキュリティリスク コストの問題

Slide 12

Slide 12 text

管理における問題の例 Cloudの管理体制ができていない ● いまはTerraformで管理しているが、以前手動で作っていたものも残っている ● チームごとにバラバラに管理している ● 利用者が退職して、利用目的が分からないリソースがある 適切な運用が行われていない ● とりあえず全員に強い権限をつけて対応する ● リソースの利用状況がモニタリングされていない

Slide 13

Slide 13 text

コストの問題の例 増え続けるデータ ● とりあえず保存していたログやデータが肥大化して、コストがかかっている ● 過去のログを消してよいのか分からない クラウドリソースの無駄遣い ● 検証用に作ったけど、その後忘れられて残っている ● 今は使っていないと思うが、怖くて消せないもの ● 多めにCPUやMemoryを割り当てて様子を見よう、と言ってそのままになって るもの

Slide 14

Slide 14 text

クラウドを適切に管理・運用するのは難しい ● セキュリティ的なベストプラクティスの適用 ● アカウントに対する適切な権限管理 ● Terraform等のIaC のレポジトリ設計とCI/CDの設定 ● コストのモニタリングとリソースの最適化 ● クラウド側の機能追加や変更への追従 これらを組織全体で適切にやるのは難しい

Slide 15

Slide 15 text

クラウドと長く付き合うために

Slide 16

Slide 16 text

組織全体でクラウドを共通管理 1. 組織を横断してクラウドを管理するオーナーとなるチームを決める 2. 共通の仕組みを作ってさまざまな取り組みが全体に行き渡るようにする 3. 組織が拡大していくにつれて部分的に権限を渡す Platform team teamA teamB service1 service2

Slide 17

Slide 17 text

クラウドを管理する仕組み 1. 手動でのリソース作成を原則禁止して、Terraformなどコードとして管理する 仕組みを作る 2. 既存のリソースも取り込んで、共通の仕組みに載せる 3. 組織として最低限守りたいラインがデフォルトとして提供できる状態を作る Cloud Infra as Code CI/CD teamA infra teamB teamA teamB infra

Slide 18

Slide 18 text

FinOps コストの可視化 ● チームやリソースのコストが見える状態を作る ● 想定外の増加に気付けるようにする ● コストが増えた原因が分かるようにする コストの最適化 ● 無駄が多いところ、金額が大きいところを中心 にコストの最適化を行う ● 不要なリソースの削除、古いデータのアーカイブ など ↑ https://cloud.google.com/billing/docs/how-to/visualize-data

Slide 19

Slide 19 text

まとめ クラウドを長く利用していると、さまざまな経緯によって 適切に管理できない部分が生まれてくる クラウドを組織横断して見れるチームを作り、基準や仕組みを作る ことで、クラウドのリソースやコストが可視化されて説明可能な 状態を作ることが、長く付き合うためには重要

Slide 20

Slide 20 text

宣伝 ● 2023/12/11-12 CloudNative Days Tokyo2023 「CloudNative環境におけるトラブルシューティング」というタイトルで登壇します ● 2023/12/13 FinOps Meetup at Mercari https://www.finops.org/event/japan-finops-meetup/