見出し画像

AWS Summit Tokyoでピッチして気づいたAWSというサービスの変貌

先週金曜日にAWSが主催するAWS SummitにてStartup Architecture of the Yearに登壇してきました。

Startup Architecture of the YearはAWSを利用するスタートアップが自社のアーキテクチャを紹介し、その優秀性などを競うピッチイベントです。

全応募者数の正確な数は教えてもらえませんでしたが、結構な数応募されたらしく、その中で今回heymeshのアーキテクチャも嬉しいことにファイナリスト7社の1社として選んでいただきました。

審査は実際のスタートアップのCTOの方々100名とAWSでSolution Architectをされている方々から行われました。

今回はこちらでお話しさせていただいた内容とその経験の中での所感などをお伝えできればと思っています。

【発表した内容】

弊社が運営する3Dモデル検索サービスheymeshはまだリリースしてから2ヶ月経ったばかりの若いサービスなので、開発を始めてからリリースするまで1ヶ月で1人でバックエンドの開発を行った過程をお話ししました。

発表は1人4分とかなり短い時間設定でしたが(笑)なんとか言いたい内容を詰め込んで、4分で収まる内容にしました。

スライドにも掲載していますが、簡単にheymeshのバックエンドを1人で1ヶ月で作りきるために意識した三つのポイントを簡単にご紹介したいと思います。

1. 徹底的にリソース管理をしない

heymeshのバックエンドを作るにあたり、まずひたすらマネージドサービスとサーバーレスサービスを使うことに注力しました。

実際に図で見ていただくとほぼどちらかのサービスなのがお分りいただけると思います。

これはとにかくリソース管理をAWS側に移譲することで自分はサービスに必要な処理を各部分に集中しようと考えたためです。

昨今、スタートアップ業界だとエンジニア採用がなかなか難しいことはよく聞く話です。

特にプロダクトをリリースする前のスタートアップなんて、語れるものは壮大な将来の展望くらいなので、ものがないとやはり具体性にかけてなかなか採用が難しいなと自分自身の経験からも思います。

そんな中でもスピードを求められるスタートアップのエンジニアにとってサーバーレスやマネージドサービスは少ないリソースでも開発のスピードを加速させてくれる強い味方だと思っています。

よくマネージドサービスは高いと言う話も聞きますが、僕はheymeshを作っている間、マネージドを使うために払ってるお金は「AWSの中の人を必要な時だけ安価に雇ってる人件費だ」と思っていました。

開発がひと段落して事業の規模が拡大してきたらチューニングの人材などを雇ってコストカットを測れば良いと思うので、まずは多少高くてもマネージドサービスで少ないリソースでものを作ることを意識するのが大事だと思います。

「多少雑でもまず動くものを作る」→ 「動くものを改善しながら人と金を集める」→ 「コストなどを最適化する」というステップがスタートアップの開発に於いて大事なことだと思います。

2. AWSサービス単位での処理の分割

こちらは弊社のサービスの中でクローリングを行って、データをElasticsearchに流す部分までの処理を主に指します。

heymeshの裏側では外部のサイトから情報を取得して、検索データベースに突っ込むまでの間の処理をサービス単位で区切るような設計にしています。

このような形にしている理由は各サービスが持つ強みを最大限活用できることです。

AWSは一つ一つが何らかの処理や用途に特化したサービスになっています。これらの強みを最大限に生かすために、実行したい処理を分割し、各々の特性にあったサービスを選択するようにしました。

また万が一開発中に構造上の問題が起きた場合にも対処すべき内容を明確にすることでき、ある程度処理を移植させることができるので、対応工数も最小限に抑えることができます。

その一例をスライド中でも紹介しています。

データ整形の処理を最初Lambdaで書いていたのですが、自分の見積もりの甘さや途中でデータ整形処理を複雑化する必要があったため、Lambdaの処理時間の制約をオーバーしてしまいました。

そこで処理の中身はそのままに実行の仕方のみを変更して処理をLambdaからFargateに移行しました。

このように各サービスの中でメリットになる部分と処理の勘所をうまくマッチングしてあげることによって構築の手軽さ、また変更に対する柔軟性を高めたアーキテクチャを構築できます。

3. グローバル基準での技術選定

heymeshはプロダクトを設計した時から全世界のユーザーをターゲットにしたサービスとしてスタートしました。

これは弊社代表の梶谷と自分がエストニアやフィンランドで訪問したスタートアップたちが皆そうした高い視座でプロダクト作りに取り組んでいたことや、MESONの「テクノロジーでもう一度世界を驚かせる」というビジョンを実現するためです。

そんなグローバル前提のサービスを作るのならやはりサービスの基盤となるアーキテクチャや技術もグローバル前提でないと戦っていけないと考えました。

そのためheymeshではリージョンも東京ではなく、バージニアを選択し、最新のAWSサービスをいち早く活用できるようにしています。

奇しくもピッチの当日、AWS Summitの中でFargateが東京リージョンにくるという発表がありましたが、弊社ではすでにFargateを活用しており、またそれは同時に全世界のスタートアップもすでにそういった新しく便利なサービスを使ってビジネスを加速していることを意味しています。

グローバルで戦っていけるようなサービスを作るためにheymeshは技術の選択もグローバルを前提としたものにしています。

AWS SA賞を受賞

発表自体はスムーズにできたこともあり、審査の結果、AWSのソリューションアーキテクトの方々に選んでいただいて、AWS SA賞とAmazon Echo Plusをいただきました!

今回SAの方々にもフィードバックをいただきましたが、今回自分は「アーキテクチャとして特殊なことをしている」というよりは、「誰でも開発リソースが少ない中でAWS上で動くものを最速構築するためのTips」的な立ち位置でお話し、それがSAの方々にも受け入れられたのではないかと思いました。

AWS Summitでピッチして改め気づいたこと

AWS Summitに参加して思ったことはAWSは「オンプレの代替手段」というインフラ的な立ち位置ではなく、もはや「開発を加速させるサービス」だということでした。

これまでクラウドは自社サーバーを持つかクラウドでサーバーを立てるかみたいな対のような関係だと認識していたのですが、今AWSが提供しているものは一般の人たちがAirbnbを使って簡単に宿を探したり、Uberを使って移動を簡単にするように、開発者が簡単に自分たちの実現したいアーキテクチャを実現するためのサービスに完全になっていたんだなと思いました。

「サーバーを借りる」ようなクラウドではなく、もはや「サービスを使う」という表現の方がよりマッチしたプラットフォームにAWSがなっていってるし、これからよりそういう意味合いが強くなっていくんだろうなと思います。

逆に周りがそうやってサービスを構築していく中でオンプレの代替的にクラウドを使い続けていればどんどん遅れをとってしまうことにもなりかねないと思っています。

実を言うと、自分はこのheymeshのバックエンドを構築するのがきちんとAWSを触る初めての経験で、それまではEC2一個立ててsshするぐらいしかしたことがなかったのですが、

今回AWS上で1人でアーキテクチャを構築して、AWS Summitで発表したり、いろんな人とお話しさせていただいて、そういったことに気づけたのはとても良い経験だったなと思っています。

最後、CTO Nightにも参加させていただき、色々なCTOの方に「小林くんに票を入れたよ」といってもらったり、

AWSのSAの方から「良いものを見せてもらいました!」と褒められたりして、自分がやってきたことが間違っていなかったんだと再認識できたのもとても嬉しかったです。

最後に

今回の発表ではheymeshをリリースするまでのお話しでしたが、heymeshは現在もより多くのVR/ARクリエイターの方々に使っていただけるように誠意改善中です!

そんなheymeshのバックエンドを(フロントエンドも)一緒に開発してくれるエンジニアを随時募集しているので、ご興味ある方はぜひtwitterのDMでも、弊社ホームページからでもご連絡ください!


この記事が気に入ったらサポートをしてみませんか?