これらすべてのクラウドホスティングサービスに頭を悩ませようとしているので、これはこの投稿へのフォローアップの質問です。
https://webmasters.stackexchange.com/questions/32273/scaling-a-cloud-based-ecommerce-site
私はブログとこれに出くわしました:
Amazon Elastic Block Store(EBS)は、AmazonEC2インスタンスで使用するためのブロックレベルのストレージボリュームを提供します。 Amazon EBSボリュームは、インスタンスの存続期間とは独立して存続するオフインスタンスストレージです。 Amazon Elastic Block Storeは、実行中のAmazon EC2インスタンスに接続して、インスタンス内のデバイスとして公開できる、可用性と信頼性の高いストレージボリュームを提供します。 Amazon EBSは、データベース、ファイルシステム、またはrawブロックレベルストレージへのアクセスを必要とするアプリケーションに特に適しています。
したがって、EC2をEBSに接続する必要があるように思われます。これで、あとは(EC2上の)データベースソフトウェアにEBS上のデータベースデータファイルの読み取り/書き込みを行うだけです。
AWSには非常に多くの製品があり、それらはすべて非常によく似ています。 Rackspaceと他のクラウドサーバーがどのように似ているかどうかわからない。
EC2の複数のインスタンスが同じEBSに対して読み取り/書き込みを行うことができる場合、私はまだあいまいです。または、EC2の各インスタンスに独自のEBSがあり、すべてのEBSの同期を維持するための他のメカニズム(EC2にインストールされたデータベースソフトウェアなど)がある場合。
また、eコマースプラットフォームは、PostGreSQL/MySQLデータベースを備えたSpree/Railsになります...誰かがさらに洞察を持っている場合に備えて...
ありがとう!
EBSボリュームは、一度に1つのEC2インスタンスでのみ使用できます。 EBSボリュームを1つのEC2インスタンスからデタッチして別のインスタンスにアタッチすることはできますが、同時に複数のEC2インスタンスにアタッチすることはできません。詳細については、Amazon EC2FAQを参照してください。たとえば、私が言及したことはここで答えられます: http://aws.Amazon.com/ec2/faqs/#Do_you_plan_to_support_multiple_instances_accessing_a_single_volume
データベースがMySQL、MS SQL、またはOracleの場合は、EC2とEBSを使用して独自のデータベースを作成するよりも、 RDSインスタンス を使用する方がはるかに優れています。 RDSは、DBサーバーのクラウドベースバージョンのように機能し、スケーラブルでフォールトトレラントなデータベースの構成と保守を大幅に簡素化します。基盤となるOSは完全に管理されているため、SSHで接続することはできませんが、通常のクライアントツールを使用してOSに接続し、データベースを管理できます。
EBSボリュームはブロックデバイスのようなものです。ほとんどのシステムとソフトウェアは、ブロックレベルのデバイスを共有する準備ができていません。 「実生活」では、2台以上のマシンに接続された1台のハードドライブに相当します。それを見たことがありますか? IBMメインフレームに取り組んで以来、私はそうしていません。また、マシン間で共有されるデータでプログラミングを行った場合でも、破損を防ぐためだけに多くのことが必要でした。共有する唯一の安全な方法は、読み取り専用モードで共有することでした。どのマシンが書き込みアクセスを取得したかをネゴシエートするための帯域外手段がありました。それでも、1人のライターがリーダーを混乱させないように注意深い構造が必要でした。おそらく非常にコーナーケースである特定のケースでは、共有ブロックデバイスで成功することは可能だと思いますが、私はそれを避けます。エンドユーザーが共有ボリュームで抱える煩わしさを考えると、AWSがEBSを共有モードで動作させるための労力を費やさない理由がわかります。
共有データベースが必要な場合は、そのための特別な(おそらく、高I/Oおよび/または10ギガビットネットワーク)インスタンスを構築し、必要なボリュームを与えて、他のインスタンスにサービスを提供します。冗長性が必要ですか?独自のボリュームを持つ別のゾーンまたはリージョンに別のボリュームをセットアップし、ネットワークを介したレプリケーションを構成します。
共有プレーンファイルが必要な場合は、NFSまたはSambaファイルサーバーとして実行されるインスタンスを使用する必要があると思います。
ファイルリポジトリが必要な場合は、同じことを行い(独自のボリュームを持つインスタンスと、おそらく別のリージョンのレプリカ)、お気に入りのリビジョンストレージソフトウェア(git、svn、hg、cvsなど)を実行します。