Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ANAのドローン配送管理システムの開発と技術事例 ~サーバーレスでWebサイトにプッシュ通知を...

ANAのドローン配送管理システムの開発と技術事例 ~サーバーレスでWebサイトにプッシュ通知を送ろう~

2023年6月22日にAWS Dev Day 2023内で発表させていただきました技術・事例紹介につきまして、こちらでAWS様からの公開に先立ち共有させていただきます。
(2023/6/27)細かい体裁の不備を修正しました。

Joichiro Kaneko

June 26, 2023
Tweet

Other Decks in Programming

Transcript

  1. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. J U N E 2 3 , 2 0 2 3
  2. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. ANA のドローン配送管理システムの開発と技術事例 ~サーバーレスで Web サイトにプッシュ通知を送ろう~ 金子 丈一郎 C - 4 - 1 ANAシステムズ株式会社 デジタル・イノベーション部 デジタルデザインチーム ANAホールディングス株式会社 未来創造室 モビリティ事業創造部 ドローン事業グループ
  3. 自己紹介 3 ANA Holdings Inc. All rights reserved 金子 丈一郎

    (かねこ じょういちろう) • 入社: 2018 年 • 経歴: 入社後主に iOS アプリ・サーバーレスでの データ処理機能の内製開発や技術調査、 コールセンター向けシステムの運用等を経験。 現在は本セッションで取り扱うシステムの サーバーサイド処理及び 開発基盤・システム基盤の整備を主に担当。
  4. ANA ドローンプロジェクトについて 5 ANA Holdings Inc. All rights reserved 2016

    年 5 月よりプロジェクト立ち上げ。 2019 年以降、配送用ドローン運航の事業化に向け、各地で実証実験を重ねる。
  5. 本プロジェクトで開発しているシステムについて 6 ANA Holdings Inc. All rights reserved 課題① 配送注文する

    システムがない 課題② 配送管理する システムがない 課題③ 運航管理する システムがない 注文システムがないと 配送依頼を受けられない 配送管理システムがないと 荷物の動態管理ができない 運航管理システムがないと スケジューリングが困難 これらの課題を解決するシステムを開発
  6. 本プロジェクトで開発しているシステムについて 7 ANA Holdings Inc. All rights reserved 配送管理 運航管理

    ▪ 荷物の動態管理 ▪ 企業間の情報連携 ▪ 配送通知 ▪ 運航計画 ▪ 運航状況の管理 ▪ 実績集計 ▪ 機材管理 注文管理 ▪ 注文の受付 ▪ 受取人情報の管理 荷主様 ANA
  7. 開発手法について 9 ANA Holdings Inc. All rights reserved スクラム方式で 検証を短いスパンで重ね

    満足できる機能を運航者へ提供 運航要員として 自らオペレーションへ参加 デイリー スクラム 振り返り レビュー プランニング
  8. ドローン配送管理システムの開発において感じていること 10 ANA Holdings Inc. All rights reserved メリット デメリット

    • 自ら開発したものを使って運航し 得た感触をフィードバックできる • この機能が欲しいという イメージをそのまま プロダクトに投影できる • 必ずしもプロダクト開発 (設計・コーディング) だけに 集中できる訳ではない (ドローン運航の現地運航補助等 現場業務を求められることも ままある)
  9. Web プッシュ通知と iOS • 2015 年頃より Web プッシュ通知が 使えるようになって以降、 長らく

    Apple 端末では Web プッシュ通知が使えなかった • 2023 年 3 月 27 日に公開された iOS 16.4 より、 Web プッシュ通知が iOS でも解禁 (ただし条件多数) 12 ANA Holdings Inc. All rights reserved
  10. 配送用ドローン運航の業務 14 ANA Holdings Inc. All rights reserved • 荷物・バッテリー搭載

    • 機器・ルート点検 • 飛行状況監視 (速度・ルート・バッテリー残量等) • ドローン停止確認 • 荷物・バッテリー取り出し 配送依頼 準備 飛行 着陸後業務
  11. 19 ANA Holdings Inc. All rights reserved プッシュ通知の基本的なデータフロー • スマートフォン向けのプッシュ通知の場合

    プッシュ通知配信サービス Pub/Sub サービス 1. プッシュ通知の 宛先情報(トークン)を要求 2. トークンを発行 3. トークンを Pub/Sub サービスに連携 4. 必要な際プッシュ通知の送信を要求 5. プッシュ通知を スマートフォンの OS へ送信し、 アプリに振り分ける APNs
  12. 20 ANA Holdings Inc. All rights reserved プッシュ通知の基本的なデータフロー • Web

    ブラウザ向けのプッシュ通知の場合 プッシュ通知配信サービス Pub/Sub サービス 1. プッシュ通知の 宛先情報(トークン)を要求 2. トークンを発行 3. トークンを Pub/Sub サービスに連携 4. 必要な際プッシュ通知の送信を要求 5. プッシュ通知を ブラウザへ送信し、 Service Worker へ振り分ける Service Worker
  13. 21 ANA Holdings Inc. All rights reserved プッシュ通知の基本的なデータフロー • Web

    ブラウザ向けのプッシュ通知の場合 プッシュ通知配信サービス →BtoB 向けサービスを除くと、 現状の選択肢は自前で作るか FCM を使うかのみ Pub/Sub サービス 1. プッシュ通知の 宛先情報(トークン)を要求 2. トークンを発行 3. トークンを Pub/Sub サービスに連携 4. 必要な際プッシュ通知の送信を要求 5. プッシュ通知を ブラウザへ送信し、 Service Worker へ振り分ける Service Worker
  14. 22 ANA Holdings Inc. All rights reserved プッシュ通知の基本的なデータフロー • Web

    ブラウザ向けのプッシュ通知の場合 プッシュ通知配信サービス →BtoB 向けサービスを除くと、 現状の選択肢は自前で作るか FCM を使うかのみ Pub/Sub サービス 1. プッシュ通知の 宛先情報(トークン)を要求 2. トークンを発行 3. トークンを Pub/Sub サービスに連携 4. 必要な際プッシュ通知の送信を要求 5. プッシュ通知を ブラウザへ送信し、 Service Worker へ振り分ける Service Worker
  15. Amazon SNS vs Amazon Pinpoint • Pub/Sub サービスとして、 プッシュ通知を含む各種メッセージの配信を 目的としたサービス

    Amazon SNS • 運営するサービスを利用する顧客へ向け 広告等のマーケティングを行うことに 特化したサービス Amazon Pinpoint 24 ANA Holdings Inc. All rights reserved
  16. Amazon SNS vs Amazon Pinpoint 25 ANA Holdings Inc. All

    rights reserved Amazon SNS Amazon Pinpoint メリット - メッセージをトリガーとした AWS サービスとの連携がしやすい - 大量に使っても料金が安い - ユーザー属性に応じた メッセージの送信設定を 細かく行える - 開封率等の効果測定を実施可能 デメリット - メッセージ送信時に 複雑な要件がある場合面倒 (フィルタリング等) - 送信者リストの作成や メッセージ送信時の設定項目が 多岐に渡る - 大量に使うと料金が高い
  17. Amazon SNS vs Amazon Pinpoint 26 ANA Holdings Inc. All

    rights reserved Amazon SNS Amazon Pinpoint プッシュ通知の送信料金 - 100 万件までは無料 - 以降、100 万件あたり 0.5 ドル - 100 万件までは無料 - 以降、100 万件あたり 1 ドル + - (グループ指定での メッセージ送信の場合) MTA の 5,000 エンドポイントまでは無料 その後は 1,000 エンドポイント あたり 1.20 ドル ※MTA = プッシュ通知の場合 Amazon Pinpoint に登録した FCM のトークンを指す ※資料作成時点 (2023/5/31) の料金です
  18. 27 ANA Holdings Inc. All rights reserved Pub/Sub サービス Service

    Worker プッシュ通知配信サービス Amazon SNS 最終的な基本アーキテクチャ
  19. プッシュ通知に関わるデータフロー 29 ANA Holdings Inc. All rights reserved 1. FCM

    から受け取ったトークンを API で Lambda へ送信 2. トークンを SNS の PlatformEndpoint として登録 3. 同時に、リクエストに応じ、 SNS の Topic へも登録しておく (subscribe) プッシュ通知送信用のトークン登録時
  20. プッシュ通知に関わるデータフロー 30 ANA Holdings Inc. All rights reserved プッシュ通知時 1.

    プッシュ通知送信対象の 事象が起きた際、 SNS へプッシュ通知の送信を要求 (Publish) 2. FCM を経由し、 送信対象の利用者の端末へ プッシュ通知を送信
  21. 実際に導入して感じた効果 31 ANA Holdings Inc. All rights reserved 良かった点 悪かった点

    • PC・スマホ問わず プッシュ通知を 配信可能になった • タイトルを調整することで どんな情報が配信されたのか 分かりやすくなった • 1 クリックで通知に紐づく情報へ 遷移できるようになった • 通知の許可操作が煩雑 • 端末のライフサイクル管理が 面倒
  22. 実際に導入して感じた効果 36 ANA Holdings Inc. All rights reserved 良かった点 悪かった点

    • PC・スマホ問わず プッシュ通知を配信可能に なった • タイトルを調整することで どんな情報が配信されたのか 分かりやすくなった • 1 クリックで通知に紐づく情報へ 遷移できるようになった • 通知の許可操作が煩雑 • 端末のライフサイクル管理が 面倒
  23. 実際に導入して感じた効果 37 ANA Holdings Inc. All rights reserved 苦労した点 •

    簡易な仕組みを用いて導入した事例が調べても出てこず、 自分で手を動かさなければ本当に導入できるか分からなかった • Amazon SNS のトークン取り扱いフローが複雑 • フロントエンド側のトークン保存領域として Cookie を使用する場合工夫が必要 • (REST API でリクエストを受ける場合) ヘッダー「set-cookie」を単純に複数登録できない • プリフライトリクエストを受けるためのハンドラを 別途作成する必要がある
  24. 38 ANA Holdings Inc. All rights reserved Amazon API Gateway

    経由で クライアントが持っている情報を受領 クライアントが保有する SNS 関連の Arn が 提示されたか 共有された FCM トークンを SNS 上に新規登録する 提示された SNS 関連 の Arn が有効か 登録している FCM トークンと共有された FCM トークンに差異があればトークンを更新 変更のあった情報を更新して フロントエンドの Cookie へ登録する ※ SNS 関連の Arn は PlatformEndpointArn 及び SubscriptionArn を指す Yes No Yes No