حسین جعفری
حسین جعفری
خواندن ۱۰ دقیقه·۱ ماه پیش

قسمت پنجم AWS Certified Cloud Practitioner : آشنایی با انواع دیتابیس در AWS

مقدمه

خب تا اینجا توی قسمت اول، قسمت دوم، قسمت سوم و قسمت چهارم مفاهیم اولیه رو مرور کردیم، با سرویس‌های محاسباتی آشنا شدیم و بعد هم خدمات ذخیره‌سازی رو بررسی کردیم. تو هر قسمت، گام به گام جلو اومدیم تا ببینیم AWS چطور می‌تونه به سازمان‌ها و افراد کمک کنه تا زیرساخت‌ها و منابعشون رو بهینه‌تر و کارآمدتر مدیریت کنن.

حالا توی فصل پنجم قراره به سراغ بخش‌های اساسی دیگه‌ای از AWS بریم و به خدمات دیتابیس AWS نگاهی دقیق‌تر بندازیم. دیتابیس‌ها یکی از مهم‌ترین بخش‌های هر سیستم اطلاعاتیه، و AWS سرویس‌های متنوعی برای انواع مختلف دیتابیس‌ها ارائه میده. از دیتابیس‌های رابطه‌ای که ساختار منظم‌تری دارن تا دیتابیس‌های NoSQL که انعطاف بیشتری برای داده‌های غیرساختاریافته دارن، و همچنین دیتابیس‌های در حافظه که سرعت بالایی برای پردازش‌های بلادرنگ ارائه میدن.

تو این قسمت، درباره انواع دیتابیس‌های AWS مثل Amazon RDS، DynamoDB، و Amazon MemoryDB for Redis صحبت میکنیم تا درک بهتری از تفاوت‌ها و کاربردهای هر یک از این سرویس‌ها داشته باشیم.

نگاه کلی یه دیتابیس‌ها

توی AWS، انواع مختلفی از دیتابیس‌ وجود دارن که هر کدوم برای نیازهای خاصی طراحی شدن. در اینجا نگاهی به اصلی‌ترین انواع دیتابیس‌ها می‌اندازیم:

  • دیتابیس‌های رابطه‌ای مثل Amazon RDS، شبیه به قفسه‌های منظم یه آشپزخونه هستن که همه چیز سر جاشه. توی این نوع دیتابیس، داده‌ها در قالب جدول‌هایی از ردیف‌ها و ستون‌ها ذخیره میشن. در واقع هر داده یه جای مشخص داره و به راحتی قابل جستجو و بازیابی هست. برای مثال، می‌تونید اسم مشتری‌ها یا سفارش‌های پیتزا رو توی یه جدول با نظم خاصی بچینید. RDS برای مواردی مثل مدیریت موجودی، سفارش‌های مشتری یا حتی سیستم‌های بهداشت و درمان که نیازمند نگهداری پرونده‌های بیماران هستن، خیلی کاربردیه.
  • دیتابیس‌های NoSQL مثل DynamoDB، رویکردی متفاوت دارن و ساختار منعطف‌تری ارائه میدن. می‌تونید این نوع دیتابیس رو مثل جعبه‌هایی در نظر بگیرید که هر کدوم برچسب مخصوص به خودش رو داره. برای مثال، یه جعبه با برچسب «پنیر» می‌تونه شامل انواع پنیرهای مختلف مثل موزارلا، چدار و پارمزان باشه. DynamoDB برای ذخیره و بازیابی داده‌ها به شیوه‌ای ساده و سریع، مخصوصا برای اپلیکیشن‌هایی که ترافیک بالایی دارن، فوق‌العاده عمل می‌کنه.
  • دیتابیس‌های در حافظه مثل Amazon MemoryDB for Redis و ElastiCache، سریع‌ترین نوع دیتابیس‌ها هستن چون داده‌هاشون رو مستقیماً توی RAM نگه می‌دارن، نه روی دیسک‌های کندتر. این نوع دیتابیس‌ها شبیه به یه میز مخصوص توی آشپزخونه‌ان که مواد مورد استفاده همیشه آماده دسترسی هستن و نیازی نیست برای هر بار استفاده به انبار بری. دیتابیس‌های در حافظه برای کاربردهایی مثل کش کردن داده‌ها برای اپلیکیشن‌های وب کاربردیه.
  • دیتابیس‌های گراف مثل Amazon Neptune، برای ذخیره و مدیریت داده‌هایی با روابط پیچیده استفاده میشن. این نوع دیتابیس رو مثل یه شبکه پیچیده از دستورپخت‌های مختلف در نظر بگیر که هر ماده به مواد دیگه متصل شده و نشون میده چطور می‌تونن با هم ترکیب بشن. دیتابیس‌های گراف توی مدیریت داده‌هایی که روابط پیچیده و زیادی دارن، مثل سیستم‌های تشخیص تقلب یا سیستم‌های توصیه‌گر، خیلی خوب عمل می‌کنن.

درک سرویس‌های Migration دیتابیس AWS

توی این قسمت درباره AWS Database Migration Service (DMS) و AWS Schema Conversion Tool (SCT) صحبت میکنیم. فرض کن قراره از یه آشپزخونه قدیمی پیتزا به یه آشپزخونه مدرن و پیشرفته‌تر بری.
این انتقال مثل فرآیند مهاجرت دیتابیسه؛ یعنی جابجایی داده از یه محیط به محیط دیگه.

سرویس AWS DMS، مثل یه تیم جابجایی تخصصی برای آشپزخونه ما عمل می‌کنه. این سرویس بهت کمک می‌کنه تا دیتابیس‌هات رو به شکلی سریع و امن به AWS منتقل کنی، در حالی که کیفیت و ساختار داده‌هات حفظ میشه. این ابزار از منابع داده مختلف مثل Oracle، MySQL، PostgreSQL و Microsoft SQL Server پشتیبانی می‌کنه، و بدون نیاز به تغییرات در دیتابیس مبدا، می‌تونی انتقال رو با چند کلیک ساده شروع کنی.

سرویس DMS زمان توقف کمی داره، چون امکان تکرار داده‌ها به صورت مستمر رو فراهم می‌کنه؛ یعنی می‌تونی در طول فرآیند انتقال، داده‌ها رو همزمان تکرار کنی و دیتابیس مبدا همچنان به کار خودش ادامه بده. این سرویس به‌صورت خودترمیم و با نظارت پیوسته کار می‌کنه و در صورت هر وقفه‌ای، خودکار شروع به کار می‌کنه. همچنین، DMS از Multi-AZ برای دسترسی بالا بهره می‌بره.

یکی دیگه از ویژگی‌های مهم DMS، امکان تجمیع دیتابیس‌هاست؛ به این صورت که می‌تونی چند دیتابیس رو در یک دیتابیس واحد روی AWS ادغام کنی. DMS هم از مهاجرت‌های همگون (یعنی دیتابیس‌های مبدا و مقصد مشابه) و هم از ناهمگون (دیتابیس‌های مبدا و مقصد متفاوت) پشتیبانی می‌کنه. این ویژگی به شرکت‌ها کمک می‌کنه زیرساخت دیتابیس‌شون رو بهینه‌تر و با هزینه‌های کمتر مدیریت کنن.

خب بریم سراغ AWS Schema Conversion Tool (SCT).
فرض کن یه مجموعه از دستورپخت‌های قدیمی پیتزا داری که نیاز به تبدیل به یه کتاب آشپزی دیجیتال دارن.
SCT دقیقا همین کار رو برای دیتابیس‌ها انجام میده؛ این ابزار قدرتمند اسکیمای دیتابیس مبدا رو به فرمت سازگار با دیتابیس‌های AWS تبدیل می‌کنه. SCT ساختار دیتابیس فعلی رو بررسی و درک می‌کنه و بعد یه اسکیمای جدید برای دیتابیس مقصد ایجاد می‌کنه.
این ابزار نه‌تنها اسکیمارو تبدیل می‌کنه، بلکه کدهای دیتابیس شامل روال‌های ذخیره‌شده، توابع و نماها رو هم برای سازگاری با AWS تغییر میده. همچنین، SCT مشکلاتی مثل نوع داده‌های ناسازگار یا ویژگی‌های پشتیبانی‌نشده در دیتابیس مقصد رو شناسایی و برطرف می‌کنه.

موارد استفاده برای AWS DMS

توی بعضی شرایط، استفاده از DMS می‌تونه خیلی مفید باشه. مثلا وقتی که بین پلتفرم‌های دیتابیس مختلف مهاجرت می‌کنی؛ چه از یه نوع دیتابیس به همون نوع (همگون) یا به یه نوع دیگه (ناهمگون) مثل Oracle به Amazon Aurora. با DMS، می‌تونی چندین دیتابیس رو در یک دیتابیس روی AWS تجمیع کنی، که این کار مدیریت زیرساخت رو راحت‌تر و هزینه‌ها رو کمتر می‌کنه.

سرویس DMS همچنین قابلیت تکرار داده‌ها به صورت مداوم رو داره که این ویژگی برای مواردی مثل بازیابی از فاجعه خیلی ایده‌آله. این ویژگی بهت اجازه میده تا داده‌های تولیدی و پشتیبان رو به صورت لحظه‌ای همگام‌سازی کنی. DMS می‌تونه داده‌ها رو به انبارهای داده AWS مثل Amazon Redshift منتقل کنه و قابلیت‌های تحلیلی داده در فضای ابری رو تقویت کنه.

این سرویس یک ابزار کلیدی برای انتقال دیتابیس‌ها از دیتاسنترهای محلی به فضای ابریه و به شرکت‌ها کمک می‌کنه تا به راحتی دیتاسنترهای فیزیکی رو کنار بزارن و به AWS مهاجرت کنن.

معرفی دیتابیس Amazon DynamoDB:

دیتابیس DynamoDB یه سرویس کاملا مدیریت‌شده از دیتابیس‌های NoSQL هست که AWS ارائه میده. یادتونه که دیتابیس‌های NoSQL رو مثل یه سری جعبه‌های مختلف توی آشپزخونه ابری توصیف کردیم؟
هر جعبه یه برچسب یا کلید خاص داره و داخلش موادی هست که به اون برچسب مربوط میشن. DynamoDB دقیقا همینطوری کار می‌کنه: به شما اجازه میده تا هر مقدار داده‌ای رو ذخیره کنید و درخواست‌ها رو با هر سطحی از ترافیک سرویس‌دهی کنید. این دیتابیس به‌طور خودکار ظرفیتش رو تنظیم و مقیاس‌بندی می‌کنه تا عملکرد بهینه‌ای داشته باشه.

ویژگی‌های DynamoDB

دیتابیس DynamoDB پر از ویژگی‌هاییه که اون رو به انتخابی ایده‌آل برای مدیریت داده تبدیل می‌کنه:

  • عملکرد در مقیاس بالا:
    فرقی نمی‌کنه چقدر ترافیک داده وجود داشته باشه، DynamoDB به شما تضمین میده که سرعت و عملکرد ثابت خواهد موند، حتی وقتی نیازهای برنامه‌تون افزایش پیدا می‌کنه.
  • کاملا مدیریت‌شده:
    مثل یه آشپزخونه ابری که همه کارهای نظافتی و پر کردن دوباره مواد اولیه به صورت خودکار انجام میشه. اینطوری، شما می‌تونید روی ساخت اپلیکیشن‌هاتون تمرکز کنید.
  • امنیت داخلی:
    DynamoDB مثل یه انباری قفل‌شده و امن برای داده‌هاتونه. چه داده‌ها در حالت استراحت باشن و چه در حال انتقال، امنیتشون تضمین شده است.
  • پشتیبان‌گیری و بازیابی:
    شما هر زمانی می‌تونید از داده‌هاتون بکاپ بگیرید و در صورت نیاز به نقطه خاصی برگردید. این قابلیت، بازیابی داده‌ها رو تضمین می‌کنه.

موارد استفاده از DynamoDB

دیتابیس DynamoDB در سناریوهای مختلفی کاربرد داره و عملکرد عالی از خودش نشون میده:

  • برنامه‌های وب و موبایل:
    این سرویس برای مدیریت داده‌های کاربر و جلسات با مقیاس‌پذیری پویا بسیار مناسبه. می‌تونه به راحتی ترافیک و داده‌های زیادی رو مدیریت کنه و برای اپلیکیشن‌هایی که تعداد کاربرهاشون متغیره، ایده‌آله.
  • برنامه‌های گیمینگ:
    DynamoDB دسترسی به داده با تاخیر کم رو برای لیدربوردها و داده‌های جلسات بازی فراهم می‌کنه که برای تجربه بازی در زمان واقعی ضروریه.
  • سناریوهای IoT:
    توانایی DynamoDB در پردازش حجم عظیمی از داده‌های IoT و مقیاس‌پذیری بدون دردسر، باعث میشه که این سرویس برای تحلیل و پردازش بلادرنگ این داده‌ها بسیار مناسب باشه.
  • پلتفرم‌های تجارت الکترونیک:
    این سرویس با مقیاس‌پذیری و عملکرد بالا، برای مدیریت موجودی، داده‌های مشتری و تاریخچه سفارش‌ها عالیه، مخصوصا در زمان‌هایی که ترافیک زیادی مثل حراج‌ها یا تعطیلات وجود داره.

مروری بر دیتابیس‌های مبتنی بر حافظه در AWS

بیایید اول مرور کنیم که دیتابیس مبتنی بر حافظه چی بودن. این نوع دیتابیس‌ها داده‌ها رو به جای ذخیره روی دیسک، توی RAM نگه می‌دارن. این کار شبیه به نگه‌داری مواد اولیه‌ایه که زیاد استفاده می‌کنی روی پیشخون آشپزخونه، تا همیشه دسترسی سریعی بهشون داشته باشی، به جای اینکه بری و از انبار بیاری. این ویژگی باعث میشه که بازیابی و پردازش داده‌ها خیلی سریع‌تر انجام بشه، که برای برنامه‌هایی که به دسترسی بلادرنگ نیاز دارن، مثل اپ‌های گیمینگ یا خدمات تحلیلی فوری، خیلی کاربردیه.

سرویس Amazon MemoryDB for Redis:

سرویس Amazon MemoryDB یه سرویس دیتابیس در حافظه کاملا مدیریت‌شده و سازگار با Redis هست.
این سرویس برای اپلیکیشن‌های مدرنی طراحی شده که به سرعت دسترسی بسیار بالا به داده‌ها نیاز دارن.
Redis به‌عنوان یه انبار داده در حافظه و منبع‌باز، هسته این سرویس رو تشکیل میده.
بیایید ببینیم MemoryDB چه ویژگی‌های خاصی داره:

  • عملکرد بالا: MemoryDB کل داده‌ها رو توی حافظه ذخیره می‌کنه، و می‌تونه تا 13 تریلیون درخواست در روز رو پشتیبانی کنه و از پیک‌های 160 میلیون درخواست در ثانیه هم عبور کنه.
  • دوام و دسترسی بالا: MemoryDB for Redis به طور خودکار داده‌ها رو توی چندین منطقه دسترسی AWS تکرار می‌کنه، که این کار باعث دوام داده‌ها و دسترسی بالا میشه. این یعنی حتی اگه یکی از نودها دچار مشکل بشه، داده‌ها همچنان امن و در دسترس باقی می‌مونن.

موارد استفاده از MemoryDB

دیتابیس‌های مبتنی بر حافظه مثل MemoryDB توی AWS یه ابزار چندکاره هستن و برای سناریوهای مختلفی کاربرد دارن:

  • کش برای برنامه‌های وب: MemoryDB بازیابی داده‌ها رو سریع‌تر از دیتابیس‌های رابطه‌ای انجام میده،
    که این ویژگی برای اپلیکیشن‌های وب با ترافیک بالا ایده‌آله و باعث کاهش زمان بارگذاری و بهبود تجربه کاربری میشه.
  • تحلیل بلادرنگ: برخلاف دیتابیس‌های سنتی، MemoryDB در پردازش بلادرنگ داده‌ها خیلی خوب عمل می‌کنه و برای تحلیل داده‌های جریانی از منابع مختلف به صورت لحظه‌ای و ارائه بینش‌های فوری کاربرد داره.
  • ذخیره‌سازی جلسات برای اپ‌های موبایل و وب:
    MemoryDB به‌عنوان یه ذخیره‌گاه جلسات کاربری، داده‌ها رو سریع‌تر از دیتابیس‌های دیسکی فراهم می‌کنه، که باعث دسترسی سریع‌تر به اطلاعات کاربری میشه.
  • لیست امتیازات و بازی‌ها:
    برای اپ‌های گیمینگ، MemoryDB به خاطر سرعت بالای خواندن و نوشتنش از دیتابیس‌های رابطه‌ای بهتر عمل می‌کنه و به‌روزرسانی امتیازات و رتبه‌ها رو در زمان واقعی ممکن می‌سازه.
  • پردازش داده‌های مکانی:

دیتابیس MemoryDB از ساختارهای داده پیچیده مثل ایندکس‌های مکانی پشتیبانی می‌کنه و برای
سرویس‌های مبتنی بر مکان، پرس و جو و دستکاری داده‌ها رو سریع‌تر از دیتابیس‌های سنتی انجام میده.

نتیجه‌گیری

سرویس Amazon MemoryDB for Redis یه دیتابیس در حافظه پرسرعت و مقیاس‌پذیر برای برنامه‌هایی که به دسترسی بلادرنگ و عملکرد بالا نیاز دارن، محسوب میشه. این سرویس با امنیت، دوام و مقیاس‌پذیری عالی، یه انتخاب ایده‌آل برای برنامه‌هایی مثل اپ‌های وب، گیمینگ، IoT و تحلیل داده‌هاست.


خب تو این قسمت ، سرویس‌های دیتابیس AWS رو به زبان ساده توضیح دادم. از دیتابیس‌های رابطه‌ای مثل Amazon RDS گرفته تا دیتابیس‌های NoSQL مثل DynamoDB و دیتابیس‌های در حافظه مثل Amazon MemoryDB for Redis و ElastiCache، هر کدوم رو با مثال‌های کاربردی بررسی کردیم تا راحت‌تر بتونیم انتخاب کنیم که کدوم سرویس برای نیازهای ما مناسب‌تره. امیدوارم این توضیحات کمک کرده باشه تا درک بهتری از سرویس‌های دیتابیس AWS و کاربردهای متنوعشون داشته باشید.


لیست تمام قسمت ها

قسمت اول AWS Certified Cloud Practitioner : آشنایی با مفاهیم ابتدایی AWS Cloud

قسمت دوم AWS Certified Cloud Practitioner : خدمات مبتنی بر Compute

قسمت سوم AWS Certified Cloud Practitioner: فناوری و خدمات ذخیره‌سازی مثل S3

قسمت چهارم AWS Certified Cloud Practitioner: خدمات شبکه و Content Delivery

قسمت پنجم AWS Certified Cloud Practitioner : آشنایی با انواع دیتابیس در AWS

قسمت 6: تکنولوژی‌ها و سرویس‌های توسعه، پیام‌رسانی، و دیپلویمنت

قسمت هفتم:‌ تکنولوژی و سرویس‌های migration و انتقال داده


و در آخر این آدرس لینکدین و توئیتر من هست خوشحال میشم در ارتباط باشیم.

🪩 Follow Linkedin Hossein Jafari🪩

🕊 Twitter 🕊


شاید از این پست‌ها خوشتان بیاید