質問

初めてAWSの実験をしました。 EC2インスタンスを実行していて、MySQLデータベースを保持するためにElastic Block Store(EBS)をマウントしました。

WebアプリケーションファイルもEBSに配置するのは理にかなっていますか、それとも通常のEC2ファイルシステムに展開するだけですか?

役に立ちましたか?

解決

あなたがあなたのウェブアプリケーションファイルを言うとき、私はあなたが正確に何を参照しているかわかりません。

デプロイされたコードを参照している場合、おそらくEBSを使用する意味はありません。必要なことは、前提条件でAMIを作成し、そのAMIのインスタンスを作成して最新のコードを展開するスクリプトを作成することです。このプロセスを自動化してテストすることを強くお勧めします。手動でどこかに変更しなければならない設定を忘れがちだからです。

実行中のアプリケーションによって変更されたデータファイルを保存している場合、EBSが意味をなす場合があります。これがユーザーがアップロードした画像などに似ている場合は、S3がはるかに単純なモデルを提供していることに気付くでしょう。

EBSは、データベース、luceneインデックス、ファイルベースのCMS、SVNリポジトリ、またはそれに類似したものに適しています。

他のヒント

EBSは永続的なストレージを提供するため、EC2インスタンスに障害が発生してもファイルは存在し続けます。どうやらIOパフォーマンスが向上しているようですが、確認するためにテストします。

ファイルが頻繁に変更される場合(DBのように)、それらをS3(または他の場所)に同期し続けたくない場合は、EBSが良い方法です。頻繁に変更を加えず、必要に応じて手動で(またはスクリプトで)ファイルを同期できる場合は、S3に保存します。シャットダウンする必要がある場合、または何らかの理由でインスタンスを失う場合は、新しいインスタンスを起動するときにそれらを単にプルダウンできます。 これはまた、コストを気にすることを前提としています。コストが問題にならない場合、EBSの使用はそれほど複雑ではありません。 DBとWebファイルに個別のEBSを使用する予定があるかどうかはわかりませんが、EBSを1つだけ使用する予定で、Webファイル用に十分な空きスペースがある場合は、EBSの複雑さは軽減されます。 前述のとおり、パフォーマンスが心配な場合は、特定のアプリをテストすることをお勧めします。

私たちのアプローチは、ソース管理からコードの最新かつ最高のバージョンを取得するスクリプトをAMIに事前展開することです。これにより、新しいインスタンスをすばやく起動したり、実行中のすべてのインスタンスを更新したりすることが非常に簡単になります(一度に1つの負荷分散ローテーションからそれらを取り出し、スクリプトを実行し、ローテーションに戻します)。

更新:

行間を読むと、別のEBSボリュームをインスタンスストアでバックアップされたインスタンスにマウントしているように見えます。 AWSは最近、古いインスタンスストアのインスタンスと比較して、多くの利点を備えたEBSバックアップインスタンスを導入しました。ただし、MySQLデータは別のEBSパーティションにマウントするため、必要に応じて別のサーバーに簡単にマウントできます。

MySQLデータ用に別のEBSボリュームを持つEBSバックアップインスタンスを強くお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top