2011-09-09 26 views
0

トラフィックが多いので、いくつかのEC2インスタンスでWebアプリケーション(WordPressベース)を実行して拡張する予定です(AWSを初めて使用しています)。インスタンスは同じデータ(画像、ビデオなど)で作業する必要があります。Amazon EC2インスタンスの共有データ

私はS3をこの共有データのストレージとして使用することを考えています。

私の質問は以下のとおりです。

  • 私はS3を使用している場合は、私はS3から/にデータをアップロードしてもらうために自分のアプリケーションのための余分なコードを記述する必要がありますか?または、EC2インスタンスをS3にマウントする魔法の方法があります。その後、EC2インスタンスはS3にアクセスしてローカルストレージにアクセスできますか?

  • S3はWebサービス(ユーザーがファイルをアップロードしてS3にファイルをアップロードするのに時間がかかる)にアクセスするため、少し遅いと聞いたことがあります。共有データを格納するためのより良い方法はありますか?

Amazon EC2のスケーリングの機能に関するいくつかのドキュメントを読んだことがあります。しかし、共有データをどのように処理するかについては言及していません。どんな助けも高く評価されます。ありがとう。

答えて

0

S3バケットをEC2インスタンスに「マウント」するためのネイティブ機能はありませんが、S3ストレージを仮想ドライブまたはリポジトリとして利用できるようにするいくつかのサードパーティ製アプリケーションがあります。それらのほとんどは、予め設定された量の無料ストレージを提供し、大量の階層型課金メカニズム(Google for 'S3 storage interface')を提供しています。

APIを使用してS3を使用するコードを作成する場合でも、インターフェイスレイヤを使用する場合も、アプリとストレージの間には常に一定の遅延があります。それは物理学の事実であり、S3リポジトリはEC2クラスタにとってローカルではないため、遅延を排除するために何もできないため、「ローカル」ストレージアクセス速度を決して達成できません。

EC2インスタンスに対してローカルのであるEBSを使用することもできます.S3とは異なるプロパティを持ちます(たとえば、地域的にローカライズされたアクセスのエッジ位置を提供しません)が、これはEC2クラスター内にあり、ローカルストレージとしてマウントされているためです。

+0

ありがとうございました。しかし、EBSをストレージとして使用すると、フォルダの最大容量は1TB(1つのEBSのみをそのフォルダにマウントできます)です。また、他のインスタンスはこのEBSにアクセスできません。あなたは私の場合、人が何をするのが普通か知っていますか?いくつかのEC2インスタンスを使用しながら、膨大なデータをどのように保存しますか? – Jack

0

すべてのEC2インスタンスにS3バケットをマウントできます。すべてのファイルが同期されるように、2ウェイマウントです。取り付けを行うにはs3f3を使用できます。

私は、このガイドを使用し、かなり速い地雷を設定します。Mount S3 onto EC2

あなたは、速度を懸念している場合、あなたはAmazon ElastiCacheを使用したり、キャッシュドライブとしてEBSを使用することができます。

0

あなたの質問には、アプリケーションのアーキテクチャについての詳細はありませんが、いくつかの可能性があります。

まず、プロジェクト場合は、(ネイティブまたはNFSプロトコルを使用して)同時にサーバとクライアントとしてのメインノード上GlusterFSを使用することができ中規模で、RDS * マルチAZ * MySQLのDataBaseのインスタンスです。 CloudFrontとしてCDNとしてCDNリンカまたはW3TCプラグイン。また、ELBを前に置いてください。 この場合、私はカップルc3をお勧めします。少なくともインスタンスが大きい

第2に、プロジェクトが成長するときにインスタンスAMIを作成し、メインストレージと計算インスタンスに接続するだけの自動スケーリンググループを作成する必要があります。 (これらのやや小さなインスタンスから計算負荷を持ち上げることも考えてください)。さらに考慮すべき

もの:

関連する問題