customer_landing_page_graphics166x_pokemon_co

The Pokemon Company 遷移到 AWS 專用資料庫

2020

《Pokémon》於 1996 年在日本推出,現已成為全球最受歡迎的娛樂品牌之一。有數億各個年齡段的人喜歡玩 Pokémon Trading Card Game 和 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 系統中。由於我們要處理的資料非常複雜且龐大,因此資料庫可擴展性和可靠性對於提供出色的使用者體驗至關重要。」

自 2016 年推出 Pokémon GO 後,需要使用此系統的使用者數量在兩年內增加到超過 3 億。該公司決定遷移到全受管的解決方案,以騰出時間和資源來專注於戰略計劃。

開始 Python 教學
CustomerReferences_QuoteMark

借助 Amazon Aurora,我們將節點從 300 個縮減到了 30 個,並且不再為資料庫授權付費。我們每月的資料庫成本每月下降數万美元。」

Jeff Webb
The Pokémon Company International 開發經理

資料庫之戰

最初,Pokémon Trainer Club 由第三方 NoSQL 文件資料庫提供支援,該資料庫包含了超過 3 億個 Pokémon GO 使用者的所有使用者設定檔資料和變更日誌。資料庫碎片包含 Pokémon 物種的主資料庫、Trading Card Game 線上使用者資料以及來自組織當面遊戲群組的資料。Memcached 提供了對使用者工作階段資料的快速存取。該公司在 Amazon Elastic Compute Cloud (Amazon EC2) 上託管其資料庫和記憶體快取系統,並使用 Elastic Load Balancing 管理流量,以及將 Amazon Simple Storage Service ( Amazon S3) 用於物件儲存。Webb 指出:「我們之所以選擇以前的 NoSQL 資料庫是因為它具備快速查找功能。」「但是,我們發現要達到我們想要的速度,就需要維護許多索引和管理許多複雜的節點,一度超過 300 個。」

保持節點平穩執行是一項挑戰。當索引或資料庫節點不可用時,會增加延遲。如果 Memcached 節點發生故障,則使用者將根本無法登入。當主資料節點出現故障時,團隊必須丟棄所有內容以進行重建,這時系統需要在備份節點上執行。這些已存在多年的日常管理問題,由於 Pokémon GO 使用者的大量增加而加劇,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,以利用 RedisMemcached 的優勢。Redis 為新使用者安排任務佇列,以提示他們完成身份驗證後的任務,例如接受條款與條件。Memcached 可保持票證有效,以便新使用者加入時不會中斷現有使用者的工作階段。該團隊將全球組態和存留時間 (TTL) 資料遷移到 Amazon DynamoDB,這是一種鍵值資料庫,可大規模提供數毫秒延遲的效能。他們還將事件資料 (例如登入歷史記錄和使用者變更稽核記錄) 移至 Amazon S3。

降低成本、增加容量並實現零停機

他們首先遷移了非關係資料儲存,然後將使用者資料和資料庫碎片遷移到了 Amazon Aurora。該專案僅用了 9 個月時間便宣告完成。「我們花了最初的幾個月來建立使用案例和進行壓力測試,」Webb 說。「然後,我們關聯所有資料並解構 JSON 資料。我們完成了遷移工作,而且我們的身份驗證程序沒有停機,考慮到每秒來自世界各地的 300 個人登入到 Pokémon Trainer Club,這非常了不起。」

自遷移以來,TPCi 大幅減少了在資料庫上花費的時間和金錢。「借助 Amazon Aurora,我們將節點從 300 個縮減到了 30 個,並且不再為資料庫授權付費,」Webb 說。「我們每月的資料庫成本每月下降數万美元。最重要的是,在遷移之前的六個月中,我們遭遇 168 小時的停機時間或效能下降問題。但遷移後,停機時間為零。

遷移還帶來了其他好處。Webb 說:「使用 Amazon DynamoDB 中的內建 TTL 設定,我們可以追蹤使用者何時超過最大登入嘗試次數,並拒絕其進入。」「結果是,機器人登入嘗試次數減少了 90%,這為合法使用者騰出了系統資源,並減少了我們過度擴展的需求。」

利用全受管的 Amazon ElastiCache 服務大幅減少了管理 Memcached 節點的開銷。儲存在叢集中的使用者工作階段資料和票證狀態可加快身份驗證過程,並且無需使用者維持與單個伺服器的連線。

減少花費在資料庫管理上的時間為創新騰出了時間。該公司計劃使用無伺服器運算、容器和微型服務,以提高效率和效能。隨著其服務的不斷改進,TPCi 使全球數以百萬計的人能夠隨需在 Pokémon 世界中遊玩。

若想進一步了解相關資訊,請瀏覽 aws.amazon.com/gametech/databases


關於 Pokémon Company International

Pokémon Company International 是日本 Pokémon Company 的子公司,負責管理亞洲以外的財產,並負責品牌管理、Pokémon Trading Card Game、家庭娛樂業務以及 Pokémon 官方網站。

AWS 的優勢

  • 每月降低數萬美元的成本
  • 節點數從 300 減少到 30
  • 減少 90% 的機器人登入嘗試
  • 消除資料庫授權成本
  • 遷移後消除停機或效能下降問題
  • 每秒處理 300 次登入

使用的 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 雲端之旅。