MoTLab -GO Inc. Engineering Blog-MoTLab -GO Inc. Engineering Blog-

SRE を含む記事

SREグループ・ヒロチカです。今回、Bidirectional(双方向) gRPC streamingのアプリケーションの構成変更を行った際に、新しい構成でも問題ない性能が出るかどうか負荷試験を実施しました。ツール選定から実際に結果を観測するまでの一連の流れをまとめましたので、ご紹介できればと思います。

こんにちは、SREグループの水戸 (@y_310)です。GO Inc.ではマイクロサービスごとに固有のDBを持っているため数十台のAurora PostgreSQLクラスタを運用しています。ある日たまたまAWSコンソールを眺めていたところそのうちの1つのクラスタでこんなメッセージが表示されていることに気づきました。恥ずかしながらTransaction IDが何なのかも分かっていなかったのですが will cause length downtimeというメッセージから何かやばそうなことが起きていると気づき調査を開始しました。今回はTransaction IDが何なのか、このメッセージが何を意味しているのか、どうしてこんなことになったのか、といったお話を紹介したいと思います。

こんにちは、SREグループの水戸 (@y_310)です。GO Inc.では様々なマイクロサービスが動いていますがその中にいくつかGraphQLのサービスが存在します。SREグループでは全てのサービスに対して共通のメトリクスでリクエスト状況やエラーを監視しているのですが、GraphQLについてはステータスコードが基本的に200になってしまいHTTPレベルの監視ではエラーを観測できないためダッシュボードやアラートがあまり機能しない状態になっていました。今回はこの問題を解決しGraphQLのサービスでもエラー監視ができる方法の一例をご紹介します。

 SREグループ・ヒロチカです。弊社の持つk8sのクラスタの整理の一環で、gRPC streamingを使っているサービスについて、通信経路にIstio Ingress Gatewayを経由する形へと構成変更を行った際のポイントや知見をご紹介いたします。

こんにちは、SREグループのカンタンです!LGTM!オブザーバビリティ基盤第1話という記事ではログとメトリックスとトレース情報を扱えるGrafanaをベースとした新しいオブザーバビリティ基盤の話をしました。今回はログにフォーカスし、ログの収集と検索を行うGrafana Lokiについて詳細に説明したいと思います。

こんにちは、SREグループのカンタンです!GO株式会社にある様々なサービスは、SREが提供しているKubernetes基盤上で動いています。ログ検索基盤として長年BigQueryを利用していましたが、利用体験と効率を向上させるためにGrafanaをベースとした新しいオブザーバビリティ基盤に移行しました。ログに加えてメトリックスとトレース情報を扱えるようになり、可視化が楽になり、ログベースのアラートなど様々な機能が使えるようになりました。複数の記事に分けて説明させていただきますがこの記事ではSREが作ったオブザーバビリティ基盤の背景と全体像をご紹介できればと思います。

こんにちは、SREグループの水戸 (@y_310) です。GO株式会社ではスタッフがAWSアカウントにログインする際の認証方法としてAWS IAM Identity Center (旧AWS SSO)を使用しています。今回はAWS IAM Identity Centerを使ったAWSアカウントの権限管理の事例についてご紹介します。

  GO株式会社では、提供しているサービスが行っているメール配信機能の一部をクラウドメール配信サービスである「SendGrid」を利用して送付しています。 SendGridにはサブユーザという親アカウントに紐づく子アカウントのような形でアカウントを管理することができる機能があり、GOでもサービス・環境別にサブユーザを作成して運用しています。 この記事では弊社でのSendGridにおけるサブユーザの運用事例をご紹介できればと思います。

 GO株式会社では、主にクラウドサービス上にあるマネージドデータベースのデータ参照ツールとして、ダッシュボードツール「Redash」を自前構築し社内で運用しています。 以前、このSelf Hosted版 Redashの構築の記事の中で、ログイン方法としてSAML認証を採用していることをご紹介しましたが、この度、弊社の社名変更並びにメールアドレスのドメイン変更に伴い、Redashのデータベース内で管理しているSAML認証のログインで利用するメールアドレスについてもドメインの変更が必要となりました。 この記事では、Self Hosted版Redashのデータベースにある、ユーザ情報やメールアドレスの変更方法をご紹介できればと思います。

こんにちは、SREグループのカンタンです!GO株式会社では複雑なワークフローを実現するためにAirflowを利用しています。Kubernetesを活かして、マルチテナンシーによるセキュリティ課題を解決しシームレスな開発体験を提供するAirflow基盤を用意しました。今回はその基盤をご紹介します。

こんにちは、技術戦略部 SREグループのカンタンです!Kubernetesクラスタを運用するとマニフェストの適用方法が気になる方が多いかと思います。 kubectlを使ってYAMLファイルをそのまま適用したり、Kustomizeファイルを適用したり、Helmチャートを適用したり、Argo CD や Flux のようなCDツールを利用したりするなどやり方が色々あります。約一年前からSREグループで管理しているマニフェストの適用方法をArgo CDに切り替えました。適用スピードが加速し、クラスタの状況が把握しやすくなり、セキュリティレベルが向上し、運用の効率が圧倒的に上がりました。とても良くできているツールのため、Argo CDの魅力とSREグループの使い方を紹介させていただいてご参考になれば幸いです!

SREグループの古越です。SREグループではAurora PostgreSQLのインプレースアップグレードで少し痛い目を見た過去があり、Aurora PostgreSQL 10.x EOS(2023/01/31)を切っ掛けとしてインプレースに変わる安全なアップグレード方法を模索していました。 2022/9頃から検証を始め、論理レプリケーションを使ったBlue/Greenデプロイ方式のアップグレード手順を確立することが出来ました。背景と具体的な手順について紹介していきます。

技術戦略部 SREグループの古越です。前回の記事でパーティショニングを導入する段階で注意するポイントについて主に触れてきました。今回は導入するために具体的に行った事や追加で導入する拡張機能の解説などを踏まえて紹介していきます。

技術戦略部 SREグループの古越です。MoTで開発しているサービスの多くはAurora PostgreSQLを利用しています。一部サービスにはデータが蓄積し、肥大化していくテーブルの管理が課題になっています。今回は開発者からの要望で新規サービスの幾つかにパーティショニングを導入する事になりました。SREグループでパーティショニング導入までに検証したことを検討編と実践編という2つの記事で紹介できればと思います。検討編では事前検証として行った事のまとめとして、導入検討の段階で注意するべきポイントを紹介いたします。実践編では導入するために行った具体的な施策について紹介してきます。

こんにちは、SREグループの水戸 (@y_310)です。MoTのSREグループでは毎週1時間の定例ミーティングを実施しています。今回はこのミーティングの目的や内容についてご紹介します。

 MoTでは、クラウドインフラサービスとして主にAWSとGCPを利用しており、コストの管理・確認についてもそれぞれのクラウドインフラサービスが提供しているコストレポートやダッシュボードを利用して確認しています。 今回、AWSとGCPにまたがっているサービスや、両方のコストレポートを行き来せずに確認できる環境が欲しいという要望から、AWSとGCPのコストをGCPのBigQueryに集約させる仕組みを検討し準備しました。そちらの構成内容を紹介します。

こんにちは、SREグループの水戸 (@y_310)です。今回はSREグループが管理しているTerraformのディレクトリ構成について紹介します。MoTのSREグループでは数十のマイクロサービスを運用しており、その全てのサービスのTerraformテンプレートファイルを1つのリポジトリで管理しています。様々なサービスを構築していく中でディレクトリ構成の共通化や共有モジュールの切り出し方などの方針が固まってきたので設計の考え方について紹介したいと思います。

こんにちは、技術戦略部 SREグループのカンタンです!データベースのパスワードやAPIサーバの認証情報など秘密情報をきちんと管理しないと漏洩が発生しセキュリティインシデントに繋がる可能性が高いでしょう。数ヶ月前から、SREグループが扱っている秘密情報の管理方法をgit-cryptからsopsに切り替えました。運用が楽になり、セキュリティレベルが向上し、非常に満足しているためsops自体とSREグループの使い方を紹介させていただきたいと思います。

 MoTでは、社内で利用してる数々のサービスやリソースに安全にアクセスできるよう、AWSのマネージドなVPNサービスである、AWS Client VPN環境を準備し、社内に展開しています。 この記事では、実際に社内で利用しているAWS Client VPN環境で採用している、Azure ADでのSSO認証方法についてまとめています。

 Mobility Technologies(MoT)では、クラウドサービス上にあるマネージドデータベースや、BigQueryに流しているサービスログの参照ツールとして、ダッシュボードツール「Redash」を活用しています。  以前の記事でご紹介した、Self Hosted版 Redashの構築時は、最新版であるRedashバージョンv10の安定版が出た直後だったため、ひとつ前の安定版であるバージョンv8での構築でした。  なので、今回、社内でのSelf Hosted版 Redashの運用も慣れてきたタイミングに、最新版であるv10へとアップデートを行いました。  この記事では、バージョンアップの際のポイントや、注意点をご紹介できればと思います。

SREグループの古越です。MoTのサービスは多くがAWSのAurora MySQLまたはPostgreSQLを利用しリーダーエンドポイントを利用し参照クエリを発行しています。一部のサービスはGoogle Cloud上で構成されており、Cloud SQLの参照クエリの負荷分散が課題としてありました。EKSからCloud SQLに対する負荷分散アプローチを検討する機会があり検証したところ、HAProxyサイドカーとして横付けする方法が有用と分かりましたので本記事で紹介いたします。

MoTではマイクロサービスアーキテクチャを採用しており、標準技術スタックにGitHub Actionsを採用しています。本記事では数多くのリポジトリのCI/CDパイプラインを管理していくアプローチを紹介します。

こんにちは、技術戦略部 SREグループのカンタンです。本記事はKubernetesアップデートストーリーシリーズの第3話になっていて、ロードバランサーの構成を大幅に変更した話になります。是非第1話から読んでいただいたほうが背景と内容がわかりやすくなるかと思います!

こんにちは、技術戦略部 SREグループのカンタンです。本記事はKubernetesアップデートストーリーシリーズの第5話になっていて、Helmのメジャーバージョンをバージョン2からバージョン3にアップデートした話になります。是非第1話から読んでいただいたほうが背景と内容ががわかりやすくなるかと思います!

こんにちは、技術戦略部 SREグループのカンタンです。本記事はKubernetesアップデートストーリーシリーズの第2話になっていて、数年をかけてKubernetesのバージョンを1.10から1.21まで11回アップデートした話になります。是非第1話から読んでいただいたほうが背景と内容がわかりやすくなるかと思います!

こんにちは、技術戦略部 SREグループのカンタンです。Mobility Technologies(MoT)では様々なサービスを支えるためにKubernetesを幅広く利用しています。マルチクラウド構成でIstioサービスメッシュやHelmパッケージマネージャなどを使ってAmazon EKSとGKEクラスターを運用しています。本記事ではKubernetes、Istio、Helmのとても古いバージョンで動いていたクラスターの大幅アップデートストーリー、乗り越えた壁、ダウンタイムを発生させないためのコツなどを紹介させていただきます。内容がそれなりにあるため複数の記事に分けて説明させていただきます。

こんにちは、技術戦略部 SREグループのカンタンです。本記事はKubernetesアップデートストーリーシリーズの第4話になっていて、Istioをバージョン1.2から1.13までに数時間でアップデートした話になります。是非第1話から読んでいただいたほうが背景と内容ががわかりやすくなるかと思います!

こんちには、SREグループの水戸です。今回はMoTのSREグループが社内に提供している標準技術スタックを紹介したいと思います。

こんにちは、SREグループの水戸 (@y_310)です。2月に初めての子供が生まれ、3/1-5/8まで約2ヶ月の育児休暇を取得しました。まだまだ男性育休取得率が低いと言われている世の中なので、育休を取得するというのは具体的にどういうことなのか少しでも解像度が上がることを期待して自分の体験を共有したいと思います。

 この記事はMobility Technologies Advent Calendar 2021の9日目です。 MoTでは、社内で利用してる数々のサービスやリソースに安全にアクセスできるようにするため、AWSのマネージドなVPNサービスである、AWS Client VPN環境を準備し、社内に展開しています。 この記事では、実際に利用してるこのAWS Client VPN環境の設定・構築内容をご紹介できればと思います。

こんにちは、SREグループの水戸 (@y_310) です。前回の記事でも触れたとおりMoTにはたくさんのサービスが稼働しており、それに応じて様々なインフラリソースも作成されています。そのためリソースの見通しを良くし、インフラ構築時に迷わず命名できるようにするために色々な命名規則を定めています。命名規則はその組織が置かれている状況や直面している課題によって何を優先するかも異なり絶対的に正しい方法は無いと考えているため、この記事を読んだ方がご自分の状況と照らし合わせて取捨選択の判断がしやすいようにそれぞれの命名規則を決めた理由と合わせて紹介していきます。

 MoTでは、クラウドサービス上にあるマネージドデータベースや、BigQueryに流しているサービスログの参照ツールとして、ダッシュボードツール「Redash」を活用しています。 以前は、Web版のRedashを利用していましたが、2021年11月末にWeb版のサービス提供が終了することが告知されたため、弊社が管理しているAmazon EKS上インフラ基盤Kenos(ケノス)上に、新たにSelf Hosted版 Redashを構築し運用する事となりました。急遽の対応だったにも関わらず、短期間で準備し検証、構築までできたうえ、現状大きなトラブルなく安定稼働しています。 この記事では、現在MoTで利用しているSelf Hosted版Redashの構築内容についてご紹介いたします。

こんにちは、技術戦略部 SREグループのカンタンです。MoTが提供しているサービスを成長させるために様々なマイクロサービスを次から次と開発しています。マイクロサービスの増加に伴って全体のシステムが複雑になり、前回の記事で話た共通ログフォーマットも含めて様々な機能の共通化がとても大事になってきています。API開発のハードルを下げるため、サービス間の通信をgRPCに統一しようとしていて、本記事ではMoTで採用しているProtocol Buffers (PB)の一元管理方法を紹介させていただきます。

こんにちは、SREグループの水戸 (@y_310) です。MoTでは多種多様なマイクロサービスが稼働しています。マイクロサービスは一般的に、あるプロダクトを何らかの形で分割した内の一部の役割を担うものです。その分割されたマイクロサービスにおいてどこまでをそのサービスの責務とし、どの役割を含めてどの役割を含めないか、という他のサービスとの適切な境界を見つけることは非常に重要です。SREグループでは多くのマイクロサービスのアーキテクチャ設計に関わりながらマイクロサービスの分割点についての知見を得てきました。この記事では実例をベースにマイクロサービスの分割点の見つけ方について書きたいと思います。

技術戦略部 SREグループのカンタンです。弊社が提供しているタクシーアプリ「GO」、タクシーデリバリーアプリ「GO Dine」、法人向けサービス「GO BUSINESS」の実現に当たって多数のマイクロサービスを構築することになりました。マイクロサービスの増加に伴って、ログの出力フォーマット、収集方法、閲覧方法の共通化がより大事になってきました。本記事では弊社で考えたログフォーマットを紹介させていただきます。