アマゾン ウェブ サービス ジャパン スタートアップソリューションアーキテクト 塚田朗弘氏

アマゾン ウェブ サービス ジャパンは7月23日、Webアプリおよびモバイルアプリ開発に関する説明会を開催した。スタートアップソリューションアーキテクトの塚田朗弘氏は、Webアプリおよびモバイルアプリ開発に適した同社のサービスとして、「AWS Amplify」「AWS AppSync」を紹介した。

「AWS Amplify」は、Web/モバイルアプリのバックエンドを構築し、アプリと統合するためのライブラリ、UI コンポーネント、コマンドラインインタフェースを提供するサービス。認証、分析、オフラインのデータ同期など、必要な機能を選択するだけで、機能を強化するAWSのサービスを自動的にプロビジョニングして管理する。

「AWS Amplify」は、フロントエンドのアプリを開発するためのフレームワーク「Amplify Framework」、サーバレスなバックエンドを構築できるコマンドライン「Amplify CLI」、Webアプリを自動デプロイする「Amplify Console」から構成される。

「AWS Amplify」は認証、分析、オフラインのデータ同期など、必要な機能を選択するだけで、機能を強化するAWSのサービスを自動的にプロビジョニングして管理する。ライブラリとUIコンポーネントを用いて、これらの機能をアプリケーションに統合できる。

  • 「AWS Amplify」の構成要素

塚田氏は「AWS Amplify」の特徴として、「AWSの機能の詳細を知らなくても、やりたいことからサーバレスなバックエンドを構築してくれる」「開発者が開発に集中できる」「シンプルなコマンドでバックエンドを構築できる」の3点を挙げた。

  • 「AWS Amplify」でバックエンドを構築するためのコマンド

「AWS Amplify」はオフラインデータ、認証、解析、プッシュ通知、ボット、AR/VRなど、主要なAWSのサービスを利用している。その1つが、GraphQLを用いてアプリケーションが必要なデータを正確に取得できるようにするマネージドサービス「AWS AppSync」だ。

「AWS AppSync」を用いると、NoSQLデータストア、リレーショナルデータベース、HTTP API、AWS Lambdaを使用したカスタムデータソースなど、さまざまなデータソース上でリアルタイムの更新を必要とするアプリケーションを構築できる。

「AWS Amplify」「AWS AppSync」を活用した開発事例

tyotto CTO 伊藤哲志氏

続いて、tyotto CTOの伊藤哲志氏とクックパッド メディアプロダクト開発部部長/CookpadTV 取締役 CTOの渡辺慎也氏が、「AWS Amplify」「AWS AppSync」を活用したアプリ開発について説明した。

tyottoは「キャリア教育」「ICT」「コーチング」といった観点から事業を展開している。現在、自社運営の学習塾のサービスをアプリ化している。伊藤氏によると、開発に関して「アプリケーション・サーバの保守とモニタリングの必要性」「ステージング環境を常時稼働するコスト」「スケールできない構成」という課題を抱えていたという。

これらの課題を解決するため、コンテナの導入を検討したが、コンテナの起動数の制御やモニタリングの工数がかかりそうだということで、断念。その後、「AWS Amplify」「AWS AppSync」によってサーバレスを実現することで、これらによって上記の課題を解決できそうということがわかり、導入に踏み切ったそうだ。

tyottoでは「Amplify Framework」のJavaScriptフレームワークを用いることで、高速な開発を実現している。また、Amplifyのフレームワークはユーザー認証に必要な機能が一式提供しているほか、AWSサービスにアクセスするための認証情報を管理するため、安全に開発が行える。

また、伊藤氏は「Amplify Console」を用いたことで、構築の工数がほぼゼロだったことにも触れた。「AWS Amplify」「AWS AppSync」を活用することで、伊藤氏1人だけで半年でサーバレスに移行できたそうだ。

  • 従来のアーキテクチャ

  • 「AWS Amplify」「AWS AppSync」を導入した後のアーキテクチャ

クックパッド メディアプロダクト開発部部長/CookpadTV 取締役 CTO 渡辺慎也氏

一方、CookpadTV 取締役 CTO 渡辺慎也氏は、料理レシピサービス「クックパッド」の動画事業「cookpadLive」における「AWS AppSync」の活用状況を紹介した。「cookpadLive」は料理上手な有名人や料理家が料理している様子を生配信するアプリだ。アプリ上で、コメントやスタンプを投稿できる。

当初は、GoogleのFirebase Realtime Databaseを利用してコメントやハートスタンプを実装していたが、マネージドサービスを利用したかったという。その後、データの一元管理、サービスの信頼性やコントラビリティの確保、Infrastructure as Codeで一元管理、サポートの信頼性確保を実現するため、AWSに移行した。

「当時、Firebase Realtime Databaseは障害が起きていた。cookpadLiveにとって、コメントは重要なファクターであり、障害の発生は問題だった。また」と渡辺氏。

AWSに移行したことで、上記の課題は解決され、アプリケーション・エンジニアが「AWS AppSync」を使って機能を追加できるようになったという。

「cookpadLive」ではメッセージの送受信に「AWS AppSync」を活用している。なお、書き込みについてはフィルタリングを行うため、サーバを経由している。また、送信の効率化のためにバッファリングを導入している。バッファリングによって、メッセージ送信やファンアウト数の軽減、アプリの負荷軽減が可能になり、「AWS AppSync」導入後のサービス成長にも耐えている。