2012-03-26 11 views
15

私たちはDynamoDBを使い始めており、dev/staging/production用に別々の環境が必要です。これを行う自然な方法を理解できません---別のAWSアカウントを作成するだけですか?または、同じアカウントを使用しますが、テーブルに愚かなプレフィックス(「開発製品」、「ステージング製品」、「製品」)を追加しますか?DynamoDBで開発/ステージング/プロダクションを管理していますか?

答えて

8

これをAmazonの製品で管理する標準的な方法は、別々のアカウントを作成してから、請求処理を複雑にしないように統合請求を使用することです。私が気に入っているのは、誤って間違ったコマンドを実行して生産コードを壊す危険がないということです。明らかに間違ったインスタンスにログインしても、それはまだ役に立ちますが、それはあなたを助けません。

複数のアカウントを使用する他の用途は、アクセス許可を管理してテストを改善することです。アカウントを別にすると、プロダクションアカウントを100%再現して新しい機能をテストする必要があるときにオンとオフを切り替えることができるので、テストに役立ちます。私はこの問題に関するアマゾンのプレミアムサポートについて話しましたが、これは大企業にとっては標準的なプラクティスであるようです。大企業には多くのアカウントがあります。ここでの私の仕事では、3つしかないし、毎日もっと役に立つと思う。

+9

これはもはや「標準的な方法」ではありません。複数のAWSアカウントからのオーバーヘッドは大きすぎます。ステージングとプロダクションを分離するには、タグと命名規則を使用します。 –

1

私は、あなたが持っている各インスタンス(dev/staging/prod)に対して作成できるテーブルの上には表示されません(1つのDBの下にすべてのテーブルを持つリレーショナルデータベースのように)。

私が作業しているアプリケーションでは、テーブルにプレフィックスを使用しています。

4

アクセス制御のためにAmazonの大幅に強化されたIAMを忘れないでください。これは主に、別々のアカウントと同じメリットをもたらします。 (有料のサポートのレベルを変えたい場合は、依然として別のアカウントを選択することができます)。

名前を付けて、私の好みはname.environment.whateverです。

4

Amazonは、ローカルで実行できるサーバーを提供しています。 hereをダウンロードできます。

2

なぜ、DynamoDBのプロダクションとテストのようなDBバージョンを扱うためのAWSソリューションがないのですか?複数のAWSアカウントを持つことは面倒です。

はまた、あなたがC#クラス属性[DynamoDBTable("Users")]を使用してデータをフェッチすることで、アイテムを取得する場合、テーブル名の前に付けるために大きな問題となってDynamoDBContext.Load<User>(userId);

としては、値が私がなってしまった実行時に変更することはできません属性これはconditonalコンパイルシンボルを使用し、クラス属性値として使用できる定数を設定することで解決されます。

public static class DynamoDbTablesConfiguration 
{ 
     #if Debug 
      public const string UserTable = "Users_Dev"; 
     #endif 

     #if Release 
      public const string UserTable = "Users_Production"; 
     #endif 
} 

[DynamoDBTable(DynamoDbTablesConfiguration.UserTable)] 
public class User 
{ 
} 

プロジェクト>プロパティ>ビルド>「conditonalコンパイルシンボル」を右クリックで「conditonalコンパイルシンボル」値を設定していることを確認します。

他のAWSアカウントを作成したくない場合は、完璧な解決策ではありませんが、他のオプションは表示されません。

+0

あなたはこのリンクを見ることができます:https://aws.amazon.com/blogs/developer/configuring-dynamodb-tables-for-development-and-production/似ていますが、それは何を正式に推奨されているawsです –

+0

ありがとう私が取り組んでいたプロジェクトは中止されました。私は、データを保存するためにダイナモデータベースをバックアップする簡単な方法があることを発見しました。私はDynamoDbを今後何かに使うつもりはないと思うし、他の誰かにもそれを勧めないだろう。 –

関連する問題