タグ

ブックマーク / www.m3tech.blog (22)

  • 市区町村マスタを手に入れろ、そして更新し続けろ - エムスリーテックブログ

    全国の市区町村の名前とコードをデータベーステーブル化したもの、すなわち市区町村マスタはITシステムを作っていれば何かしらの場面で必要になるものです。 ではその市区町村マスタを作るための元データはどこから手に入れたらいいものか。 そして「作る」というのもありますが、市区町村は再編されるものですから最新の変更にどう追従するか、しかもそれを自動化できるかというのも大いに気になるところですね。 エムスリーエンジニアリンググループ三浦(@yuba@reax.work) [記事一覧 ]です。 Unit1(製薬プロモーション)およびUnit9(治験臨床研究支援)のエンジニアです。 今回は私も皆様とまったく同じように市区町村マスタのデータ源に悩んでいろいろ調べましたので、それで得た知見を共有させていただこうと思います。今回は代表的な3つのデータソースをご紹介し比較していきます。 ほしいのはこんな感じのデ

    市区町村マスタを手に入れろ、そして更新し続けろ - エムスリーテックブログ
  • DMARCの対応って進んでますか? - エムスリーテックブログ

    こんにちは。エムスリーでSREやセキュリティに従事している山です。 以前に、「Gmailのメール認証規制強化への対応って終わってますか?」という記事を書かせていただいておりますが、そこでちょい出しだけしたDMARCについて書かせていただきたいと思います。 www.m3tech.blog Gmailへの対応を実施するだけならば、「とりあえずよくわかんないけど入れておけばOK」なのですが、そもそもDMARCは何のために存在していてどのように活用にするのかというところに触れていきたいと思います。 DMARCとは SPF/DKIM DMARC登場 DMARCで実施できるポリシー三種 ポリシーの強化 強化できるか DMARCレポート RUA/RUFの二種のレポート DMARCレポートの確認ツール どう判断するか メール転送 今後 まとめ We are hiring! DMARCとは DMARCの日

    DMARCの対応って進んでますか? - エムスリーテックブログ
  • メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023の20日目の記事です。 エムスリーエンジニアリングG コンシューマチームの松原(@ma2ge)です。 今回はコンシューマチームで利用していたSaaSのメール配信システムを、新規に開発した社内システムに移行した経緯や設計時に意識したことなどについて紹介します。 最近使っているキーボードの様子 背景 今回移行する契機となったのはメールの配信数増加に伴うSaaSの利用料金増です。 特に定期的に送るメルマガ配信については、配信量も多く利用コストを押し上げる要因となっていました。 そのためメルマガ配信で大量に使用する部分についてのシステム移行検討が始まりました。 移行検討 SaaSから移行後のシステムについて試算すると、システムの開発や利用料といったコスト面では社内で構築したシステムの方が大幅にコストが下がることがわかりました。 しかしなが

    メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ
    ya--mada
    ya--mada 2023/12/21
    メールの話はしてない。開封・クリック計測の話。
  • 9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ

    私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar

    9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ
    ya--mada
    ya--mada 2023/12/02
    バッドノウハウ集というやつか。覚えられないからsqliteで毎回悩んでいる。
  • Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ

    こんにちは。エムスリー・QLife(エムスリーのグループ会社)・エムスリーヘルスデザイン(エムスリーのグループ会社)でエンジニアとして各種作業に関わっている山です! 以前もメール送信の話を書かせていただいたことがありますが、今回もまたメールネタとなります。今回のお題はメールセキュリティです。 大量メール送信のための予備知識 - エムスリーテックブログ すでにご覧になった方もいるかと思いますが、次のようなニュースが流れています。 www.proofpoint.com この「GoogleYahooの新Eメール認証要件」ってつまりどういうことよ? というところを具体的にどのように進めているかについて書かせていただきたいと思います。 2023/12/18追記 : Googleからメール送信にTLSを使うことが追加要件として示されました。 TL;DR とりあえず何から始める? 何はともあれ実際に

    Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ
    ya--mada
    ya--mada 2023/10/24
    忘れてた…。
  • セキュリティヘッダ警察です!既に包囲されている!観念してヘッダを挿入しなさい! - エムスリーテックブログ

    セキュリティチームブログリレー2回目】 こんにちは。エンジニアリンググループの山です。 セキュリティチームは、エンジニアリンググループ全体のセキュリティを向上させるためのバーチャルチームなのですが、各プロダクト開発チームのサービスをチェックして、協力しながら全体のセキュリティを向上させていくのがミッションです。 そのお仕事の一環として「この部分、セキュリティヘッダが足りないから入れてください!」というやりとりを日常的に行なっています。 今日はこの「セキュリティヘッダ」というものが一体何なのか、今さら人に聞けないアレコレを取りまとめてみたいと思います。 セキュリティヘッダ警察の日常の図(もちろん冗談です) セキュリティヘッダ そもそもセキュリティヘッダとは? 比較的安全なセキュリティヘッダ X-Content-Type-Options X-XSS-Protection Strict-Tr

    セキュリティヘッダ警察です!既に包囲されている!観念してヘッダを挿入しなさい! - エムスリーテックブログ
    ya--mada
    ya--mada 2023/06/13
    ナニソレ?
  • postfixによる大量メール送信にまつわる問題と対処 - エムスリーテックブログ

    【SREチーム ブログリレー2回目】 お疲れ様です。エンジニアリンググループ、コアSREの山です。 前回ブログリレー1回目の記事で大量メール送信のために基設定について書かせていただきました。 www.m3tech.blog 今回はそれを受けて構築したサーバで実際に発生したいくつかの問題、その問題への対処といったものを書かせてください。 エムスリーのメール送信で発生した問題とその対策 特定のメールサーバからの突然のメール拒否 メールの翌日までの滞留 TLS問題 メールがどうしても迷惑メール扱いされるという苦情 postfixのメール処理とステータス メールログの監視 まとめ We are Hiring! エムスリーのメール送信で発生した問題とその対策 実際にここ一年あたりの間に発生した問題とその問題への対応を記述していきたいと思います。postfixを利用して送信していますので設定はpo

    postfixによる大量メール送信にまつわる問題と対処 - エムスリーテックブログ
  • 大量メール送信のための予備知識 - エムスリーテックブログ

    【SREチーム ブログリレー1回目】 お疲れ様です。エンジニアリンググループ、コアSREの山です。 他の情報伝達手段が現れた今は「メール」は以前よりも比重は落ちたかもしれませんが、まだまだ多くの人に情報を一気に伝えるための重要なツールです。 エムスリーでは自社サーバを利用してメールの大量送信を実施していますが、メール送信を実施するにあたって気にすべき基的な事項についてシェアさせてください。 大量メール送信に関連する基的な設定 基的な設定(SPFと逆引き) DKIM IPの追加削除 バウンスメール処理 金で解決 まとめ We are Hiring! 大量メール送信に関連する基的な設定 メール送信自体はそれほど難しいものではありません。 エムスリーではpostfixを利用していますが、設定はほとんどオリジナルでもメール送信自体は可能です。せいぜいドメイン名を登録するくらいでもいけます

    大量メール送信のための予備知識 - エムスリーテックブログ
  • Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ

    この記事はエムスリー Advent Calendar 2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。 AI機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。 仕事をちゃんとしてるか見張る TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめに AI機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

    Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
    ya--mada
    ya--mada 2022/12/31
    インデックス張っててなんの工夫も無ければインサートが重いのは当然なので、最初の20時間という表現はある意味で盛り過ぎである。
  • エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ

    こんにちは、エムスリー エンジニアリンググループ の鳥山 (@to_lz1)です。 ソフトウェアエンジニアとして 製薬企業向けプラットフォームチーム / 電子カルテチーム を兼任しています。 ソフトウェアエンジニアという肩書きではありますが、私は製薬企業向けプラットフォームチームで長らくデータ基盤の整備・改善といったいわゆる "データエンジニア" が行う業務にも取り組んできました。 日はその設計時に考えていること / 考えてきたことをデータ基盤の設計パターンという形でご紹介しようかと思います。多くの企業で必要性が認識されるようになって久しい "データ基盤" ですが、まだまだ確立された知見の少ない領域かと思います。少しでもデータエンジニアリングを行う方の業務の参考になれば幸いです。 データ基盤の全体像 収集部分の構成 RDBデータ ログデータ 活用部分の構成 データマートの実例 「データ基

    エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ
  • Elasticsearchで関連キーワード機能がどれだけ低コストで実装できるかの旅路 - エムスリーテックブログ

    クエリに対する関連キーワード機能 エムスリーエンジニアリンググループ AI機械学習チームの中村(@po3rin) です。 好きな言語はGo仕事では主に検索周りを担当しています。 Overview 最近の仕事で医師に質問ができるサービスで「Elasticsearchを使ってなるべく低コストで関連キーワード機能を実装する」という案件に携わっていました。記事では関連キーワード機能を低コストで実装するための技術調査の結果と、実際に採用した方法をご紹介します。 今回紹介する方法は機械学習などは使わず、なるべく低コストである程度の品質を目指すものです。この記事を読むことで検索アプリケーションにサクッと関連キーワード機能を実装できるようになるでしょう。 Overview 検索における関連キーワード機能とは 実装の前提条件 実装パターンの紹介 (1) ログで出現した単語を数えあげる (2) ログに対

    Elasticsearchで関連キーワード機能がどれだけ低コストで実装できるかの旅路 - エムスリーテックブログ
    ya--mada
    ya--mada 2021/03/31
    ちょタイトルがすでにオモシロいし
  • こんばんは、X-Forwarded-For警察です - エムスリーテックブログ

    エムスリーエンジニアリンググループ製薬企業向けプラットフォームチームの三浦 (@yuba)です。普段はサービス開発やバッチ処理開発をメインにやっておりますが、チームSREに参加してからはこれに加えて担当サービスのインフラ管理、そしてクラウド移行に携わっています。 今回はそのクラウド移行の話そのものではないのですが、それと必ず絡んでくるインフラ設定に関してです。 アクセス元IPアドレスを知りたい Webアプリケーションがアクセス元IPアドレスを知りたいシーンというのは、大まかに二つかと思います。ログ記録用と、アクセス制限ですね。どちらもアプリケーションそのものではなく手前のWebサーバの責務のようにも思えますが、そうとも言い切れません。動作ログ、特に異常リクエストをはじいた記録なんかにセットでIPアドレスを付けたいとなるとアプリケーション要件ですし、アクセス制限についてもマルチテナントサービ

    こんばんは、X-Forwarded-For警察です - エムスリーテックブログ
    ya--mada
    ya--mada 2021/02/15
    🤔そうなのよねー、偽装というか内部のプロキシが変なヘッダー付けて外に出してくるとかなー
  • SREの民主化とクラウド移行 - エムスリーテックブログ

    あけましておめでとうございます。今日から02/05までの平日にエムスリーのSREでブログリレーを開催します。その初日の投稿を担当させていただくエムスリーエンジニアリンググループの岩佐です。グループリーダーという立場でSREチーム、基盤チーム、セキュリティチーム、Unit4(m3.com/サイトプロモ)を担当しています。 私からはエムスリーでSREを拡大しようと推進している経緯/流れについて一筆認めさせていただこうかと思います。 要約、早速だけど 経緯、メンバーに敬意を、チームに契機を 方針、状況に合わせて更新 計画、そして軽快に改革 まとめ、ちょっとまともに 要約、早速だけど SREを短期的に大量に採用するのは不可能、じゃないかのう? オンプレミス環境で拡大していくサービス群をSREチームのみが運用していくのは難しい。こんなん困難では?はー、どうしよう 権限の移譲、DevOpsの推進をする

    SREの民主化とクラウド移行 - エムスリーテックブログ
  • 今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ

    こんにちは、m3 エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去に Go 言語の仕様を一通り見た経験があったのですが、久しぶりに Go のコードを最近読み書きした際に、ここ数年の Go 言語やエコシステムの進化による変化もあり、発見やハマりが多々ありました。 Go 言語公式のロゴもスピード感ありますね。 同じような迷い・回り道をしてしまう方ももしかしたらおられるのではないかと思いますゆえ、 エムスリー Advent Calendar 2020 6 日目の記事として、筆者が実際に「最初から知っていれば時間を無駄にしなかったのに...!」と感じた知見をざっくばらんにシェアいたします。 記事がどなたかの一助になりますと幸いです。 なお記事の内容は筆者個人の理解・自身で直接読み書きしたユースケースの範囲での知見であり、全ての Go 利用事例に当てはまらない点も含みうりま

    今どきの Go の書き方まとめ (2020 年末版) - エムスリーテックブログ
  • シンプルかつ高速な文字列照合アルゴリズムを紹介します - エムスリーテックブログ

    こんにちは! エンジニアリンググループ マルチデバイスチーム 新卒1年目の小林です。 エムスリーでは、2週間に1度、Tech Talkという社内LT会(現在はリモートで)が開催されています。これは、とある回の発表テーマリストです。 Tech Talkのとある回の発表テーマリスト このように、最近エムスリーでは文字列が流行っている(?)ようなので、その勢いに乗って私も文字列照合アルゴリズムについて書きたいと思います!(業務とは全然関係ない話です) Knuth-Morris-PrattやBoyer-Mooreアルゴリズムは解説記事がたくさん出ていると思うので、この記事ではシンプルかつ高速なQuick-SearchとQuite-Naiveアルゴリズムについて説明し、速度比較を行った結果についてご紹介します。 文字列照合アルゴリズムとは テキストとパターンという文字列が与えられたときに、中に出現す

    シンプルかつ高速な文字列照合アルゴリズムを紹介します - エムスリーテックブログ
    ya--mada
    ya--mada 2020/09/28
    なるほど、社内LTなのか。
  • 新ストレージ管理システム Stratis について調べてみた - エムスリーテックブログ

    この記事は エムスリー Advent Calendar 2018 17日目の記事です。 皆さんはじめまして!11月にエンジニアリンググループに入りました、SREの平岡です。今回はSRE・・・というよりインフラ技術に携わるエンジニアとして、OSプラットフォーム周辺での新しい技術について紹介します。 8 が・・・来る! Stratisとは? 他のVMFsとの違いは? 使ってみた インストール&デーモン起動 プール作成〜ファイルシステム作成 その他にできること プールへのキャッシュデバイスの追加 ファイルシステムのスナップショット作成 サポート予定の機能 所感 余談:注目したいポイント We are hiring! 8 が・・・来る! 今年(2018年)11月の頭に Red Hat Enterprise Linux (RHEL) 8 のパブリックベータが公開されました。そのリリースノートに挙げら

    新ストレージ管理システム Stratis について調べてみた - エムスリーテックブログ
  • 社内サービスを一括・即座・セキュアにリモートワーク開放した話 - エムスリーテックブログ

    はじめまして。 エムスリーエンジニアリンググループSREチームの山です。 先日来のリモートワーク促進の中、弊社でも多くの社員がオフィス外から接続するようになりました。 もちろん、VPNを利用すれば社内のサービスも利用できますが、VPNの使用量が一気に増えるとそちらの制限にかかります。 今回「VPNを可能な限り利用せず、なおかつセキュアに社内のサービスを利用してもらう」という課題に取り組みましたので、ここでその紹介をさせてください。 前提 方針 クライアント証明書の問題点 一括でのSSL化・証明書検証 ドメイン変換 実際の設定 Squidの設定(抜粋) unboundの設定 nginxの設定(クライアント証明書検証) nginxの設定(HTTPサーバに対するproxy) nginxの設定(個別対応) ブラウザのProxy設定 その後発生した問題 ポート問題 Hostヘッダ問題 戻りヘッダ問

    社内サービスを一括・即座・セキュアにリモートワーク開放した話 - エムスリーテックブログ
    ya--mada
    ya--mada 2020/09/12
    これなんかいいの?
  • Goのinterfaceの使いかた 基礎編 - エムスリーテックブログ

    エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っています。BIRではエムスリーではじめてGoを導入し、今ではほとんどの新規システムをGoで立ち上げています。(一部でKotlinもつかっています) Goでは、interfaceの使い方を知ることで、依存関係、コンポーネントの責務を整理した設計を考えることができます。 この記事ではGo導入当初にメンバに説明した、interfaceの基的な使い方やTipsを整理していきます(すでに、Goをよく知っている人には当たり前すぎるかもしれません)。 また、この記事の後にBIRのメンバーがGo関連記事をいろいろ書く予定となっています! interfaceの使い方 interfac

    Goのinterfaceの使いかた 基礎編 - エムスリーテックブログ
  • k8sハニーポットとログ出力の話 - エムスリーテックブログ

    記事はエムスリー Advent Calendar 2019 - Qiitaの24日目の記事です。 こんにちは。エムスリーエンジニアリンググループの木村です。 業務ではBIRというチームでアンケートシステムの開発をやっています。 今回は個人的に構築しているk8sハニーポットシステムとそこで生じたログ出力の問題について話をしようと思います。 ハニーポット まずハニーポットとは何かですが、一言でいうとインターネットからの攻撃を敢えて受けるサーバです。 通常通用されるサーバでは、ファイアーウォールやアンチマルウェアソフトウェアを利用して攻撃を防御し、サービスを安定して運用することが求められますが、ハニーポットはその逆です。 敢えて攻撃を受け、それを記録することによりネットワーク上でどのような攻撃が流行しているのか、その手口などを観測・分析することが目的になります。 ネットワーク構成 現在の私の自

    k8sハニーポットとログ出力の話 - エムスリーテックブログ
    ya--mada
    ya--mada 2019/12/25
  • Cloud Run で NEWS ランキング API を作った話 - エムスリーテックブログ

    エンジニアリンググループ AI機械学習チームの岩月です。 これは エムスリー Advent Calendar 2019 の12月8日の記事です。 今回は、先日ついにGAになった Cloud Run を利用して、 NEWS のランキング API を作成した件についてまとめます。 NEWS ランキング API の役割 Cloud Run 構成 処理のフロー なぜこの構成になったか (Cloud Run を採用してよかった点) 運用のコストを減らしたかった GKE (Kubernetes) への移行がしやすい Cloud Run を使いたかった Cloud Run を採用したことによる制限 Keep-Alive ができない コールドスタート まとめ We're hiring! NEWS ランキング API の役割 エムスリーでは医療関連のニュースをはじめとする様々なニュースを扱っており、そこで

    Cloud Run で NEWS ランキング API を作った話 - エムスリーテックブログ
    ya--mada
    ya--mada 2019/12/09