降低每月成本
達數萬美元
300 至 30
90%
資料庫授權
無停機時間
概觀
《Pokémon》於 1996 年在日本推出,現已成為全球最受歡迎的娛樂品牌之一。所有年齡段的人(數億人)都可以透過 Pokémon 集換卡遊戲和 Pokémon GO 手機遊戲來訓練和與 Pokémon 生物對抗。
在華盛頓州的貝爾維尤,PokémonCompany International (TPCi) 的工程師負責確保亞洲以外的 Pokémon 粉絲可以透過功能齊全的使用者帳戶來追蹤自己的成就。該解決方案稱為 Pokémon Trainer Club,其不僅必須在「教練」想要登入的任何時候提供無縫體驗且還必須遵守《兒童線上隱私權保護法》和《一般資料保護條例》。
TPCI 開發經理 Jeff Webb 說:「我們的使用者設定檔系統主要是兩組資料:Pokémon GO 的使用者和 Pokémon 集換卡遊戲的使用者。「來自不同遊戲類型的使用者設定檔需要不同的流程和維護,但它們都存放 Pokémon Trainer Club 系統中。由於我們要處理的資料非常複雜且龐大,因此資料庫可擴展性和可靠性對於提供出色的使用者體驗至關重要。」
機會|資料庫之戰
最初,Pokémon Trainer Club 由第三方 NoSQL 文件資料庫提供支援,該資料庫包含了超過 3 億個 Pokémon GO 使用者的所有使用者設定檔資料和變更日誌。數據庫碎片包含 Pokémon 生物的主資料庫、集換卡遊戲線上使用者資料以及來自面對面「有組織遊戲」群組的資料。Memcached 提供了對使用者工作階段資料的快速存取。該公司在 Amazon Elastic Compute Cloud (Amazon EC2) 上託管其資料庫和記憶體快取系統,並使用 Elastic Load Balancing 管理流量,以及將 Amazon Simple Storage Service ( Amazon S3) 用於物件儲存。Webb 指出:「我們之前選擇了 NoSQL 資料庫,是因為它提供快速查詢。但是,我們發現達到我們想要的速度需要維持許多指數並管理許多複雜的節點 - 一次超過 300 個。」
保持節點平穩執行是一項挑戰。當索引或資料庫節點無法使用時,它會增加延遲。如果 Memcached 節點出現故障,則使用者根本無法登入。當主要資料節點發生故障時,團隊必須捨棄所有資料以重建它們,而系統在備份節點上運作。經過多年形成的日常管理問題由於大量湧入的 PokémonGO 使用者而加劇,TPCI 決定遷移到 Amazon Web Services (AWS) 以取得其全受管的資料庫服務。
Webb 回憶道:「我們對 Amazon EC2、Elastic Load Balancing 和 Amazon S3 的效能和可靠性感到滿意。」「這就是我們決定調查 AWS 受管資料庫服務的原因。」 該團隊進行了廣泛的測試,以找到滿足其安全性、規模、效能和彈性需求的解決方案,最終選擇了 Amazon Aurora with PostgreSQL compatibility。「由於身分驗證請求佔據了大部分的 TPCI 流量,因此我們選擇 Amazon Aurora PostgreSQL 的企業級安全功能,包括靜態加密和傳輸中加密,以及在多區域環境中的可靠性。」
該團隊還決定將使用者快取移至 Amazon ElastiCache,以利用 Redis 和 Memcached 的優勢。Redis 為新使用者安排任務佇列,以提示他們完成身份驗證後的任務,例如接受條款與條件。Memcached 可保持票證有效,以便新使用者加入時不會中斷現有使用者的工作階段。該團隊將全球組態和存留時間 (TTL) 資料遷移到 Amazon DynamoDB,這是一種鍵值資料庫,可大規模提供數毫秒延遲的效能。他們還將事件資料 (例如登入歷史記錄和使用者變更稽核記錄) 移至 Amazon S3。
借助 Amazon Aurora,我們將節點從 300 個縮減到了 30 個,並且不再為資料庫授權付費。我們的每月資料庫成本每月下降了數萬美元。」
Jeff Webb
The Pokémon Company International 開發經理
成果 | 降低成本、增加容量並實現零停機
他們首先遷移了非關係資料儲存,然後將使用者資料和資料庫碎片遷移到了 Amazon Aurora。該專案僅用時九個月。Webb 表示:「我們花了前幾個月的時間建立使用案例和壓力測試。「然後我們將所有資料和解構的 JSON 資料建立了關係。我們在驗證過程中沒有停機時間的情況下完成遷移,考慮到每秒有 300 人從世界各地登入 Pokémon Trainer Club,這一點非常出色。」
自遷移以來,TPCI 大大減少了花在資料庫上的時間和資金。Webb 表示:「借助 Amazon Aurora,我們將節點從 300 個縮減到了 30 個,並且不再為資料庫授權付費。」「我們每月的資料庫成本每月下降了數萬美元。最重要的是,在遷移前的六個月內,我們有 168 小時的停機時間或效能降低。從那時起,這些時間全部歸零。」
遷移也提供了其他優勢。Webb 表示:「使用 Amazon DynamoDB 中的內建 TTL 設定,我們可以追蹤使用者何時超過最大登入嘗試閾值並拒絕輸入。」「結果是機器人登入嘗試減少了 90%,從而為合法使用者釋放了系統資源,並減少了我們過度規模的需求。」
充分利用全受管的 Amazon ElastiCache 服務,可大幅降低管理 Memcached 節點的額外負荷。儲存在叢集中的使用者工作階段資料和票務狀態可加速驗證程序,並且不需要使用者維持與單一伺服器的連線。
減少管理資料庫的時間,可騰出時間進行創新。公司計劃使用無伺服器運算、容器和微型服務,以獲得更高的效率和效能。隨著其服務的不斷提高,TPCI 使全球數百萬人能夠隨需享受 Pokémon 宇宙。
若想進一步了解相關資訊,請瀏覽 thinkwithwp.com/gametech/databases。
The Pokémon Company International 簡介
使用的 AWS 服務
Amazon Aurora
Amazon Aurora 是專為雲端建立的 MySQL 和 PostgreSQL 相容關聯式資料庫,結合了傳統企業資料庫的效能和可用性,以及開放原始碼資料庫的簡單與經濟實惠優勢。
Amazon ElastiCache
Amazon ElastiCache 可讓您在雲端無縫設定、執行和擴展熱門開放原始碼相容的記憶體內資料存放區。從高輸送量和低延遲記憶體內資料存放區擷取資料,可建立資料密集型應用程式或大幅提高現有資料庫的效能。Amazon ElastiCache 是快取、工作階段存放區、遊戲、地理空間服務、即時分析和佇列之類的即時使用案例的絕佳選擇。
Amazon DynamoDB
Amazon DynamoDB 是一種鍵值和文件資料庫,可在任何規模下達到不到 10 毫秒的效能。它是全受管、多區域、多主機的耐用資料庫,內建安全性、備份和還原以及記憶體內快取,以供網際網路規模的應用程式使用。
Amazon S3
Amazon Simple Storage Service (Amazon S3) 物件儲存服務提供領先業界的可擴展性、資料可用性、安全性及效能。這表示所有規模和產業的客戶在種使用案例中,都可利用此服務來存放和保護任意數量的資料,例如網站、行動應用程式、備份和還原、存檔、企業應用程式、IoT 裝置及大數據分析。
探索資料如何推動轉型
更多遊戲客戶案例
開始使用
各行各業各種規模的組織每天都在使用 AWS 來變革其業務和履行其使命。聯絡我們的專家,立即開始您的專屬 AWS 雲端之旅。