エムスリーテックブログ

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

M3 USA 出張記 #8: SRE 2名によるシステムリニューアル支援(前編)

こんにちは。エンジニアリンググループでSREチームのリーダーをしている池田(@progrhyme)です。
今年の1/21〜2/8の3週間にかけて、私含む日本のSRE 2名がM3 USA ニューヨークオフィスに出張し、計画中・進行中のシステムリニューアルのサポートを行ってきましたので、こちらについてレポートします。
なお、もう1名によるレポートも追って掲載予定です。

ニューヨークオフィスが入っているビルと、近くのマディソンスクエア公園で撮った写真
ニューヨークオフィスが入っているビルと、近くのマディソンスクエア公園で撮った写真。公園ではリスが見られます。

背景

昨年に引き続き、エンジニアリンググループでは国内サービスの開発・運用に留まらず、グローバル事業の支援も行っていきます。
その辺りの経緯については、前回のM3 Tech Meetup*1におけるVPoE山崎の発表資料を見ていただくと掴めると思います。

M3 USAのインフラ事情

もう1つの背景として、M3 USAのシステム基盤の状況についても触れておきます。

M3 USAは医療メディアであるMDLinx*2を含む複数のサービスを運営しています。
それらのシステム基盤はオフィスから(比較的)近郊のデータセンターにあります。

しかし、いくつかの理由があってシステム基盤の刷新を検討していました。
その方法の1つとして、パブリッククラウドへの移行も選択肢に挙がっていました。

やったこと

まず、出張日程についてもう少しブレイクダウンしておきます。
冒頭で3週間の出張と述べましたが、下のように一人ひとりは2週間ずつの出張を行った形です。

  • 1/21〜2/1 ... 池田が出張
  • 1/28〜2/8 ... 寺岡(@yteraoka)が出張

さて、私の出張期間では、概ね以下のような業務を行っていました。

  • 1/21(月)…システム構成についてヒアリング、資料確認
  • 1/22(火)…フィラデルフィアオフィスに出張し、システム基盤刷新検討会議に参加
  • 1/23(水)〜25(金)…主にMDLinxのシステム移行のためのHTTPリバースプロキシサーバ設置の提案を行い、プロトタイプ実装
  • 1/28(月)〜31(木)…CDNによるリバースプロキシの実現とボット対策について技術調査、資料作成
  • 2/1(金)…帰国

リバースプロキシの実現について

1週目の前半では、AWS上でNginxのDockerイメージを使ってECS(Fargate)クラスタを作る形で実装していました。

それはそれですぐに実現できそうではあったのですが、今後継続的にNginxやDockerコンテナイメージのメンテナンスをしていかなければならなくなることに一抹の不安を感じました。
また、「今どきHTTPのリバースプロキシぐらい、SaaSやマネージドサービスで実現する方法があるのではないだろうか」という思いもありました。

そういうことを2〜3日考えていたところ、CDNでリバースプロキシを実現する方法に思い至りました。

少し調べただけで、例えばFastly*3を使えば強力なVCL(Varnish Configuration Language)*4を用いた設定によって、全ての要件は満たし得ることがわかりました。

そんなわけで、2週目は各種CDNの機能を調査し、フィージビリティーの確認やコスト等含めた比較を行っていました。

本稿では詳細については割愛しますが、またどこかで知見を共有する機会があるかもしれません。

ボット対策について

上のリバースプロキシの実現に際して、ボット対策も組み込むことができるとより良い、という事情がありました。
現行のシステムでは、ボット対策についてはDistil Networks*5の製品を使っていますが、上手くすればこちらを置き換えることも可能だと考えられました。

こちらについても、各種ベンダー製品の機能調査や、AWSのWAF Security Automations*6を試すなど行いました。

2週間という短い期間では、実際にシステムに統合して動かすところまでは漕ぎつけなかったのですが、今後も可能な限りこれらの導入サポートを行っていく考えです。

学んだこと

上記以外に、M3 USAのITインフラでは、私がこれまで知らなかったツールも色々と使われているようでした。

例えば、システム監視にはSolarWinds*7の製品が使われていました。
これはSaaSではなく、サーバにインストールして使うタイプのエージェント型の監視システムです。監視サーバはWindowsサーバである必要があるようですが、監視対象はWindowsに留まらず、ネットワーク機器の監視も可能です。
一覧性がよく、メトリクスも豊富で、使いやすそうなツールだと感じました。

また、ITアセットの管理には、Spiceworks*8の製品が使われていました。
こちらは、現在の規模のサーバ数に対しては機能が貧弱なためか、やや見通しが悪いように感じました。

NYでの生活や観光について

現地では、オフィスから2ブロックの距離にあるホテルに宿泊していました。

1週目の平日はあまりの寒さに、ホテルに引きこもってしまっていたのですが、週末は9/11ミュージアムやメトロポリタン美術館などを回り、翌週には寺岡と合流してNBA観戦やミュージカル観劇なども行うことができました。

英語については、基本的に半分ぐらい聞き取れないのですが、特に苦労したのはサラダランチなど、店員に数多く指示しなければいけないタイプの飲食店です。
そもそも書いてある内容がよくわからなかったり、発音がわからず伝わらなかったりと、かなりストレスを感じました。…ので、一度経験してからは、なるべくそういう店は避けるようになりました。

それでも、たまたま乗り合わせたエレベーターで気安く挨拶を交わしたり、初対面でもフレンドリーにやりとりができる文化は良いなあと思うものでした。

機会があれば、是非また行ってみたいものです。

オフィス近くのレストラン「Sarabeth」で食べたパンケーキ
オフィス近くのレストラン「Sarabeth」で食べたパンケーキ

ガーシュウィン劇場内の写真
ガーシュウィン劇場にて。『WICKED』を観ました。

まとめ

以上、SRE 2名のUS出張について、私の視点からお伝えしました。

もう1名によるレポートも近日中に公開されると思いますので、お楽しみに!

We're Hiring!!

M3 USAではCloud Infrastructure EngineerやSoftware Engineerを現地で直接採用しています。
もしUS(特に東海岸)にお住まいの方や、お知り合いがいらっしゃる方がいれば、ぜひご検討ください。

応募要項は下記にて公開されています。

また、日本のエムスリーでもSREを含む多様なエンジニアを募集しています。
ご興味のある方は下記採用サイトをご覧いただき、ページ下部のフォームよりお気軽にお問い合わせ下さい。

関連記事

脚注