エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

インフラの実務経験ゼロからSREにチャレンジした1年弱を振り返る

こんにちは、エムスリー エンジニアリンググループ / 製薬企業向けプラットフォームチームの後藤です。

この記事はエムスリーSREがお届けするブログリレーの11日目です。

このブログリレーでも何度か紹介していますが、エムスリーにはチーム横断のSREである「コアSRE」と各サービスチーム内のSREである「チームSRE」が存在します。
私は2020年4月にチームSREとして入社しましたが、それまで実務としてインフラをしっかりと触った経験はほぼゼロでした。

本記事では、このような私がチームSREとして1年間どのような業務に取り組んできたのか紹介したいと思います。
今はSREではないけれども、SREに興味がある、チャレンジしてみたいと思っている方々の参考になればと思います。

続きを読む

誰も知らないインフラコンポーネントをそっとコード化した話

「え、なにこれ。うち、 memcached なんて使ってたっけ……」

f:id:t-yamag:20210125115329p:plain


エムスリー SRE がお届けするブログリレーの 10 日目。エンジニアリンググループ / 電子カルテチームの山口 (@no_clock) です。

入社直後はサーバサイドメインのソフトウェアエンジニアでした。 SREの民主化とクラウド移行にある民主化の流れに「やってみたいです〜」と宣言し、 1 年半前から電子カルテチーム内の SRE も兼任しています。

今回は、「兼任」が功を奏して謎のインフラコンポーネントをコード化できた話です。

  • 知っている人が誰もいない状態
  • 「memcached サーバ……?」
  • Terraform で管理されていない、システム構成図にもない
  • 利用されているか、 Web アプリケーションのコードを確認する
  • 適切に IaC にするために、やはりコードを確認する
  • 振り返り: 同じ過ちを繰り返さないために
    • 原因: なぜ起きたか
    • 改善策: 繰り返さないために何ができるか
  • まとめ: 「チーム内 SRE」は面白い
  • We're hiring! チーム内 SRE 、どうでっか?
続きを読む

Trusted Advisorを利用してAWS利用の改善を進めていく話

こんにちは、エムスリー 株式会社 エンジニアリンググループ コアSREの笠井です。

この記事はエムスリーSREがお届けするブログリレーの9日目です。 エムスリーではここ数年、 SRE の役割をプロダクト開発チームに分散・移譲する取り組みを進めています(リレーの前記事にあった「チームSRE」の体制づくりです)。

その結果、プロダクトの開発に伴うインフラ構築・管理のほとんどが各チームに一任されるようになっています。

この記事では、エムスリー でAWS Trusted Advisorを利用し、各チームが行うAWSアカウント利用の改善を進めていったことについてお話ししようと思います。

続きを読む

チームSRE立ち上げ期にやってみて良かったこと

こんにちは、エムスリー エンジニアリンググループ / 製薬企業向けプラットフォームチームの鳥山 (@to_lz1)です。

この記事はエムスリーSREがお届けするブログリレーの8日目です。

このブログリレーで複数回言及されているように、エムスリーでは昨年から大々的に「チームSRE」という制度を導入しています。従来からのSREすなわち「コアSRE」が受け持っていた業務や権限を、各プロダクトチーム内のSREすなわち「チームSRE」に委譲している真っ最中です。

私の所属する製薬企業向けプラットフォームチーム(Unit1と呼ばれています)のチームSREの導入タイムラインは、以下のような感じです。

  • 2020年4月に最初のチームSREが入社
  • 2020年7月ごろに私を含む6名がチームSREとして追加
  • 複数サービスのクラウド移行を実施しつつ今に至る

したがって、少なくとも私のチームではこの「チームSRE」という取り組みは始まって1年足らず、まだまだ立ち上げ期と呼んで良いかと思います。

今回は、そんなフェーズの中でチームSREとしてやってみたこと、やって良かったと感じたことをいくつかご紹介します。

  • 1. Terraformリポジトリの一元化
    • 統一して起きた素敵なこと
    • CIの共通化
    • 「ちょっとしたソリューション」を試しやすい
  • 2. 移行作業の「Zoom中継」
    • 中継して起きた素敵なこと
  • まとめ: コロナ禍でも「コラボレーション」を諦めない
  • We are Hiring!

f:id:to_lz1:20210121002103j:plain
何かを立ち上げるには大規模な工事が必要になる...ときもあります

続きを読む

Chaos-Monkey ならぬ Cosmos-Monkey で AWS 費用に秩序をもたらした話

こんにちは、エムスリー ソフトウェアエンジニア 兼 QLife チーフアーキテクトの園田 (@ryoryoryohei) です。

この記事はエムスリー SRE がお届けするブログリレーの7日目です。

Cosmos-Monkey とは

エムスリーグループの QLife では toC のサービスを AWS で運用しています。それらは (当然ですが) 本番環境とは別に開発環境や QA 環境を持っています。

QLife に限らずほとんどの組織で同様だと思いますが、開発環境や QA 環境においては必ずしもサービスが 24 時間稼働である必要はないと思います。

そのため、QLife では 2019 年*1から稼働時間外の EC2 や RDS を停止する仕組みを Lambda 関数で実装し、導入していました。

今回はその仕組みを Golang から TypeScript に移植*2して、さらに Public に公開したのでその紹介をしたいと思います。

*1:QLife で AWS を利用しはじめたのは 2018 年末

*2:Node + TypeScript の並行処理の書きやすさから再実装しました

続きを読む

Terraformの不要なreplaceを阻止する

この記事はエムスリー SRE がお届けするブログリレーの6日目です。

エムスリー エンジニアリンググループ新卒2年目の四方田 (@k-yomo) です。 現在はBIR(ビジネスインテリジェンス&リサーチ)というチームでソフトウェアエンジニア兼チームSREとして、マイクロサービスの開発や、クラウド環境の整備などを行なっています。

最近はTerraform Providerを作り始めたり等しています。

github.com

エムスリーではInfrastructure as Codeが普及しており、所属しているチームのエンジニアも今では全員Terraformを書いてクラウドインフラリソースの変更を行っています。 今回は、Terraform Google ProviderのCloud Schedulerが毎回replaceされてしまう問題を解決した話をご紹介します。

f:id:k-yomo:20210120030130p:plain
Terraformロゴ

  • Cloud Schedulerがreplaceされてしまう問題
  • Terrafromの構成
  • Cloud Schedulerの更新をサポートする
  • まとめ
  • We're hiring
続きを読む

GCS bucketの利用量をSlackに通知する

この記事はエムスリー SRE がお届けするブログリレーの5日目です。

エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケと、筋トレで、このところはNBAがてんやわんやしているのを楽しんでいます (Brooklynの今後の状況が特に気になっています)。

今回は、GCSバケットの利用量を監視して、Slackに通知するジョブを作ったので、その背景と、利用した技術の構成について説明します。

f:id:hsasakawa:20210118162714j:plain
ベッドの下で得意げにこっちを見る犬氏 (かわいい)

  • GCSの利用量を通知する背景
  • 技術構成
  • まとめ
  • We are hiring!
続きを読む