エムスリーテックブログ

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

技術書典 応援祭参加のお知らせ

エンジニアリンググループの西名(@mikesorae)です。

新型コロナウイルスの影響により技術書典8自体は残念ながら中止となってしまいましたが、運営の方々の努力により3/7(土)〜4/6(月)の間、オンラインイベント「技術書典 応援祭」が開催されることとなりました。

時間もなくイベント中止のショックもある中でこのような機会を設けてくださった運営の方々に、この場を借りて改めて感謝の意を表します。

blog.techbookfest.org

さて、エムスリーエンジニアリンググループも本イベントにて、新刊「エムスリーテックブック#2」を頒布いたします。

エムスリーテックブック#2について

f:id:mikesorae:20200305121739p:plain
エムスリーテックブック#2

  • タイトル: エムスリーテックブック#2
  • ページ数: 約100ページ
  • 価格(税込): 1,000円
  • 頒布形態: PDFのみ
  • 執筆者: 河合、堀田、西名、平間、矢崎
  • 監修: 山崎
  • イラスト: 迫田
第一章 機械学習ワークフローライブラリ選定と運用
第二章 BoltとBlock Kitで作るSlack Bot
第三章 Hyperleadger Indyで実現する自己主権型アイデンティティ
第四章 M5StickC を使って社内hack(電子工作)
第五章 大規模 AWS ⇔ オンプレ相互接続ネットワーク設計・構築ガイド

今回も幅広く読み応えのある内容となっていますので、ぜひお買い求めください。 techbookfest.org

過去頒布物について

また、PDFのみですが「エムスリーテックブック#1」も再販いたします。 こちらもよろしくお願いいたします。 www.m3tech.blog

おわりに

全国的に自粛ムードが高まり大変なタイミングではありますが、このようなときこそ新しい文化が生まれるチャンスでもあると思います。 ぜひみんなで技術書典 応援祭を盛り上げていきましょう。

We are hiring!

エムスリーでは日々新たな課題の発見があり、それらを様々な技術や視点で解決できるエンジニアを募集しています。 活躍できるポジションも様々ですので、ご自身の強みを活かしてみたい方はぜひお気軽にお問い合わせください。

エンジニアリンググループ 募集一覧

jobs.m3.com

関連記事

www.m3tech.blog

推薦アイテムセットの多様性を考慮したBPR論文を実装・実験した

エンジニアリンググループ AIチームの金山 (@tkanayama_)です。2019年新卒でエムスリーに入社してから早くも1年経ってしまいました。

今回は、 "Bayesian Personalized Ranking for Novelty Enhancement" [Wasilewski and Hurley, UMAP'19] という論文を紹介します。Bayesian Personalized Ranking (BPR) のサンプリング方法を工夫することで、推薦するitemが多様になるようにした論文です。

f:id:tepppei:20200302205514j:plain:w400
ワラビーです。

続きを読む

git submodule はトモダチ!怖くないよ! (チートシート付き)

f:id:doloopwhile:20200226161647p:plain
この画像は本文とは関係ありません。

こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小本です。

みなさん、git submodule コマンドは好きですか?git submodule は特定の状況下では便利なコマンドです。

f:id:doloopwhile:20200219195042p:plain
社内アンケートでも25%が怖いという結果に

しかし、なぜか世間にはgit submodule が怖いという人が相当数いるようです。推測ですが、git submodule は動作モデルや使用手順が誤解されがちなところがあり、それで「怖い」と思われているのないでしょうか。git 本体でも昔そんなことがありましたよね。

この記事では git submodule の誤解を解き、適切な使い方を解説します。また、記事の最後にチートシートをつけます。

git submoduleはトモダチ!怖くないよ!

続きを読む

Clean Architectureなにもわからないけど実例を晒して人類に貢献したい

こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。

これまでは、中村の記事で宣言した 「医師版Stack Overflow」(12/16に正式名称Docpediaとしてリリースされました) の技術的チャレンジの 記事を続けて書いていたのですが、今回はここで宣言しなかったClean Architectureについて書きます。

f:id:fukubaya:20200205205515j:plain
浪江駅(なみええき)は、福島県双葉郡浪江町にある、東日本旅客鉄道(JR東日本)常磐線の駅。本文には特に関係ありません。

続きを読む

AWS・オンプレと GCP を VPN で相互接続する際の勘所

こんにちは。エムスリー CTO の矢崎 @Saiya です。

弊社ではクラウド環境の利用や移行を推奨しており、AWS, GCP のマルチクラウドやオンプレミス環境との相互通信を安全に行うために今回 AWS と GCP を VPN で相互接続しました。

しかし、AWS と GCP を VPN で接続する方法は調べると見つけられるのですが、例えば以下の点についてまとめて説明している資料がないため苦労しました:

  • GCP の HA VPNでのセットアップ方法
    • Classic VPN と HA VPN *1 はかなり仕様が異なるのですが、Classic 前提の情報が多く惑わされやすいです
  • 複数の VPC での推奨構成とその実現方法
  • GCP と AWS の VPN の IPSec のパラメーター調整の仕方

そこで、本稿では AWS と GCP にある複数の VPC を VPN で相互に接続する構成の全体像とハマりどころ・注意点を筆者の知る範囲でまとめました。

なお、本稿では AWS Transit Gateway *2 やオンプレミスとの専用線・VPNはすでに構築済みとし、それらの設計・構築については触れません。 それらの使い方や設計の勘所・難所・ハマり所については 技術書典8 2日目の *3 スペース お-46 にて頒布予定の エムスリーテックブック2 にて詳述いたしますので、ご興味ある方は是非そちらでお求めいただければと存じます。

f:id:Saiya:20200127192910p:plain
エムスリーテックブック2 (技術書典8 の 2 日目)

今回構築するネットワーク・トポロジー

f:id:Saiya:20200127200846p:plain

上図のように GCP <-> AWS <-> オンプレミス を接続することで、3 者間での相互通信を可能とします。 例えば GCP 内の任意の VPC (Network) から AWS の任意の VPC やオンプレミスと通信することが可能になります。

なお図では HA VPN を使って 4 本の VPN を設置していますが、可用性・SLA を犠牲にコストの節約も可能です (後述)。

以下、GCP <-> AWS 間の VPN 敷設と DNS 転送について概略と難所を説明します。

*1:HA という名前ですが、後述のように冗長性を犠牲に 1 VPN 接続分だけのコストで運用することも可能です

*2:AWSで多数のVPCを扱う際には必須と言っても良いサービスです。

*3:今回から2日に分けて開催になりました

続きを読む

VPoEとしてこの2年間を振り返って

こんにちは。エムスリーエンジニアリンググループ執行役員*1兼VPoE兼プロダクトマネージャーの山崎です。

本ブログはエムスリー Advent Calendar 2019の25日目の記事です。

エムスリー Advent Calendar 2019の締めとして何を書こうか色々と迷ったのですが、今回はVPoEらしく、「VPoEとしてこの2年間を振り返って」と第して2019年を締めくくりたいと思います*2

qiita.com

はじめに

2017年12月にエムスリーにおいて始めてVPoEが設置され、私が初代VPoEに就任しました。 それからの2年間は本当にあっという間に過ぎ、2年も経っているとは信じられないというのが正直なところです。 一方で、その間、多数のチャレンジをしてきました。

この記事では、社内外の参考になるかもしれないと思い、それらのチャレンジを抜粋して紹介したいと思います。 ちなみに、評価制度と報酬に関するチャレンジはセンシティブなので割愛します*3

f:id:yamazaki-m3:20191224225724j:plain
年末っぽくエムスリーデジカルの忘年会の写真です。

*1:2019/11より業務執行役員というポジションから執行役員というポジションにマイナーチェンジしました!

*2:今年の業務は12/27まで続き…なんなら運用は12/31の24:00まで続きますがそこはよしなに。

*3:CTO、VPoEの方で聞きたい方がいらっしゃればCTOミートアップなどで個別にお声がけください。

続きを読む