ayumu_aoの日記

SIerから事業会社に転職したエンジニアが技術についてや組織論、本の話、今までの体験談などなどを個人的に垂れ流しています。

AWS Summitに行ってきた!レポート※セッションメモ (2017/06/01)[メルカリ]Cloud connect the world as Glue

AWS Summitに行ってきた!レポート※セッションメモ (2017/06/01)[メルカリ]Cloud connect the world as Glue

AWS Summit 2017/06/01 [メルカリ]Cloud connect the world as Glue

※あとで資料が共有されるのでそれを見るのでメモ書きレベル

自己紹介

  • 長野 雅広

SRETeamの紹介

  • Site Reliabillity Engineeringの略
  • プロダクト・サービスを横断してソフトウェアの信頼性を向上させる
  • いつでも快適かつ安全に利用できる「信頼性の高い」サービスの実現
  • 「新規サービス開発以外のエンジニアリングは全部やる」
  • 「インフラ」よりサービス指向

キーワード

  • エラーバジェット

アジェンダ

  • メルカリとは/世界3拠点での開発運用体制について
  • メルカリのアーキテクチャ
  • メルカリのグローバルインフラストラクチャ

■メルカリとは

  • 国内最大級のフリマアプリ
  • 3分でカンタンに出品
  • 安心安全な決済

1分間あたりの出品数→1200品以上出品される 出品からすぐに売れる(売れた商品の約50%以上が24時間以内に決済)

日本、サンフランシスコ、ロンドンに拠点がありエンジニアがいる。 分担 * 日本 → 開発の中心 * サンフランシスコ → サービスのローカライズ、言語だけではなく、文化や習慣のローカライズ * ロンドン → サービス立ち上げフェーズ, 現地法令に合わせたローカライズ

時差があるので3拠点合わせてMTGをすることは難しい。。 * クラウドを利用してコミュニケーションを図る * GitHubを利用 * Slack活用 * VideoConferenceを利用 * リモートペアプロ(スクリーン共有)

自立したチームとして課題解決する * 一人ひとりがフルスタックである必要はなくチームとしてフルスタックで対応 * 個々人で出張はせずチームで出張 * OSはブランチをわけることで安全に対応

海外とのやりとりに関しては時差を考慮し自宅でのVideo

■メルカリのアーキテクチャ

背景

アーキテクチャ

  • Webサーバー層、アプリ層、データ層のシンプルな3層構造
  • メンテナンスビリティ・スケーラビリティ戦略の共通化
  • 少人数での運用
  • Ansible Playbook再利用
  • スケールが先行しているJPで実績ある構成

アーキテクチャまとめ

  • 3つのRegionで採用するインフラストラクチャがことなる

■メルカリのグローバルインフラストラクチャ

データをサービスを行う域内に留める必要性

  • 幾つかのクラウドサービスを共通して利用
  • 海外でのアクセス改善

DNS

Amazon Route53を利用

  • Roadworkerを利用

Route53+HealthCheckをいれることを検証中

  • サーバ障害時にDNSの書き換えに時間がかかる

内部DNS

  • すべてのサーバにunboundを導入
  • ローカルキャッシュによるパフォ=マンス向上
  • アプリケーションからの接続は必ずCNAME経由
  • 相互移行をしやすくするため

S3の利用に関して

  • データ・ストレージとして利用
  • IAMを利用して疎結合を実現
  • システム連携のHubとして利用することで疎結合を実現

機械学習への取り組み

  • サービスで利用中、検証中
  • 価格提案なども行っている
  • AmazonMLも検討中

距離を超えて世界を繋ぐ

距離とレイテンシ

  • 光は50mscに地球半周もできない。遠距離との通信はコストが高い
  • 太平洋・北米大陸・大西洋はもとよりいしかりも遠い。。。

高レイテンシ環境でのHTTPS通信

遠距離接続するユースケース

  • クライアントが遠いところからサービスを利用する場合

解決策

  • CDNを利用する
  • CloudFront、Akamai、Fastlyを利用
  • ユーサーからの接続はユーザーに近いCDNにアクセスしてもらい、そこからパスでOriginを分けている

アプリケーションからクラウドアクセスへ

  • Proxyiサーバーを開発
  • chocon(OSSとして公開中)※Goで開発

なぜChoconを作ったか

  • 似たmiddlewareが見つからない
  • HTTPSはend to endで暗号化。MITLM Proxyが必要になる
  • Go言語標準が要件に向いていた

まとめ

  • メルカリは3拠点でサービス展開、開発を行う
  • 各Regionはサーバー中心として共通アーキテクチャ

セッションの感想(翌日追記)

SREチームって発想がいいな!って思いました。

自分の会社も組織改編をおこなっている最中でそういうチームが必要じゃないかなんて話を上長に話していたところなのでメルカリさんの話がとても参考になり

良き前例として捉えたいと思いました。

自分は組織体制としての部分までは考えていたのですがそれを支えるアーキテクチャ周りまでは頭が回ってなかったのでなるほど!そういうことも考えないとか!

と勉強になりました。(自分はまだまだだなーとww)

世界で開発、サービスの連携・展開をしているところの話はすごいスピード感だな!というのが一番の感想です。

いろいろと考えることができたので収穫の多いセッションでした!!

あとは、スライドが公開されるのを待ちますw

あと公式からセッションの動画とかって公開されるのかな??いろいろ勉強したあとにもう一回見たい(聞きたい)セッションでした〜

まる