AWS Startup ブログ
コンテナ活用で成果を出すスタートアップの視点 – マネーツリー株式会社の事例から
皆さんこんにちは、スタートアップマーケティングの石渡です。
さて、AWS Startup Blog では、8月・9月の2ヶ月間に、コンテナ技術に関するブログポストを幾つもお届けしてきました。AWS が提供中の様々なコンテナサービスを解説しつつ、なぜそのような選択肢があるのか?そして、そもそもコンテナを使う目的は何なのかを、皆さんと一緒に考えていきたいという思いで記事を編集しています。その中でも、特に多くの方に読んで頂いた記事が以下の2本です:
スタートアップのためのコンテナ入門 – 導入編
スタートアップのためのコンテナ入門 – AWS Fargate 編
本日は、これらの記事を読んで頂いた方にお勧めしたい、いわば実践編のブログポストをお届けします。
ご紹介するのは、自社の本番環境に AWS Fargate を積極的に利用されているマネーツリー株式会社様のストーリーです。2019年3月に開催した AWS Startup Day 2019 Tokyo にて、マネーツリー社の Core Systems Engineering Manager である Sergio Arcos さんにお話し頂いた、まさに同社が、なぜコンテナなのか?そしてなぜ AWS Fargate なのかを問い、それを実践している現在進行形の物語です。
この講演の様子は、以下のリンクからご覧いただく事も可能です。ぜひ多くの方にご覧いただきたい学びの深い内容ですが、本日はこのビデオのハイライトをお届けします。まずはポイントを大づかみに捉えて頂き、ビデオ本編を視聴頂ければ幸いです。
講演前半:アマゾン ウェブ サービス ジャパンの原によるオーバービューセッション
この講演は、まず冒頭に、AWS の原から、なぜコンテナなのか?コンテナサービスをどう選ぶべきなのか?そして、謎のミドルウェアは必要なのか?という3つの話題から始まります。
まず最初に、コンテナ化以前のところとして、アプリケーションコードを実行させるには、様々なコンポーネントが、環境に合わせて揃っている必要があります。Java での開発を行う上では適切なバージョンの JVM や、Ruby であれば、ライブラリとしての Ruby on rails が適切に揃っていること、そして、The Twelve-Factor App の考え方に沿った開発をしていくうえでは、設定値はコードの中に書かずに外に持たせる、などということが必要になってきます。
環境に併せて様々なコンポーネントが揃っていること、というのは、実は言うほど簡単な事ではないのは、皆さんも思い当たるところがあると思います。例えば安定性重視の本番環境では、古いバージョンのコンポーネントが稼働していることなど、そうした環境の差異というのはよくあることだと思います。
こうしたことを背景にして、Dockerを利用することで、全てのアプリケーション開発環境で、同じコンテナイメージを稼働させるという問題解決のアプローチが注目されてきました。
では次に、コンテナを実行する上での選択肢として、具体的に何を選ぶべきなのか?という点が挙がってきます。現在 AWS では、3種類のコンテナサービスを提供しています。まずは、Amazon Elastic Container Service (Amazon ECS) 、Amazon Elastic Kubernetes Service (Amazon EKS)です。
これに加えて、我々は、AWS Fargate をご提供しています。AWS Fargate は、コンテナを利用する上で避けて通れない、コンテナレベルでの運用管理とその実行環境であるインスタンスレベルでの運用管理という2重の管理の負荷軽減を実現するためにご提供しているものです。
AWS Fargate の環境においては、従来必要だった、コンテナレイヤの管理と仮想マシンレイヤの管理のうち、AWS が仮想マシンレイヤの管理をご提供するモデルです。よって、お客様はコンテナに集中して頂くことができます。
こうした3つの選択肢がある中で、原が、改めて考えて頂きたい点としてお客様に投げかけたのは、以下のスライドのメッセージです。
自社プロダクトの価値創造というスタートアップの至上命題のために、仮想マシンの管理が必要かどうか?という観点で一度考えて見て欲しいというものです。つまり、コンテナの利用を検討する際に考えるべきは、「Amazon ECS にするべきか Amazon EKS のどちらにするか?」ではなく、「AWS Fargate にするべきか、Amazon EC2 にするべきか?」なのだと強調します。
Moneytree の Sergio 氏によるセッション
原のパートに続けて登壇頂いたのが、マネーツリー株式会社の Core Systems Engineering Manager である Sergio Arcos さんです。
マネーツリーは、2012年に日本で創業し、2013年から、銀行、カード、電子マネー、ポイント、証券を自動で一括管理する Personal FInancial Management (PFM) サービスである「Moneytree」を提供している Fintech スタートアップです。
まず初めに、マネーツリー社にとってのビジネス上の重要な課題は、、最高のお客様満足 (Customer Happiness) の実現、最も信頼性の高い (most trusted) Fintech プラットフォームであること、健康的で優れたカルチャーの組織、という3つを指摘しました。
次に技術上のチャレンジとして紹介したのが以下の4点です。
初めに、複数のプロダクトを、専門チームと協調しながら迅速にデリバリすること。これは我々のような規模のスタートアップにとっては、大変なチャレンジであると言えます。次に、先端技術の積極的な投資による 市場投入までの時間短縮です。我々は、もう数年間も、AWS re:Invent に参加するなどして、新しいテクノロジーの同行にアンテナを張っています。そして、技術的負債を産まないためにも、常にアプリケーションコードをクリーンに保つこと。我々はスピードを重視していますが、メンテナンス性も同様に重要と考えています。そして、これも極めて大事だと思っているのが、コンポーネントのアップグレードを容易にするということです。
こうした考えに立ち、創業から今に至るまで、様々な技術的変遷を辿ってきました。
初期のことは、TIme To Market が最重要課題でしたので、システムもモノリシックなアーキテクチャでした。それが大きく変わったのが AWS Lambda のリリースで、それ以降、マイクロサービス化を推進していくことになります。そして、2017年からは Amazon ECS および Amazon EC2 スポットフリートの活用を行いながら、現在では、AWS Fargate が標準のコンピュート基盤になっています。
なぜこのような変遷を辿り、コンテナに行き着いたのか。その理由を一言でいうならコンプライアンスだと Sergio さんは強調します。
まず始めに、(AWS、そしてコンテナの利用によって)、ハードウェアや OS に対するセキュリティレビューの手間を省くことができるようになります。
また、Docker エージェントのバージョンは、常に最新に保たれています。我々が何かを行う必要はありません。自社固有の VPC とカスタムセキュリティグループによる運用が可能であることも挙げられます。AWS Certificate Manager, Application Load Balancer, Amazon CloudWatch などの各種サービスも積極的に利用しています。
我々はAWSが提供しているものを、いかに活用するかという観点で考えるようにしていて、既に存在しているものを、わざわざ自分たちで再開発しなおすというようなことはしません。理由はシンプルで、我々はFintechの会社であり、それを開発することが本業ではないからです。
おわりに
今回の講演は、2019年の3月に開催した、AWS Startup Day 2019 Tokyo で行われたものです。このセッションを含む、全16本のビデオと講演資料にアクセスできる特設サイトを現在公開中です。登録頂ければどなたでも無料でご覧頂けます。ぜひご覧になってみてください。