AWS Startup ブログ
Cacooのマイクロサービス化、Kubernetes on EC2に関するお話を伺いました
こんにちは、Startup担当事業開発の畑 浩史です。
株式会社ヌーラボでCacooの開発をされている、開発リーダーの中原さんとインフラ担当の渡辺さんに、AWS福岡オフィスの奥田とお話をお伺いしました。Cacooをご利用されている方も多いかと思いますがCacooには、AWSの構成図を作成するためのシンプルアイコンやテンプレートが揃っています。ただ、AWSの新サービスローンチのスピードが速いために、ユーザーさんから「早く、アイコン追加して!」とプレッシャーを感じることも多いそうです。
中原 正二さんについて(下記写真左)
7年前にヌーラボに入り、サーバーサイドやフロントサイドなど幅広く開発してこられ、現在はCacooの開発リーダーをされています。前職では組込みのCの開発や、Javaのアプリ開発、ネットワーク機器の組込みなどをされていたそうです。最近のちょっと嬉しかったことは、何もしないのに視力が0.1→1.0に上がったとのことで驚きです。
渡辺 信行さんについて(下記写真右)
2年前にヌーラボに入り、Cacooのインフラ専門で開発をされています。これまでSIerでJavaのアプリエンジニアなどをされてきたそうです。サッカーが大好きで好きなチームはやはり地元のアビスパ福岡だそうです。SNSのプロフィールにアビスパ福岡のファンであることを公言していたら、アビスパ福岡から連絡が来たとのことでした。
マイクロサービス化の背景は?
Cacooは現在、世界中に300万人ものユーザーが居て、学校などの教育機関で使われることも少なくありません。また、ユーザーだけではなく開発チームも日本、ニューヨーク、アムステルダムとグローバルで開発しています。世界各拠点がバラバラに同じアプリ、レポジトリを触りながらの開発は効率が悪く、またドキュメントが日本語しかないものは、海外の開発者がそれを見て開発できないなどの課題があり、マイクロサービス化に踏み切ることに決めました。
Kubernetes on EC2選択の理由は?
これまでECSを使っていたこともありますが、今回のマイクロサービス化ではKubernetesを自分達でEC2上でクラスタを運用するという技術的なチャレンジをしたかったということがKubernetes on EC2を選択した主な理由です。マイクロサービス化を決めたのが2017年9月頃だったこともあり、その頃EKSが無かったのですが、今だったらEKSを選択しているかもしれなかったです。
※詳細はヌーラボさんのブログ「CacooはなぜKubernetesによるmicroservicesへの道を選んだのか?」に非常に詳しくまとまっていますので、是非こちらもご覧になってください。
マイクロサービス化の結果は?
AWS上でKubernetesを用いてマイクロサービス化した結果として、グローバルチームで平行して開発を進めることができ、開発スピードは格段に上がりました。また、Goで書かれているプログラムも多く、Goのメリットとしてメモリー使用量がJavaに比べて格段に小さいため、Kubernetesで動いた時にメモリー使用量が小さくサービスの数を増やしやすいという点もあります。他に、想定外でよかったこととしては、ソースを見る単位が小さくなり、参照もしやすく、その観点でも開発スピードは速くなりました。
マイクロサービス化の課題は?
課題としてはAWSのロールを割り当てたい場合に、自前でやるのが手間がかかります。例えば、ユーザーを作ってそのユーザーにだけS3だけを見られるようにしたいというような時や、ALBを使おうとすると時のセキュリティグループの設定などのケースです。その辺りは、EKSに期待したいところで、試してみたいところです。マイクロサービス化の想定外のこととしては、開発をする時にこれまで1枚だったものが、新しいサービスを追加しようとすると、レポジトリも増える、テストも増える、作業や準備も増える、開発環境を色々と準備しないとならないという、前は1個だけ見ればよかったのに、手間が増えるという点はあります。
今後のチャレンジは?
マネージドのEKSやクラスタ管理がいらないFargateは使ってみたいです。また、プログラムを書く人と、インフラの人がもっと良い関係になるようなチーム作りもしていきたいです。インフラはどんどん変わってきてるので、Kubernetes に乗せるために、アプリ側が知っておくこと、例えば「ここはパラメータで渡せる方がいいよね」とか「負荷が高いところはマイクロサービス化しよう」とかそんな会話が普通にできるようになったらよいと思います。そのために、しっかりとドキュメントを作り、共有することと、アプリエンジニアが動作確認のために、Kubernetesのログを自分たちで確認できるような環境を構築できたらと考えています。
一日の平均睡眠時間は?
中原さんの睡眠時間は5~6時間、4歳と2歳のお子さんがいるため、好きなゲームをしたり映画を見る時間がなかなか取れないとのことでした。渡辺さんは7時間と比較的よく寝れているそうです。
20歳の頃の自分に伝えたいことはありますか?
中原さん”技術的なこと以外も勉強しておいた方が良いです。最近、自分はフィナンシャルプランナーの資格を取っています”、渡辺さん”もっと英語を!仕事でもプライベートでも!” とのことでした。
新サービスをこっそり見せてもらいました!
そして取材の最後に「実は、今面白いものを開発してるのですよ、、、」と、開発中のサービスを見せて頂いたところ、「すごい!全AWSユーザー、ユーザーだけではなくAWS社員も泣いて喜びます!」と驚愕のサービスでした。残念ながら開発中ということで、写真撮影はNGだったのですが、なんと先日そのサービス「AWSのインフラ構成図を自動で描画する機能」がリリースされました!メチャクチャ便利なので是非、皆さん、お使いになってみてください!(写真はCacooブログより転載)
ヌーラボの中原さん、渡辺さん、お忙しいところありがとうございました!EKSやFargateも是非試してみてください!
※2014年11月に私とヌーラボの橋本さんでセッションを行ったことがあります。橋本さんの考えや当時のヌーラボ、Cacooについてよく分かる内容ですので、お時間ありましたらこちらも合わせてご覧ください―。
ヌーラボ創業者が語るAWSのクラウドサービスを使うことの意義