AWS Startup ブログ

Category: Amazon Elastic Container Service

ビズリーチ様、ECS活用アーキテクチャー大刷新についてお伺いしました

こんにちは、Startup担当事業開発の畑 浩史です。 株式会社ビズリーチでキャリトレの開発をされている外山さん、中村さん、龐さんにAWS久下とシステム刷新についてお話をお伺いしました。 外山 英幸さん(写真右) キャリトレ事業部 プロダクト開発部  部長:キャリトレ事業部の部長としてプロダクトの企画、システム運用、保守、開発や新プロダクトのアーキテクチャーを見られています。2歳になられたばかりの息子さんがかわいくてかわいくて仕方ないとのこと。趣味はお子さんと遊ぶことと、夜にAWSの勉強をすることだそうです。座右の銘は「なんとかなる、なんとかする」。 中村 恵介さん(写真左から2番目) キャリトレ事業部 プロダクト開発部:新卒でビズリーチ社に入社し、現在はテックリードとして、アプリケーションレイヤー、インフラレイヤーともにご担当。趣味はスノーボード、ボルダリング、ゲーム、プログラミングとアウトドア、インドア両面でアクティブで、現在、独身で売り出し中とのことです!座右の銘は「千思万考」。 龐 冲さん(写真右から2番目) キャリトレ事業部 プロダクト開発部:中国 雲南省ご出身で2007年に来日され、現在はインフラのトップとしてAWSの構築や運用をされています。日本語が堪能で、社内Slackでは「日本人以上に日本語が上手い」と評判だそうです。趣味はクラシックギター。座右の銘は「一期一会」。 キャリトレとはどのようなビジネスでしょうか? 20代の方向けの転職サイトで、第二新卒の方など、初めての転職の方を中心にご利用いただいております。2014年に正式ローンチし、ビズリーチの新たな事業の柱として、現在は多くの求職者の方や企業の方にご登録いただいております。今年は5月にCMも開始し、より多くのユーザーの方々に価値を提供できるサービスを目指しています。 現在、プロダクトが抱える課題は何でしょうか? サービスが短期間で急成長したため、スピード優先で矢継ぎ早にシステムを増改築してきた結果、どうしてもその場しのぎであったり、いびつな対応となった部分ができてしまいました。結果、所謂スパゲッティコード、機能間密結合となり、問題の特定が難しいことや、影響範囲が大きくなります。また、インフラ面も全てをコードで管理しているわけではないため、実際に動いているものを見てみないと分からないことや、問題発生時の調査が難しいこと、見直しが難しいといった状況があります。 課題に対して、どのような対応をされていますか? 5年経つこのタイミングで、アーキテクチャーの刷新を現在進めています。大きな方針として、 1. スケールしやすい 2. 工数を削減する(作らなくてよいものはなるべく作らない) 3. 運用負荷が軽い の3点を常に意識しています。 また、刷新の際に他クラウドの利用も検討しましたが、これまでの経験の蓄積、権限管理、監査対応、Auroraのパフォーマンス等の観点から、既存と同様にAWSで再構築することに決めました。その際に、AWSのトレンド、王道を最大限に活用して構築していくことも方針の1つとしました。 それ以外に、Dockerコンテナ技術を使うという全社方針があったため、キャリトレもそれに沿った開発をすることにしました。その際の選択肢としてKubernetes on EC2がありましたが、Kubernetes は機能的に充実している面はあるものの、折角AWSを利用しているのに自分たちで管理することが増えすぎる点、またKubernetes をアプリエンジニアに覚えてもらう必要がある点、他のAWSのサービスとの連携による恩恵を受けられない等から、運用のしやすさを考え選択しませんでした。EKSは東京リージョンのローンチがまだなので、見送りました。結果、ECSで再構築を進めています。Fargateは構成自体を自動化して運用コストを下げるために有効なため、検証を続けています。 具体的な再構築の内容を教えていただけますでしょうか? これまで、Jenkinsでビルドしていたものを、AWS CodeBuild、CodeDeploy、CodePipelineを使って全て構築するようにしています。並列でいくつか動かしてもスケールできるように、Jenkinsを管理しないことでできるだけ運用負荷を下げることを目指しています。これまでテストに時間がかかったり、タスクを増やすと落ちたりしていたことが無くなることを期待しています。 次に認証周りについて、インフラだけではなくアプリも見直しています。ログインに関する機能をAmazon Cognitoを使うことで自前で作らないようにすることや、API GW利用によりエンドポイントの認証をSTSで行うことやロールベースのアクセスコントロールなどで工数削減に繋げています。 DBは、MySQL5.6 RDSから Auroraへ移行し、移行コストがかからず楽に移行できています。Auroraに移行することで、Slaveに対しての遅延が少なくなり、Read系の考慮点も減らすことができ、可用性の面でのメリットが大きいです。また、カラム追加のロックがかからないことやリードレプリカアクセスにロードバランサー機能があることも運用負荷軽減となります。検索については、EC2 Solrの構成でしたが、保守コストがかかっていたため、運用コスト優先でElasticsearchを選択し、専用のサーバーを立てることを減らしています。ログ周りはfluentdでエージェントを立ててEC2のサーバーを立てていましたが、CloudWatch Logs Agent-> Kinesis -> Lambda -> S3で再構築し、Athena、EMR、Glacer 、Datadogの利用を考えています。バッチはAWS Step Functionsを活用します。 今後のチャレンジは? キャリトレが大きくなるとマイクロサービス化が必要になると考えていますので、サービスを増やした時の共通基盤の作成は今後の課題です。また、将来的にはサーバレスな構成も考えていきたいです。 今回のre:Inventの新機能発表で注目は何でしたか? […]

Read More

新しいマッチングを世の中に届けたい。「くらしのマーケット」開発の歴史とは?

こんにちは、Startup担当事業開発の浜宮 真輔です。 みんなのマーケット株式会社でテクノロジー本部 本部長を担当されている戸澤さんにお話しを伺いました。みんなのマーケット株式会社はハウスクリーニングや引っ越し、家の修理やリフォームを始めとする生活関連の出張・訪問サービスに特化したインターネット商店街である「くらしのマーケット」を運営されています。口コミや料金の比較も可能なうえ、オンラインで予約できます。まさに痒い所に手が届くサービスです。マッチングサービスとして拡大が続くなか、起業当初からシステムを管轄してきた戸澤さんはどのように開発と運用をされてきたのでしょうか?   ・まずは戸澤さんの経歴は? 2011年1月の創立当初からみんなのマーケットと歩んできました。みんなのマーケットにジョインしたきっかけは、個人的にPythonのブログを書いており、それを見た代表からTwitterでお誘いがきたのがきっかけですね。エンジニアとしての経歴を考えると、中学生時代にまで遡ります。親は公務員でITを専門にしているわけではないのですが、Windows95を買い与えてくれて、PC上で絵を描くことや、ネットサーフィンをしたのがITに触ったきっかけです。特にネットサーフィンで「調べること」が大好きになり、Webサービスをつくって公開するブームを知りました。そしていつしか自分でも作ってみたいと思うようになり、C言語に触って挫折し、その後PerlやPHPにも触った思い出があります。 大学生になるとJavaや C++を使っていましたが、Webサービスを開発するうえでPythonだと書きやすいという感覚をもっており、技術ブログを参考に開発していましたね。例えば、TwitterのUserStream APIを使って地震のアラート配信するアプリも作りました。ただ、自分自身で起業という考えはなかったです。経営的な動きよりプロダクトをつくることが好きだったのです。こう話すと、趣味はプロダクト開発のように思われるかもしれませんが、ランニングやカメラが趣味です。中学生時代にのめり込んでいたカメラに最近またはまっています! ・みんなのマーケットの創業当時は? 2011年から2015年まではインターン含めて2名で開発をしていました。当時はコードを書く面白さを満喫していましたね。コーディングルールや運用プロセスを考えるよりも、とにかくコードを書いていました。当日の開発作業は、主にリリース時から実装していた機能改善がメインでした。例えば、ユーザーが自分のいるエリアを探しやすくするなどUXの改善です。UXの改善は実際にユーザーへの有益なインパクトがありました。ただ、最初の2~3年程度は売り上げがなかなか上がりませんでしたね。でも自分たちが作っているサービスは今の世の中にないものだし、利用者も少しずつでも伸びていたので漠然と期待感があり、不安な気持ちはなかったです。 その後、エンジニアが増えて、自分の仕事もプロダクト全体をみるようになりました。それに合わせて自分の価値観も「コードを書く面白さ」から「ユーザーの中にある課題を解決する楽しさ」に変わっていきました。実際にユーザーさんが喜んでいる声を聞いたり、KPIの数字が上がるのをみて、自分たちの解決策が当たったことを確認できると一番楽しいです。     ・現在の具体的な業務内容は? プロダクト全体をみているのですが、プロダクトマネージャー(以下、PM)は複数おり、PMに対して開発の視点から意見することが多いです。具体的には「シンプルにすること」「問題を正しく捉えること」。有益なインパクトを与えられるか検討することや、新機能を構築する前に既存機能の活用を促すこともあります。もちろん代表の浜野の意見も取り入れますし、PMから積極的に意見があがる風土は大事にしています。この風土を作るために、PM自身が課題、目的、得られるインパクトを論理的に理解し、それに加えて全体を見わたせるようになるよう意識しています。また開発リソースは有限なので、リソースを最大限に有効活用するために、事前にできるだけ深くメンバーが考えるように意識しています。そのためにもデータ分析は積極的に進めています。データはGlueからAthenaを経由したうえでRe:dashで表示しているのですが、そのアカウントは開発部門だけでなく、さまざまな部署にも渡しています。各部署内でデータ分析を行うことで課題点が可視化され、それぞれが改善していく流れが出来ています。 ・創業から現在まで、プロダクトは順調に拡張されてきたのですか? いいえ、2016年に大きなreplaceを行っています。創業当初はコードの綺麗さを後回しにしていました。しかし、エンジニアが増える段階で新しいメンバーに都度環境を説明するのが大変だったこともあり、replaceを行うと共にコーディング規約も作り、組織で動ける仕組みを整えていきました。システム面においてもマイクロサービスを導入し、組織ごとに開発が進められるようにしました。セキュリティ的にもリスク分散できるメリットもあります。もちろんシステム全体を理解するのが難しくなってきたという側面もありますね。尚、replace以降に限った話ではないですが、既存機能をより良くするためにユーザーの声をプロダクトに反映しています。具体的には、ユーザーにむけて定期的に行っている講座や、コンサルティングチームがユーザーから直接要望を拾い上げてきて、内部で検討を進めると共に、代表の浜野も俯瞰的に評価して対応を決めています。 ・技術面での特長は何でしょうか? 新しい技術を積極的に活用することです。いくつか例をあげると、エンジニアリソースが限られているのでAuroraなどマネージドサービスを使うことでプロダクト開発に注力出来るようにしています。また、マイクロサービスの中でコンテナ化できるものはECSに入れていますね。 ・AWSの良い点も聞いていいですか? AWSのプロダクトとしてはLambda が好きです。実行回数が多い割には安いし必要なときだけ実行できる点もありますが、処理の安定性を管理しなくていいことや、Cloud Watchで全て監視できる点も良いですね。 AWSを継続している理由としては、技術面やプロモーションなど手厚いサポートにあると思います。また、新しいサービスが多く出てくるので、より便利に使えるのではないかと期待があります。逆に使い切れないくらいサービスがあるので期待値を超えているかもしれませんね。 あとは、コンサルティングチームはやりとりに電話を多く使っています。Amazon Connectであれば今出来ていないLambda等でシステムと連携もでき、より活用できると期待しています。Amazon Connectが早く東京リージョンに来てくれるといいですね!(取材は2018年11月29日に実施) 戸澤さん、お忙しいところ有難うございました!               編集後記) サービスが成長していく中で、戸澤さんがプロダクトと同様に、メンバーや文化を大事にしている点、そしてメンバーや文化の話をするときの笑顔がとても印象的でした。開発されている皆さんの温かさがプロダクトにも反映されているのだと思います。Amazon Connectは12/11(火)に東京リージョンローンチとなります! 関連情報) みんなのマーケット株式会社:http://www.minma.jp/ Amazon Connect : https://aws.amazon.com/jp/connect/ このブログの作者) Shinsuke Hamamiya(浜宮 真輔) ベンチャー企業を経て2005年に日本IBM入社。金融系の基幹システムにおけるプロジェクト・マネジメントに携わる。2016年に早稲田大学大学院にてMBA取得後、スタートアップ支援とオープン・イノベーションを促進するIBM BlueHubを担当。2018年よりAmazon Web Service Japan, K.K […]

Read More

Startupな方向けのAWS Summit Tokyoの歩き方:その1「お客様登壇事例セッション編」

皆さんこんにちは。マーケティングの石渡です。 AWS Summit Tokyoの開幕までいよいよあと1週間となりました。お陰様で多くのお申し込みを頂いております。ありがとうございます。なお、公式ウェブサイトからの来場受付は5/25(金) 18:00までとなりますので、参加をご検討中の方は、ぜひお急ぎください。 本日は、AWS Summit Tokyoをもっと楽しむためのプランニングガイドをお届けします。まず1回目は注目のセッションのご紹介です。あの注目のスタートアップが何を語るのか、ぜひご参加頂きたいセッションです。 【 Preferred Networks 様ご登壇事例】ディープラーニングが変える未来|PFN の事業戦略と Chainer on AWS 6/1 (金) 15:00〜 Chainer は Python 製の主要な深層学習フレームワークの一つである。ユーザーの要望を受けて公式 AMI が提供されるなど、AWS での利用も容易になってきており、本講演では Chainer の機能紹介とともに AWS での使用方法を紹介する。また、Preferred Networks は Chainer を用いて様々な産業アプリケーションを開発し、パートナーとの商用化を行っている。後半ではその事業戦略と最新事例について述べる。 【 FiNC 様ご登壇事例】FiNC を支えるインフラ技術 ~ Amazon ECS と DevOps ~ 6/1 (金) 13:00〜 “ヘルスケアサービスを提供している FiNC ではマイクロサービスアーキテクチャを採用しており、そのサービスのほぼ全てを ECS で運用しています。本セッションでは弊社のコンテナ技術を中心に以下のような内容をご紹介します。 システム構成 クラスター構成と運用方法 CI 環境 […]

Read More