2012-03-26 12 views
15

हम डायनेमो डीबी का उपयोग शुरू कर रहे हैं, और देव/स्टेजिंग/उत्पादन के लिए अलग वातावरण चाहते हैं। हम ऐसा करने का एक प्राकृतिक तरीका नहीं समझ सकते --- क्या हम सिर्फ अलग एडब्ल्यूएस खाते बनाते हैं? या हम एक ही खाते का उपयोग करते हैं, लेकिन हमारी टेबल ("देव-उत्पाद", "स्टेजिंग-उत्पाद", "प्रॉड-प्रोडक्ट्स") में मूर्खतापूर्ण उपसर्ग जोड़ते हैं?डायनेमो डीबी पर देव/स्टेजिंग/उत्पादन का प्रबंधन?

उत्तर

8

किसी भी अमेज़ॅन उत्पादों के साथ इसका प्रबंधन करने का मानक तरीका अलग-अलग खाते बनाना है और फिर समेकित बिलिंग का उपयोग करना है ताकि यह बिलिंग पहलू को जटिल न करे। मुझे इस बात की बात यह है कि आप गलती से गलत आदेश चलाकर उत्पादन कोड को तोड़ने का जोखिम नहीं उठाते हैं। जाहिर है, अगर आप गलत उदाहरण में लॉग इन हैं तो यह आपकी मदद नहीं करता है लेकिन यह अभी भी काफी मदद करता है।

एकाधिक खातों के लिए अन्य उपयोग अनुमतियों और बेहतर परीक्षण का प्रबंधन करना हो सकता है। खातों को अलग रखने से परीक्षण में मदद मिलती है क्योंकि आप उत्पादन खाते को 100% पुन: पेश कर सकते हैं और जब आपको नई सुविधाओं का परीक्षण करने की आवश्यकता होती है तो इसे चालू और बंद कर सकते हैं। मैंने इस मुद्दे के बारे में अमेज़ॅन प्रीमियम समर्थन के साथ बात की है और उन्होंने कहा है कि यह बड़ी कंपनियों के लिए मानक अभ्यास प्रतीत होता है। कुछ बड़ी कंपनियों के पास कई खाते हैं। मेरे काम पर हमारे पास सिर्फ 3 है और मुझे हर दिन यह अधिक उपयोगी लगता है।

+9

यह अब "मानक तरीका" नहीं है। एकाधिक एडब्ल्यूएस खातों से ओवरहेड बहुत अच्छा है। स्टेजिंग और उत्पादन को अलग करने के लिए टैग और नामकरण सम्मेलनों का उपयोग करें। –

1

मुझे कुछ भी नहीं दिखता है जो "उपरोक्त" टेबल है जो आपके प्रत्येक उदाहरण (dev/staging/prod) के लिए बनाया जा सकता है (एक रिलेशनल डेटाबेस की तरह, जिसमें एक डीबी के तहत सभी टेबल हैं)।

आवेदन पर मैं काम कर रहा हूं, हम टेबल पर उपसर्ग का उपयोग कर रहे हैं।

4

एक्सेस नियंत्रण के लिए अमेज़ॅन के बहुत बढ़े हुए आईएएम को न भूलें। यह आपको बड़े खातों के समान लाभ देता है। (अलग-अलग खाते अभी भी एक विकल्प हैं यदि आप भुगतान के विभिन्न स्तरों का भुगतान करना चाहते हैं।)

नामकरण के अनुसार, मेरी वरीयता name.environment.whatever भी है।

4

अमेज़ॅन अब एक सर्वर प्रदान करता है जिसे आप स्थानीय रूप से चला सकते हैं। आप इसे here डाउनलोड कर सकते हैं।

2

मुझे समझ में नहीं आ रहा है कि डीबी-संस्करणों को प्रबंधित करने के लिए एडब्ल्यूएस समाधान क्यों नहीं है जैसे डायनेमो डीबी में उत्पादन और परीक्षण !? एकाधिक एडब्ल्यूएस खाते होने से परेशानी होती है।

यह भी तालिका नाम उपसर्ग अगर आप ग # वर्ग विशेषता [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 संकलन प्रतीकों" मान सेट करें।

एक सही समाधान नहीं है, लेकिन अगर मैं एक और एडब्ल्यूएस खाता नहीं बनाना चाहता हूं तो मुझे यहां कोई अन्य विकल्प नहीं दिख रहा है।

+0

आप इस लिंक पर एक नज़र डाल सकते हैं: https://aws.amazon.com/blogs/developer/configuring-dynamodb-tables-for-development-and-production/ इसी तरह, लेकिन यह आधिकारिक तौर पर अनुशंसित तरीके से –

+0

धन्यवाद है लेकिन धन्यवाद जिस परियोजना पर मैं काम कर रहा था उसे बंद कर दिया गया है। तब मैंने पाया कि डेटा को बचाने के लिए डायनेमो डेटाबेस का बैक अप लेने का कोई आसान तरीका था।ऐसा मत सोचो कि मैं भविष्य में किसी भी चीज़ के लिए डायनेमो डीबी का उपयोग करूंगा और किसी और को इसकी सिफारिश नहीं करूंगा। –

संबंधित मुद्दे