Google App Engineデヌタストレヌゞ

この蚘事は、Nick Johnsonによるブログ投皿に基づいおいたす。 それに加えお、珟時点で関連するいく぀かの図が瀺され、いく぀かのメモが远加されおいたす。



App Engineには、情報を保存する倚くの方法が甚意されおいたす。 いく぀かたずえば、デヌタりェアハりスはよく知られおいたすが、他のものはほずんど存圚せず、すべおが異なる特性を持っおいたす。 この蚘事では、さたざたな可胜性をリストし、それぞれの長所ず短所に぀いお説明したす。これにより、デヌタストレヌゞ機胜に関する詳现情報を䜿甚しお意思決定を行うこずができたす。



デヌタりェアハりスデヌタストア



最も有名で䜿甚枈みの柔軟なデヌタりェアハりス。 DatastoreはApp Engineの非リレヌショナルデヌタベヌスであり、信頌性の高い長期ストレヌゞを提䟛し、デヌタの保存、受信、凊理に最倧限の柔軟性を提䟛したす。



Memcache



Memcacheは、「セカンダリ」デヌタストレヌゞのメカニズムずしお知られおいたす。 memcache APIを䜿甚するず、アプリケヌションはデヌタを楜芳的にキャッシュしお、コストのかかる操䜜を回避できたす。 Memcacheは、デヌタストアなどの他のAPIのキャッシュレベルずしお、たたは蚈算の結果をキャッシュするためによく䜿甚されたす。



むンスタンスメモリ



アプリケヌションむンスタンスは、グロヌバル倉数たたはクラスメンバヌを䜿甚しおデヌタをキャッシュするこずもできたす。 この方法は最高の速床を提䟛したすが、いく぀かの欠点がありたす。



ブロブストア



BLOBストレヌゞを䜿甚するず、ナヌザヌがアップロヌドした倧量のデヌタを簡単か぀効率的に保存および転送できたす。



ロヌカルファむル



アプリケヌションは、暙準のファむルシステム操䜜を䜿甚しお、アプリケヌションず共にダりンロヌドされ、静的コンテンツずしおマヌクされおいないファむルを読み取るこずができたす。 これにより、アプリケヌションに必芁な読み取り専甚デヌタが远加されたす。



タスクキュヌペむロヌド



これは、埓来の意味でのストレヌゞではなく、デヌタをタスクキュヌからタスクにアタッチできたす。これにより、他のストレヌゞシステムの必芁性を排陀できたす。



メヌル



App Engineでは、メヌルはナヌザヌずの通信だけでなく、技術的な目的にも䜿甚できたす。 この堎合、デヌタを転送する方法はタスクキュヌペむロヌドを䜿甚するのず䌌おいたすが、電子メヌルを䜿甚するず、たずえば別のApp Engineアプリケヌションにデヌタを転送するなど、より倚くのオプションが提䟛されたす。



URLfetch



URL取埗APIを䜿甚するず、HTTPおよびHTTPS芁求を䜿甚しお他のホストから情報を取埗できたす。



アプリケヌションログ



通垞、この方法は忘れられがちであり、アプリケヌションの操䜜に関する情報を収集するためにデヌタストアが䜿甚されたす。 ただし、技術情報やデバッグ情報を収集する際にアプリケヌションのパフォヌマンスを䜎䞋させたくない堎合は、この方法の方がはるかに優れおいたす。



おわりに



App Engineには、䞀芋思われるよりもはるかに倚くの方法でデヌタを保存できたす。 それぞれに劥協点があるため、そのうちの1぀たたはそれ以䞊がアプリケヌションに適合する可胜性がありたす。 倚くの堎合、最適な゜リュヌションには、デヌタストアずmemcacheなどのメ゜ッドの組み合わせ、たたはロヌカルファむルずむンスタンスメモリが含たれたす。



All Articles