制作、ステージング、およびローカル開発でツールとサービスをセットアップするのが好きです。 Amazon Redshiftを使用したいのですが、月額$ 180から始めると、列型ストアデータベースの場合はかなり妥当と思われますが、実際には$ 180 x環境の数/月と考える必要がありますか? Redshiftの無料のステージングおよびローカル環境を使用する方法はありますか?
また、ネットワークに依存するのではなく、ローカルインスタンスに対して開発を行うことができるのも良いことです。 Redshiftではそれは不可能だと思います。
Redshiftを使用する場合、ローカル開発をより簡単、より速く、より安価にするために何をしますか?
Amazon Redshiftは、AWSインフラストラクチャで実行するために特別に作成されました。ダウンロードはできません。 (興味深いことに、Amazon DynamoDBには開発用のダウンロード可能なバージョンがあります。)
最も安いオプションは毎晩Dev&Testインスタンスをシャットダウンすると週末になるかもしれません。クラスターを削除する前にスナップショットを作成し、翌朝、そのスナップショットに基づいてクラスターを作成します。これはAWSコマンドラインインターフェイス(CLI)を介して自動化できるため、cronまたはスケジュールされたタスクで簡単にスケジュールできます。
snapshotのテストデータを作成して、毎朝そのスナップショットを復元することもできます。これは、テストデータベースがテストケースでいっぱいにならないことを意味します。
もう1つのコスト削減は非本番システムのノード数を減らすの場合があります。クエリの実行速度は遅くなり、ストレージの総量は減少しますが、費用対効果が高くなる可能性があります。または、複数の「高密度コンピューティング」SSDインスタンスの代わりに「高密度ストレージ」2TBノードを使用することもできます。これらは、少ないノードでより多くのストレージを提供します。
ステージング用に2番目のクラスターを実行することを決定した場合にコストを削減する方法を説明するJohn Rotenstiensに加えて、ユースケースがミッションクリティカルではない場合のために、いくつかの他のオプションがあります。
Redshiftはpostgres 8のフォークであるため、Amazonが提供するpostgresql 8.4 JDBCまたはODBCドライバーを使用して、ローカルで実行されているpostgres 8インスタンスを指すようにすることができます。これは開発中にうまく機能します。ここで機能するものは、通常、運用システムで機能します(いくつかの例外があります)。
もう1つのオプションは、Redshiftクラスターに別のテーブルを用意して、非本番アクティビティを実行することです。これは、テストスイートおよび「最終テスト」の開発に役立つ場合があります。
次に、展開を本番環境にステージングし、完全展開の前にステージング環境で問題を監視できます。
別のコスト削減ソリューションは、各データベースを単一のクラスター内の環境として扱うことです。データベースは無料で、許可されます クラスタ内の60個
私たちはPostgres-as-emulatorソリューションを試しましたが、それはまあまあですが、
現時点ではそれを取りやめていますが、大きくなるにつれて、受け入れテストとステージングがRedshiftのデータベースであるハイブリッドソリューションを使用する必要があるかもしれませんが、開発者はPostgresの使用に戻ります。
これは、クラウドサービスに料金を支払うことなく、すべてのAWSサービスにローカルでオフラインでアクセスするための最良の代替手段です。ローカルスタック!
https://github.com/localstack/localstack
Redshift、S3、DynamoDB、cloudwatchなどのすべての主要なAWSサービスがサポートされています。
これをすべての非製品環境に使用でき、本番AWSサービスにのみ支払います