エムスリーテックブログ

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

パイプラインツールgokartのキャッシュ競合を解消した話

はじめに

 エムスリーエンジニアリンググループ AIチームの池嶋です。はじめてのテックブログ投稿です。

 AIチームでは機械学習プロジェクトのデータパイプライン構築にgokartというツールを使用しています。今回はこのgokartで発生していたキャッシュ競合を解消した話について紹介します。

gokart

gokartとは

 gokartというのはAIチームが中心に開発しているデータパイプライン構築のためのツールで、Spotify社の開発するパイプラインツールluigiのwrapperです。S3やGCSといったクラウドストレージとのデータ入出力をサポートしたり、中間ファイルをキャッシュとして保存することで実験を再現をしやすくしたりします。当ブログでは過去にも機械学習プロジェクト向けPipelineライブラリgokartを用いた開発と運用 - エムスリーテックブログ などで紹介されています。

 Github上でOSSとして公開されており、AIチームのメンバーを中心に開発が進められています。

github.com

gokartのパイプライン構成

f:id:mski_iksm:20210108225003p:plain
gokartのパイプライン構成例

続きを読む

コアSREチームからサービスチーム側に落下傘してみてた話

皆さんこんにちは、エンジニアリンググループの高橋(@tshohe1)です。
この記事はエムスリーSREがお届けするブログリレーの15日目です。

他の記事でも何度か説明されていますが、エムスリーでは2019年頃からチーム横断的なシステムを管理する「コアSRE」とは別に、サービスチーム内にて各サービスのインフラを重点的に見る「チームSRE」というポジションを新たに設けています(チームSRE化の流れの詳細については下記ブログリレー最初の記事*1を御覧ください)。

私は入社時点ではコアSRE(当時はまだインフラチーム*2)として働いていましたが、2019年頃からサービスチーム側SREと兼務したりコアSREに戻ったりまたチーム側SREに移動したりとふらふらしている謎の存在になっていました。
現時点ではコア/チーム側両方に所属していた者はいないはずなので、本記事ではコアSRE側の視点/チームSRE側の視点でどのような差があったのか、これまでの経験から得たものを簡単にまとめてみたいと思います。

f:id:tshohe:20210201130411p:plain
本文とあまり関係はないですが"木星の衛星エウロパの海に生息するといわれる魚のような生物"の画像です(余談ですがチームSRE推進は最初SREサテライト計画と言われていました)

続きを読む

担当マイクロサービスのSLI/SLOを見直そうと思ったんだ

エムスリーエンジニアリンググループの関根(@sekikatsu36)です。 この記事はエムスリーSREがお届けするブログリレーの14日目です。

今回、私のチームが担当しているサービスのSLI/SLOを見直すこととなり、あらためて「マイクロサービスのSLI/SLOとは」を自分なりに考える機会ができたため、その話を紹介したいと思います。 まだ実行中で結論は出ておらず、内部でも議論の余地があるものですが、何かご参考になる点があれば幸いです。

続きを読む

AWS上の旧インフラをVPC移行した話

こんにちは、エンジニアリンググループ AI・機械学習チームの安田です。最近rustでTCP/IPスタックを作って遊んでます。

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

今回は先日実施した、AWS上でVPCの異なる環境へインフラ移行をした話をします。

その中で、

  • ほとんど同じ名前のリソースの移行
  • MLのモデル等大きなデータを移行
  • AWSアカウントの違うシステムでの短い停止時間でのシステム移行

の点に注力したのでご紹介します。

押さえるべきポイント

本記事でお伝えしたい、移行時に引っ掛かりそうなポイントです。

  • ほとんどのリソースはAWSアカウントユニークだが、S3はAWS全体でユニーク
  • NSレコードのTTLは長い
  • Route53のALBのAレコードは、サジェストされない値を直接書き込める
  • ACMはRoute53での証明書発行時、CNAMEレコードを参照するがAレコードは不要
  • 押さえるべきポイント
  • 背景
  • 実施概要
    • 現状説明
    • 今回の変更
  • 移行のポイント1: ほとんど同じ名前のリソースの移行
  • 移行のポイント2: MLのモデル等大きなデータを移行
    • S3のMLモデル移行
    • RDSのデータ移行
  • 移行のポイント3: AWSアカウントの違うシステムでの短い停止時間でのシステム移行
    • AWSアカウント間でRoute53を移行しないといけない
    • ALB・ACMがRoute53と依存関係にある
  • まとめ
  • We are hiring!
続きを読む

データベース移行でやらかした話

はじめに

こんにちは。エムスリー エンジニアリンググループの高島(id:rst76)です。

この記事はエムスリー SRE がお届けするブログリレーの 12 日目です。 ブログリレーに何を書こうかと悩んでいたのですが、つい先日、データベースを移行する際に障害を起こしてしまったので、その話をしたいと思います。 人の失敗談は面白い学ぶところが多いので…

続きを読む

インフラの実務経験ゼロから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 、どうでっか?
続きを読む