「ソーシャルアカウントでログインできる写真共有 iOS / Androidアプリを運用したい」というご要望があった場合に、上記のようなデザインパターンをご提案することがございます。ポイントはサーバーレスでスマホアプリを運用する点です。
注)サーバレスとはAWSが運用管理するマネージドサービスだけで構築するという意味合いです。
処理フローとしては、写真共有アプリからFacebookアカウントでログインして取得したトークンを① Cognitoに渡すことで、①がFacebookよりトークンの有効性をチェックし、 一時的にAWSリソースにアクセスするためのクレディンシャル(セキュリティ認証情報)が発行されるので、それを使って② S3に写真を投稿します。 写真が投稿されたイベントを③ Lambda関数がキャッチして、何がしかのポイントを付与するために④ DynamoDBに投稿ログを書き込むと同時に、⑤ SNSのトピックに写真が投稿された旨を登録することで、 ⑦ 写真共有アプリ利用者に一斉にPush通知されます。② S3は静的Webサーバとしても機能するので、アプリ利用者は通知バナーをタップすれば⑨ S3より投稿された写真を閲覧することができます。 この時、閲覧できる期間を制限することもできます。
また、アプリ利用者全員に通知するのではなく、知人だけに知らせたいという場合は、⑧ LINEアプリと連携してあらかじめ登録した特定のグループに写真を自動投稿することもできます。 または、⑤ SNSを⑥ Pinpointに置き換えて友だちという属性値を登録しておくことで、⑦ 友だちにだけ投稿した写真をPush通知することができます。 ⑥ Pinpointはこの他マーケティングに活かせる機能も手に入るので、この写真共有アプリのデザインパターンは応用範囲が広いと考えております。 応用例として例えば、⑨の位置にCloudFrontを配置すれば、動画ストリーミング配信とチャットが可能になりますので、 5Gのキラーコンテンツとも言われる動画コマースに応用できます。