開発ツール/プラットフォーム 開発ツール/プラットフォーム記事一覧へ

[事例ニュース]

「AWS Amplifyなら新規モバイルWebアプリを高速に作れる」―AWSジャパンが事例を紹介

2019年7月23日(火)日川 佳三(IT Leaders編集部)

アマゾンウェブサービスジャパンは2019年7月23日、会見を開き、モバイルWebアプリケーションを迅速に開発するためのサービス「AWS Amplify」の事例を2件紹介した。学習支援アプリを開発しているtyottoと、料理動画アプリを開発しているCookpadTVが登壇し、AWS Amplifyの活用のポイントを説明した。

 AWS Amplifyは、モバイルWebアプリケーションを迅速に開発して運用できるようにするサービスである(図1)。バックエンド機能を構築するコマンド「Amplify CLI」、バックエンド機能のAPIをクライアントから簡単に使うためのJavaScriptライブラリ「Amplify Framework」、Webアプリのデプロイを自動化する管理コンソール「Amplify Console」で構成する。

図1:AWS Amplifyの概要。サーバー構築コマンド、APIを簡単に利用するためのクライアント開発用ライブラリ、デプロイのための管理コンソール、で構成する(出典:アマゾンウェブサービスジャパン)図1:AWS Amplifyの概要。サーバー構築コマンド、APIを簡単に利用するためのクライアント開発用ライブラリ、デプロイのための管理コンソール、で構成する(出典:アマゾンウェブサービスジャパン)
拡大画像表示

 例えば、Amplify CLIを使うと、AWSの詳細な機能を知らなくても、やりたいことを実現するバックエンド機能をサーバーレス型で構築できる。GraphQLでデータにアクセスするゲートウェイのAWS AppSyncや、ユーザー認証のAWS Cognitoなど、各種のバックエンド機能をコマンド操作で構築できる。

 特に、AWS AppSyncは、モバイルWebアプリケーションでよく使われる、データアクセス用途のバックエンド機能である。GraphQLと呼ぶ問い合わせ言語を使ってデータにアクセスするゲートウェイ機能を提供する。クライアントアプリケーションはAWS AppSyncに対してGraphQLでアクセスするだけでよく、バックエンドのデータベースを隠ぺいできる。

 AWS Amplifyの背景には、Webアプリケーションを構築して運用するためには、フロントエンド画面やロジックの開発だけでなく、サーバーの構築やログ監視、性能の管理といった作業が必要になるという状況がある。こうした、アプリケーション開発者がやりたくない作業をやらずに済むようにAWS Amplifyを用意している。

サーバーレスに移行したtyotto、データアクセスのオートスケールを評価

写真1:tyottoでCTOを務める伊藤哲志氏写真1:tyottoでCTOを務める伊藤哲志氏
拡大画像表示

 AWS Amplifyの事例の1社として、スタートアップ企業のtyotto(ちょっと)でCTOを務める伊藤哲志氏(写真1)が登壇した。tyottoは、学習塾の運営(個人指導、高校生が対象)や学習支援アプリケーションの開発などを手がけている。

 同社は、既存システムをAWS Amplifyによるサーバーレス型のシステムに移行中である。伊藤氏が1人で約半年かけて移行している。新システムは2019年7月末に稼働を開始する。「新規アプリを高速にさくっと作るなら、AWS Amplifyを使わない手はない」(伊藤氏)と評価している。

 移行前のシステムは、WebアプリケーションサーバーをAmazon EC2で動作させた基本的な構成をとっていた。アプリケーションサーバーの保守と監視が必須であり、開発用のステージング環境の維持にもコストがかかる。処理負荷が高まっても、スケール(拡張)できない。システムを改善するためにコンテナ化を検討したが、コンテナ化してもコンテナ起動数の管理や監視などが必要になる。

 その後、AWS Amplifyを用いたサーバーレス型のシステム構築を知り、導入を決めた。AWS Amplifyによって、モバイルWebアプリ開発のベストプラクティスを踏襲できた。さらに、AWS AppSyncなら、処理負荷に応じて自動でスケールできる点が大きい。また、コードをGitに登録するだけでデプロイできるので、サーバーの構築工数をほぼゼロにできたという。

Firebase DBからAWS AppSyncに移行したCookpadTV

写真2:CookpadTVで取締役CTOを務める渡辺慎也氏写真2:CookpadTVで取締役CTOを務める渡辺慎也氏
拡大画像表示

 もう1つのAWS Amplifyの事例として、料理動画事業を手がけるCookpadTVで取締役CTOを務める渡辺慎也氏(写真2)が登壇した。有名人やプロと一緒に料理ができる料理動画アプリ「cookpadLive」のコメント機能のデータベースを、Googleの「Firebase Realtime Database」を用いたシステムからAWS AppSyncに移行した。

 Firebaseを使い始めた当初は、まだAWS AppSyncのサービスはAWSのアジア太平洋地域(東京)では使えなかった。これをAWS AppSyncに移行した。移行の理由は、データをAWSとFirebaseに分散させたくなかったことや、Firebaseでは障害が頻ぱんに起こっていたこと、AWSの他のリソースと合わせてコードベースで一元管理したかったこと、などである。

 cookpadLiveでは、コメントの書き込みについては、いったんサーバーを介してからAWS AppSyncに渡す。これにより、NGコメントをフィルタリングしたり、バッファリングして負荷を減らしたりする。一方、コメントの読み出しについては、サーバーを介さずにAWS AppSyncから直接送信する。

 cookpadLiveでは、アプリから送信するメッセージを軽減する対策としてバッファリングが必要。某声優が出演した回では47分間の放送で好感を意図するハート機能が約150万回送られた。単純計算で、平均して1秒あたり532回のメッセージ送信リクエストになる。バッファリングによって、メッセージ送信にともなう負荷を軽減した。また、複数メッセージをまとめて送ることで負荷を軽減した。

関連記事

Special

-PR-

「AWS Amplifyなら新規モバイルWebアプリを高速に作れる」―AWSジャパンが事例を紹介アマゾンウェブサービスジャパンは2019年7月23日、会見を開き、モバイルWebアプリケーションを迅速に開発するためのサービス「AWS Amplify」の事例を2件紹介した。学習支援アプリを開発しているtyottoと、料理動画アプリを開発しているCookpadTVが登壇し、AWS Amplifyの活用のポイントを説明した。

PAGE TOP