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

CloudNative Days Summer 2024-北海道全域で利用される宅配システムの...

CloudNative Days Summer 2024-北海道全域で利用される宅配システムのクラウドネイティブ化

2024/6/15 に開催された、CloudNative Days Summer 2024でお話しした内容です

CO-OP Sapporo

June 18, 2024
Tweet

More Decks by CO-OP Sapporo

Other Decks in Technology

Transcript

  1. 生活協同組合コープさっぽろについて(※2024年3月現在) 設立年月日 1965年7月18日 組合員数 201万人(北海道総人口523万人の約38%) 出資金額 897億円 総事業高 3,186億円 職員数

    14,743名(契約職員・パートアルバイト含む) 店舗数 109店舗 移動販売車 94台(134市町村) 宅配物流センター 41センター 10デポ 車両1,300台 配食工場 6工場(札幌、函館、苫小牧、旭川、釧路、帯広) 生産工場 石狩食品工場、江別食品工場、はまなす食品、江別物流セン ター 生鮮センター(PC)、ドリームファクトリー(函館)
  2. 北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売

    宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/
  3. 自己紹介 木原 卓也 Kihara, Takuya / @tacck 生活協同組合コープさっぽろ デジタル推進本部システム企画部 (2021年4月入協)

    店舗チーム → アプリ・サイトチーム ゆるWeb勉強会@札幌 主催 Amplify Japan User Group 運営メンバー AWS Community Builder Since Q2 2021 Frontend Web and Mobile 好きなフィギュアスケートの技 スプレッド・イーグル
  4. 木原が話すこと(概要) コープさっぽろの Cloud Native へ向けた準備 • コープさっぽろの今までのシステム • 負債との戦い ◦

    コープさっぽろの内製開発 ◦ AWSへ全部持っていくプロジェクト 内製開発での Cloud Native 化への取組 (小笠原)
  5. コープさっぽろのシステム部の今まで • ホストでの業務運用が中心 (2023年に廃止済) • 90%のシステムが開発ベンダーへ外注 ◦ 開発ベンダーからの見積に対する精査ができない • システム部から現場部門へ提案することがあまりなかった

    ◦ 他の事業部からは何をしているか良く分からない部署 • 現場部門からシステム部へ異動してきたメンバーが多い ◦ 業務システムのスペシャリスト≠IT技術のスペシャリスト
  6. 長年の蓄積で負債の宝庫 • 古いマシン・古いOS→ AWS移行・作り直し • 複雑なネットワーク→ AWS移行時に整理 • 縦割りで乱立する基盤→ AWS移行時に整理

    • 高額なデータセンター代→ AWS移行時にスペック見直し • etc... コープさっぽろの今までのシステム デジタル推進本部で見直し
  7. 内製開発・内製エンジニア • 2020年からエンジニア採用を実施 ◦ PM・アプリケーションエンジニア・インフラエンジニア • 内製エンジニア + 外部委託エンジニアで開発 ◦

    手が足りないところを補いながら一体となって進める • 内製エンジニアとしての仕事 ◦ システム構築・開発 ◦ 各事業への研修参加 (店舗・宅配・移動販売 etc) ◦ 外注するシステム導入・更新の見積確認 ◦ コープさっぽろ内外への情報発信 ▪ 他部門からの相談が増加
  8. 内製開発とAWS Why 内製開発? • 事業を自分ごととして捉えて、システムに落とし込める。 • 「今」必要なものと「将来」必要なものを、 自分たちで選択しながら作っていくことができる。 Why AWS?

    • 内製開発を始めるに当たって、AWSに詳しい人材が集まった。 • AWS Communityに関わる人材が多く、情報を得やすい。 • どのように作るかの選択肢が、サービスとして用意されている。 ◦ Cloud Native にも、インスタンスベースにもできる。
  9. 選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon

    DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? • マネージドサービスを優先 • 疎結合な構成
  10. AWSにしたことでできるようになったこと Infrastructure as Code (IaC) • 環境設定書のコード化 ◦ インフラエンジニア: AWS

    CloudFormation ◦ アプリケーションエンジニア: AWS CDK • CI/CD によるデプロイの自動化 ◦ リリースサイクルの高速化・安定化 Observability - 可観測性 • コープさっぽろでは New Relic を採用 ◦ APIやDBクエリのレスポンス状況の把握 ◦ ログとの横串確認・ボトルネック調査
  11. リフト(&シフト) • オンプレのイメージをAmazon EC2(インスタンス)へ複製しそのまま稼働させる。 • 前後の連携システム間の調整が大きな作業。 連携ができれば全体への影響を最低限に押さえられる。 • 場合によってはOS・ミドルウェアアップグレードを伴う。その時はテストも念入りに実施。 リビルド

    • オンプレのシステムの要件を基に、新たにシステムを開発・改修を行う。 • ここは可能な限り Cloud Native 前提で進める。 リプレイス • 業務や連携内容自体を再整理し、別のシステムと統合、SaaSへの切り替え、を行う。 • 再整理の結果、業務自体が不要になることもある。 AWS移行の大まかな進め方
  12. • システム機能 ◦ POSの購買情報を集約し別システムへ配布するシステム • 方針 ◦ AWS Application Migration

    Service (AWS MGN) でEC2へ ◦ 前後の連携システムとの経路をEC2経由に切り替え • やったこと ◦ 連携システムとの調整 ▪ 利用経路の関係から一部の連携先に直接接続できないことが直前に判明。 急ぎ迂回経路を利用して対応。 ◦ 連携タイミングの整理 ▪ 深夜帯の閉塞時間が(歴史的経緯で)考慮されていないシステムだった。 バッチの起動時間や連携タイミングを整理して閉塞時間を調整。 店舗系システムでの事例 (木原担当分: リフト)
  13. • システム機能 ◦ お惣菜部門の製造計画・原料発注支援システム • 方針 ◦ サバクラからWebシステム化。サバクラからのベンダーさんが開発。 ◦ ECS

    / Lambda Functions / S3 / EventBridge で構成。 • やったこと ◦ 部門からの要求ヒアリング・要件定義(を引き継ぎ) ▪ Webシステム化するにあたってのアーキテクトの調整。 ◦ 全店舗導入(108店舗 2024年1月当時 ) ▪ 事業部門の担当者、ベンダーさんと連携して対応。 ▪ 担当者への教育、店舗や事業部門の繁忙期もあり、導入に時間はかかったが 何とか導入完了。 ▪ 現在はさらなる改善の対応中。 店舗系システムでの事例 (木原担当分: リビルド)
  14. • システム機能 ◦ 基幹システムからデータを一部取得しCSV出力するシステム • 方針 ◦ 機能整理して停止。 • やったこと

    ◦ 利用実態の把握 ▪ 加工したCSVを業務部門が利用する、というシステムだが、 別の仕組み (Amazon QuickSight) も導入しておりほぼ使われていなかった。 ◦ 対応 ▪ 一部必要なものだけ別システムへ移植し、システムクローズ。 ▪ 基幹システムからデータを受けるために使っていた商用DBのライセンス費用も 一緒にクローズ。 店舗系システムでの事例 (木原担当分: リプレイス)
  15. 総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定

    21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある....
  16. 総数:218システム(くらい) 全事業で利用されているシステム総数の状況 分類 総数 対象 AWS稼働中 189 AWSで稼働中システム AWS移行予 定

    21 オンプレからAWSへの移行予定数 SaaS 6 オンプレからSaaSへ移行して稼働 中 オンプレ 2 オンプレで稼働中 合計 218 コープさっぽろシステム合計 これ以外にも潜んでいるシステムがあるので、 総数は増える場合がある.... 今日はAWS稼働中の 宅配システムの話を します
  17. { "入協(入社)": "2021年6月", "名前": "小笠原 豊(@y_ogagaga)", "趣味": ["筋トレ", "模型", "DIY",

    "スノーボード",”仕事部屋”], "コミュニティ活動暦": [    "アジャイル札幌(初期メンバー)", "札幌Ruby会議実行委員"], "主な担当領域": [ "プロジェクト計画・推進・マネジメント", "Webアプリケーションの全体アーキテクチャ設計"], "やってきたこと": [ "トドックアプリ内製開発推進", "宅配注文サーバリプレースの計画と推進", "必要に応じて他事業の案件推進支援も担当しています"] } トドックアプリの開発チームリーダーを担当しています ご挨拶と自己紹介
  18. 北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売

    宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ はじめての方へ:https://www.sapporo.coop/about/beginner/
  19. 2018年-宅配ECシステムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる デジ推ゴール テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web

    スマホ サーバ サイド オンプレ ECはブラウ ザで注文でき るeトドック のみ 2018年 2019年 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 Myトドック (認証機能) 宅配注文 チャンネル チーム ミッション
  20. 2018年-宅配ECのシステム構成 組合員 オンプレ リクエスト レスポンス HTML生成 「eトドック/Myトドック(※1)」 2009年に構築 スマホ アプリ

    AWS 利用 「eトドック/Myトドック(※1)」 用サーバ ※1 Myトドックは認証機能 などを提供するシステム
  21. eトドック トドックア プリ(V1) オンプレ EC2(C#) 
 (宅配機能) 
 2019年9月-宅配ECシステムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる

    テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム Web スマホ サーバ サイド 2018年 2019年 2022年 2023年 2024年 iOS(Swift) Android (Kotlin) EC2(PHP) 
 (アプリ中継) 
 2020-2021年 Myトドック (認証機能) 宅配注文 チャンネル デジ推ゴール eトドック Myトドック (認証機能) オンプレ 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
  22. 2019年9月-宅配ECのシステム構成 組合員 オンプレ リクエスト レスポンス HTML生成 「eトドック/Myトドック」 スマホの 注文チャンネル が増えた

    iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 スマホアプリ用として オンプレにファイル サーバー構築 「eトドック/Myトドック (※1)」サーバ ※1 Myトドックは認証機能 を提供するシステム アプリ認証
  23. eトドック オンプレ EC2(C#) (宅配機能) 2020年2-7月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス

    テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 eトドック トドックアプ リ(V1) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) Myトドック (認証機能) Auth0導入 CIO の長谷川 がJOIN 内製エンジニアもJOIN EC2(C#) (宅配機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ オンプレ 宅配注文 チャンネル デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
  24. 2020年2-7月-宅配ECのシステム構成 組合員 オンプレ
 リクエスト レスポンス HTML生成 「eトドック/Myトドッ ク」 iOS(Swift) 


    Android 
 (Kotlin) 
 EC2 RDS MySQL 中継API 
 CMS機能 
 設定管理
 アプリ用サーバ オンプレ
 データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ
 基幹 システム群 「eトドック/Myトドック (※1)」サーバ ※1 Myトドックは認証機能 を提供するシステム Auth0 幅広いユーザー層を想定した、 Auth0利用でのログイン基盤リニューアル https://classmethod.jp/cases/coop-sapporo/
  25. eトドック オンプレ EC2(C#) (宅配機能) 2020年12月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス

    テ ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 eトドック トドックア プリ(V1) Auth0導入 ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) EC2(C#) (宅配機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ 宅配注文 チャンネル デジ推ゴール トドック サイト トドックサイト、こんなに変わったよ!! https://dx.sapporo.coop/n/ndeb1b74e9225 SPA (Vue.js) 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
  26. 2020年12月-宅配ECのシステム構成 組合員 トドックサイト (内製開発) EC専用の 
 商品データ連携 
 Auth0 CloudFront

    S3 Spreadsheet Google Apps Script コンテンツ 認証/認可 宅配API Call 認証/認可 認証・認可 
 iOS(Swift) Android (Kotlin) EC2 RDS MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ
 データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ
 基幹 システム群
  27. eトドック オンプレ 2021年3月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ シ ス テ ム

    Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web申込 組合員加入、宅配申込がWeb(ア プリはWebview)からできな かっ たのができるようになりました。 フロント:S3(Vue.js配置) バックエンド:Lambda(Node.js) お店で申し込む、紙で郵送、電話で依頼する必 要がありました iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) デジ推ゴール 基盤構築 基盤構築・店舗連動 ポイント利用促進 宅配機能強化 オールコープ利用 チーム ミッション
  28. 2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) iOS(Swift) Android (Kotlin) EC2 RDS

    MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 Auth0 宅配API Call 認証/認可 認証・認可 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web組合員・宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet t Google Apps Script 申込データ 最終的にSlackまで 連携されています
  29. eトドック オンプレ 2021年4月-宅配システムの様子 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ

    ム Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) ⭐2021年4月 
 全事業利用ができるアプリを高速 に開発するために内製開発へ切替 
 ・トドックアプリの内製開発 
 ・トドックアプリで組合員証表示 
 の2大プロジェクト発足 
 小笠原は6月に入協し、アプリ内製化の PMを担当しました。 
 デジ推ゴール これまで経験した開発プロジェクトの中で一番 炎 上していた やりがいのあるプロジェクトでした! チーム ミッション
  30. eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム

    Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) 2022年1〜3月-宅配システムの様子 トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet ⭐2022年1月 
 ・トドックアプリV2 リリース 
 ⭐2022年3月 
 ・電子組合員証リリース 
 デジ推ゴール チーム ミッション
  31. 2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) iOS(Swift) Android (Kotlin) EC2 RDS

    MySQL 中継API CMS機能 設定管理 アプリ用サーバ オンプレ データ連携 サーバ EC2 (API) EC2 (バッチ) RDS MySQL 基幹APIサーバ オンプレ 基幹 システム群 Auth0 宅配API Call 認証/認可 認証・認可 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web組合員・宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet t Google Apps Script 申込データ 最終的にSlackまで 連携されています
  32. 2021年3月-宅配ECのシステム構成 組合員 トドックサイト( 内製開 発) Auth0 宅配API Call 認証/認可 認証・認可

    CloudFront S3 Spreadsheet Google Apps Script 認証・認可 Web宅配申込( 内製開発) 認証・認可 CloudFron t S3 Lambda コンテンツ Spreadsheet Google Apps Script 申込データ オンプレ データ連携 サーバ EC2(API) EC2(バッチ) RDS MySQL 基幹APIサーバ 
 オンプレ 基幹 システム群 トドックアプリ( 内製開 発) 宅配API Call 認証・認可 設定管理
 CMS機能
 ➕
 iOS/Android (Flutter/Dart) 内製開発 スマちょこAPI 内製開発
  33. eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム

    Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) 2022年4月-宅配システムの様子 トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet ⭐2022年4月 「組合員がトドックアプリから全 事業でポイントを利用できるよう にする」大プロジェクト開始 (ポイント統合プロジェクト) https://dx.sapporo.coop/n/n3c6f2965512f デジ推ゴール チーム ミッション
  34. 2022年4月-宅配ECのシステム構成 組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ)

    RDS MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 
 Web宅配申込( 内製開発)
 認証・認可 
 CloudFrontS3 Lambda コンテンツ 
 Spreadsheet Google Apps Script 申込データ 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 トドックアプリ( 内製開発)
 ⭐このサーバは次の課題を抱えており、ここにポイント統合向けの機能追加するのは難しい 状況でした。 • スケールしないインフラ(フロント側刷新により利用者が増大しているが、サーバの性 能が厳しい状態)
  35. 2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム

    CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認
  36. 2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ (オンプレ) トドック アプリ Auth0 商品管理 システム

    CRM システム 宅配基幹 システム 受発注 システム 基幹バッチサーバ(Windows) 検証と 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 本人確認 内製開発

  37. 2022年6月-宅配ECのシステム構成 組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ)

    RDS MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 CloudFront S3 Spreadsheet Google Apps Script 認証・認可 
 Web宅配申込( 内製開発)
 認証・認可 
 CloudFrontS3 Lambda コンテンツ 
 Spreadsheet Google Apps Script 申込データ 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 トドックアプリ( 内製開発)
 ⭐ポイント統合プロジェクトから数ヶ月遅れること、宅配ECの心臓部で ある基幹APIサーバ(ほぼ宅配機能)のリプレースプロジェクトが開 始...! 【課題】 • スケールしないインフラ(フロント側刷新により利用者が増大しているが、サーバ性 能が厳しい状態) ◦ 必要に応じてAuroraを6〜9台、EC2を6〜12台に調整する運用を手動でやって おり人とインフラ費用がとても高い状況であった。 • アプリとサイトの認証・認可機能も兼ねており、このサーバがアクセスできなくなる とアプリそのものが利用できなくなる問題を抱えている。
  38. 組合員
 トドックサイト( 内製開発)
 オンプレ
 データ連携 
 サーバ
 EC2(API) EC2(バッチ) RDS

    MySQL 基幹APIサーバ 
 オンプレ
 基幹
 システム群 
 Auth0 宅配API Call 
 認証/認可 
 認証・認可 
 トドックアプリ( 内製開発)
 宅配API Call 
 認証・認可 
 認証・認可 
 設定管理
 CMS機能
 ➕
 iOS/Android 
 (Flutter/Dart) 
 内製開発
 スマちょこAPI 内製開発
 2023年4月-宅配ECのシステム構成
  39. 2023年4月-宅配ECのシステム構成 基幹API サーバ(Windows) データ連携サーバ トドック アプリ Auth0 商品管理 システム CRM

    システム 宅配基幹 システム 受発注 システム 売掛管理 システム 基幹バッチサーバ(Windows) 認可 Amazon Aurora MySQL ステージ・購買 履歴システム ポイント システム ポイントAPI ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤
  40. 選択の進め方 優先順位 アプリケーション データベース 高 AWS Lambda Amazon Aurora Amazon

    DynamoDB 中 Amazon ECS Amazon RDS どうしようも なければ Amazon EC2 Amazon EC2 スケールアウトしやすい構成か? • マネージドサービスを優先 • 疎結合な構成
  41. AWSにしたことでできるようになったこと Infrastructure as Code (IaC) • 環境設定書のコード化 ◦ インフラエンジニア: AWS

    CloudFormation ◦ アプリケーションエンジニア: AWS CDK • CI/CD によるデプロイの自動化 ◦ リリースサイクルの高速化・安定化 Observability - 可観測性 • コープさっぽろでは New Relic を採用 ◦ APIやDBクエリのレスポンス状況の把握 ◦ ログとの横串確認・ボトルネック調査
  42. 2023年9月-宅配ECのシステム構成 トドック アプリ・サイト Auth0 商品管理 システム CRM システム 宅配基幹 システム

    受発注 システム 売掛管理 システム ステージ・購買 履歴システム ポイント システム ポイントAPI Auth0 アクセストークン ステージAPI 基幹 システム 電子組合員証API 共通認証認可基盤 内製開発
 Amazon Aurora PostgreSQL Auth0公開鍵 検証と認可 宅配注文バッチサーバ Amazon ECS Amazon Fargate Amazon S3 宅配注文APIサーバ Amazon ECS Amazon Fargate Auth0 アクセストークン
  43. 2023年9月-宅配ECのシステム構成 S3 各種連携データ トドック アプリ サイト 宅配注文サーバ Auth0 組合員証番号 /本人確認

    商品情報 システム 組合員情報 宅配CRM 宅配受発注 購入上限金額情報 Amazon Aurora PostgreSQL Webカタログ 検索エンジン カタログ取り込みバッチ S3 カタログデータ S3 訳ありデータ RunCommand S3 連携データ バックアップ 宅配申込 組合員加入 ALB AWS WAF API Gateway S3 商品画像 宅配中継 Auth0 アクセストークン ECS Cluster DynamoDB Beanstalk認証Web 共通認証認可基盤 S3 画像変換元 データ Fargate(API Service) Container1 Container2 Fargate(バッチService) Container1 Container2 ECR ElastiCache for Redis デプロイ詳細は こちら スマちょこ API ポイント操作 API ステージ /購買/履 歴API 宅配ポイント 基幹システム これらもほぼAWS ヘ移行完了。 デジタル納品書
  44. 2023年9月-トドックアプリからみたバックエンド CRM 認証 Token(JWT) 宅配注文API トドックアプリ 組合員情報 Auth0 内製Webアプリ機能 ・組合員情報の同期機能

    ・サービス利用停止機能 ・スマちょこ利用時の本人確認機能 ・情報変更画面 共通認証認可基盤(Auth0 + 内製Webアプリケーション) 注文 Auth0発行の公 開鍵 認可 データ同期 ステージ/購買API 注文 Auth0発行の公 開鍵 認可 デジタル納品書API 注文 Auth0発行の公 開鍵 認可 ポイント操作API 注文 Auth0発行の公 開鍵 認可 スマちょこAPI 注文 Auth0発行の公 開鍵 認可 基幹システム 宅配機能と認証機能が 切り離されて耐障害性 が向上、インスタンス 型のサーバ消滅
  45. 内部への成果報告 本件に関する問い合わせ:デジタル推進本部 システム企画部 トドックアプリチーム 小笠原 豊(Slack@小笠原 豊 ) トドックアプリ向けの宅配注文システムを刷新し、宅配機能開発の促 進、AWS費用及びシステム運用作業を大幅削減

    旧システム(As-Is) ① AWS上にサーバを多く配置する必要があ り、費用が高額になっている ② システム構成が古いため、システムリリー ス、機能開発に多くの時間が必要となる システム費用が高額・運用時間が多い状況 システム 刷新 宅配関連のリリース が3回/月 から 5回/月に‼ 新システム(To-Be) ① AWS費用の大幅な削減を達成 ② 機能リリース促進、システム運用時間削減 を達成 システム費用を1/3に削減 システムリリース 時間が9時間/月 から 1時間/月に‼ AWS費用が $10,016 / 月(¥1,502,400)から $3,700 / 月(¥555,000/月) に‼
  46. eトドック オンプレ 組合員さんが「安心安全」で豊かな食生活を送ることができる テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 年間テーマ 基盤構築 シ ス テ ム

    Web スマホ サーバ サイド 2018年 2019年 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) 基盤構築・ 新アプリ ポイント利用促 進 宅配機能強化 オールコープ利用 2022年 2023年 2024年 2020-2021年 トドックア プリ(V1) Auth0 (認証) ECは eトドック のみ (PHP) Myトドック (認証機能) トドックア プリ(V1) Myトドック (認証機能) iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) オンプレ トドック サイト SPA (Vue.js) トドックアプ リ(V1) Auth0 (認証) トドック サイト Web宅配申込 iOS(Swift) Android (Kotlin) EC2(PHP) (アプリ中継) SPA (Vue.js) 宅配注文 チャンネル EC2(C#) (宅配機能) EC2(C#) (宅配機能) EC2(C#) (宅配機能) トドックアプ リ(V2) Auth0(認証) トドック サイト Web宅配申込 EC2(C#) (宅配機能) SPA (Vue.js) iOS/Android (Flutter/Dart ) Firebase AppSheet 2023年9月-宅配システムの様子 ⭐モバイルアプリ  ・フレームワーク : Flutter  ・開発言語: Dart  ・CI: GitHub Actions、CircleCI ⭐サーバ  ・インフラ: AWS Lambda or ECS  ・開発言語: Go言語(主流)、 Node.js  ・データベース : PostgreSQL、MySQL  ・CI: GitHub Actions、CircleCI ⭐Webフロントエンド  ・フレームワーク : Vue3 + TypeScript  ・開発言語: JavaScript  ・CI: GitHub Actions、CircleCI ⭐ツール  ・ソースコード管理 : GitHub  ・ドキュメント : Google Workspace  ・チャット: Slack デジ推ゴール チーム ミッション
  47. eトドック
 オンプレ
 EC2(C#) 
 (宅配機能) 
 現在利用している技術要素 組合員さんが「安心安全」で豊かな食生活を送ることができる 
 ゴール


    テクノロジーの力で200万人の組合員さんの買い物にわくわくする時間を増やしていく 
 ミッション
 年間テーマ
 基盤構築
 宅配注文
 チャンネル
 シ ス テ ム
 Web
 スマホ
 サーバ
 サイド
 2018年
 2019年
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 基盤構築・新アプリ 
 ポイント利用促進
 宅配機能強化
 オールコープ利用
 2022年
 2023年
 2024年
 2020-2021年
 トドックアプリ (V1)
 Auth0(認証)
 ECは
 eトドック
 のみ
 (PHP)
 Myトドック
 (認証機能)
 トドックアプリ (V1)
 Myトドック
 (認証機能)
 EC2(C#) 
 (宅配機能) 
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 オンプレ
 トドック
 サイト
 SPA
 (Vue.js) 
 トドックアプリ (V1)
 Auth0(認証)
 トドック
 サイト
 Web宅配申込
 EC2(C#) 
 (宅配機能) 
 iOS(Swift) 
 Android 
 (Kotlin) 
 EC2(PHP) 
 (アプリ中継) 
 SPA
 (Vue.js) 
 トドックアプリ(V2) 
 Auth0(認証)
 トドック
 サイト
 Web宅配申込
 EC2(C#) 
 (宅配機能) 
 SPA
 (Vue.js) 
 iOS/Android 
 (Flutter/Dart) 
 Firebase 
 AppSheet 
 ⭐モバイルアプリ  ・フレームワーク: Flutter  ・開発言語: Dart  ・CI: GitHub Actions、CircleCI ⭐サーバ  ・インフラ: AWS Lambda or ECS  ・開発言語: Go言語(主流)、Node.js  ・データベース: PostgreSQL、MySQL  ・CI: GitHub Actions、CircleCI ⭐Webフロントエンド  ・フレームワーク: Vue3 + TypeScript  ・開発言語: JavaScript  ・CI: GitHub Actions、CircleCI ⭐ツール  ・ソースコード管理: GitHub  ・ドキュメント: Google Workspace  ・コミュニケーション: Slack