3

クライアント(モバイルデバイス)が5MB以上のサイズのファイルをサーバーコンポーネントに送信して処理する必要があるアプリケーションを開発しています。次の点についてアドバイスをお願いします。

Backend-as-a-Service(BaaS)プラットフォームを独自のデータストレージ(AWSの特定のケースでホストされている)と組み合わせる方法はありますか?基本的に、クライアントからのファイルをBaaSサーバーに保存するのではなく、クラウド内の独自のデータベースに直接送信することをお勧めします。
つまり、BaaSプラットフォームまたはデータストレージ機能のアンバンドリング/バイパスを可能にするソリューションが必要です。これにより、BaaSを残りの機能(クライアント認証、REST APIなど)でのみ使用できるようになります。
EC2には、ファイルのメイン処理部分に必要な独自のサーバーがあり、アプリケーションを短時間で開始できる便利なBaaSプラットフォームのみが必要です。BaaSプラットフォーム自体のデータストレージからEC2サーバーにファイルをプルすると、ほとんどの場合、全体的なレイテンシのオーバーヘッドと追加の帯域幅コストが発生します。

4

1 に答える 1

1

アプリを作成しているときに、同様のジレンマに直面しました。私の場合、ユーザーがアップロードした写真をどこかにアップロードして保存する必要があり、自分でバックエンドを作成したくありませんでした。そこで、Amazon S3を使用してユーザーがアップロードした写真を保存することにし、MySQLバックエンドを使用するよりも柔軟性と使いやすさが向上したSimpleDBを使用しました。さて、明らかに、SimpleDBはサービスとしてのバックエンドプラットフォームではありませんが、私はあなたと同じ便利さを探していました。

つまり、私が提案しているのは、Parse(優れたフリーミアムモデルを備えている)、CloudMine(別の優れたサービスですが、フリーミアムモデルには厳しい制限があります。つまり月額500ユーザーのみ)のようなサービスとしてのバックエンドプラットフォームを使用することです。 )またはKinvey(これは最初のBaaSプラットフォームとして市場に出回っていますが、それについての情報はあまりありませんが、一見の価値があります)。また、データストレージにはS3を使用してください。このようにして、前述のようにクライアント認証、REST APIなどにBaaSを使用でき、S3を引き続き使用できます。あなたがする必要があるのは、どのオブジェクトがどのユーザーに属しているかを簡単に識別できるように、S3バケットとオブジェクトに適切な命名スキームを作成することです。これはプレフィックスベースの命名スキームを使用して簡単に行うことができます(S3は提供していません)バケットにサブフォルダーを作成する機能)。これで、クライアント情報を取得する必要があるときはいつでも、クライアント認証された詳細を使用してBaaSに電話をかけることができ、データストレージにアクセスする必要があるときはいつでも、AWSが提供するAndroidSDKを使用してS3に電話をかけてオブジェクトを取得できます。その特定のユーザーに属します。EC2を使用してこれらのファイルを処理することを計画しているので、これらのファイルをS3からEC2に転送しても、余分な帯域幅は必要ありません(ここでは調べていないので間違っているかもしれませんが、AWS内でデータを転送したことを覚えている限りです無料)。

他にご不明な点がありましたらお知らせください。

于 2012-08-18T01:31:01.553 に答える