web-dev-qa-db-ja.com

Amazon Redshiftを使用したローカルでの開発とステージング

制作、ステージング、およびローカル開発でツールとサービスをセットアップするのが好きです。 Amazon Redshiftを使用したいのですが、月額$ 180から始めると、列型ストアデータベースの場合はかなり妥当と思われますが、実際には$ 180 x環境の数/月と考える必要がありますか? Redshiftの無料のステージングおよびローカル環境を使用する方法はありますか?

また、ネットワークに依存するのではなく、ローカルインスタンスに対して開発を行うことができるのも良いことです。 Redshiftではそれは不可能だと思います。

Redshiftを使用する場合、ローカル開発をより簡単、より速く、より安価にするために何をしますか?

30
freyley

Amazon Redshiftは、AWSインフラストラクチャで実行するために特別に作成されました。ダウンロードはできません。 (興味深いことに、Amazon DynamoDBには開発用のダウンロード可能なバージョンがあります。)

最も安いオプションは毎晩Dev&Testインスタンスをシャットダウンすると週末になるかもしれません。クラスターを削除する前にスナップショットを作成し、翌朝、そのスナップショットに基づいてクラスターを作成します。これはAWSコマンドラインインターフェイス(CLI)を介して自動化できるため、cronまたはスケジュールされたタスクで簡単にスケジュールできます。

snapshotのテストデータを作成して、毎朝そのスナップショットを復元することもできます。これは、テストデータベースがテストケースでいっぱいにならないことを意味します。

もう1つのコスト削減は非本番システムのノード数を減らすの場合があります。クエリの実行速度は遅くなり、ストレージの総量は減少しますが、費用対効果が高くなる可能性があります。または、複数の「高密度コンピューティング」SSDインスタンスの代わりに「高密度ストレージ」2TBノードを使用することもできます。これらは、少ないノードでより多くのストレージを提供します。

15
John Rotenstein

ステージング用に2番目のクラスターを実行することを決定した場合にコストを削減する方法を説明するJohn Rotenstiensに加えて、ユースケースがミッションクリティカルではない場合のために、いくつかの他のオプションがあります。

Redshiftはpostgres 8のフォークであるため、Amazonが提供するpostgresql 8.4 JDBCまたはODBCドライバーを使用して、ローカルで実行されているpostgres 8インスタンスを指すようにすることができます。これは開発中にうまく機能します。ここで機能するものは、通常、運用システムで機能します(いくつかの例外があります)。

もう1つのオプションは、Redshiftクラスターに別のテーブルを用意して、非本番アクティビティを実行することです。これは、テストスイートおよび「最終テスト」の開発に役立つ場合があります。

次に、展開を本番環境にステージングし、完全展開の前にステージング環境で問題を監視できます。

16
Chris Riddell

別のコスト削減ソリューションは、各データベースを単一のクラスター内の環境として扱うことです。データベースは無料で、許可されます クラスタ内の60個

私たちはPostgres-as-emulatorソリューションを試しましたが、それはまあまあですが、

  • パフォーマンス特性は根本的に異なります
  • 使いやすい RedshiftにないPostgresの機能 (またはその逆)
  • オプションの部分(一方のインデックス、他方のソートキーなど)を含むスキーマを維持するのは面倒です。

現時点ではそれを取りやめていますが、大きくなるにつれて、受け入れテストとステージングがRedshiftのデータベースであるハイブリッドソリューションを使用する必要があるかもしれませんが、開発者はPostgresの使用に戻ります。

15
cobbr2

これは、クラウドサービスに料金を支払うことなく、すべてのAWSサービスにローカルでオフラインでアクセスするための最良の代替手段です。ローカルスタック!

https://localstack.cloud/

https://github.com/localstack/localstack

Redshift、S3、DynamoDB、cloudwatchなどのすべての主要なAWSサービスがサポートされています。

これをすべての非製品環境に使用でき、本番AWSサービスにのみ支払います

2
Chandan Bhattad