شعار زيفيرنت

حل أسماء مضيفات DNS الخاصة لـ Amazon MSK Connect | خدمات الويب الأمازون

التاريخ:

اتصال أمازون MSK هي سمة من سمات Amazon Managed Streaming لأباتشي كافكا (Amazon MSK) الذي يوفر بيئة Apache Kafka Connect المُدارة بالكامل على AWS. باستخدام MSK Connect، يمكنك نشر موصلات مُدارة بالكامل مصممة لـ Kafka Connect والتي تنقل البيانات إلى مخازن البيانات الشائعة أو تسحبها منها مثل Amazon S3 وAmazon OpenSearch Service. مع مقدمة دعم DNS الخاص في MSK Connect، يمكن للموصلات حل أسماء نطاقات العملاء الخاصة، باستخدام خوادم DNS الخاصة بهم التي تم تكوينها في مجموعة خيارات VPC DHCP الخاصة بالعميل. يوضح هذا المنشور حلاً لحل أسماء مضيفي DNS الخاصة المحددة في VPC للعميل لـ MSK Connect.

قد ترغب في استخدام دعم اسم مضيف DNS الخاص لـ MSK Connect لأسباب متعددة. قبل تضمين إمكانية تحليل DNS الخاص مع MSK Connect، كان يستخدم محلل DNS الخاص بالخدمة لتحليل DNS. لم يستخدم MSK Connect خوادم DNS الخاصة المحددة في مجموعات خيارات VPC DHCP الخاصة بالعميل لتحليل DNS. كانت الموصلات قادرة فقط على الإشارة إلى أسماء المضيفين في تكوين الموصل أو البرنامج الإضافي الذي يمكن حله بشكل عام ولا يمكنها حل أسماء المضيفين الخاصة المحددة في أي منطقة مستضافة خاصة أو استخدام خوادم DNS في شبكة عميل أخرى.

يضمن العديد من العملاء أن تطبيقات DNS الداخلية الخاصة بهم ليست قابلة للحل بشكل علني. على سبيل المثال، قد يكون لديك قاعدة بيانات MySQL أو PostgreSQL وقد لا ترغب في أن يكون اسم DNS لقاعدة البيانات الخاصة بك قابلاً للحل أو الوصول إليه بشكل عام. خدمة قاعدة بيانات الأمازون (Amazon RDS) أو أمازون أورورا تحتوي الخوادم على أسماء DNS قابلة للحل بشكل عام ولكن لا يمكن الوصول إليها. يمكن أن يكون لديك تطبيقات داخلية متعددة مثل قواعد البيانات أو مستودعات البيانات أو الأنظمة الأخرى حيث لا تكون أسماء DNS قابلة للحل بشكل عام.

مع الإطلاق الأخير لدعم DNS الخاص لـ MSK Connect، يمكنك تكوين الموصلات للإشارة إلى أسماء النطاقات العامة أو الخاصة. تستخدم الموصلات خوادم DNS التي تم تكوينها في مجموعة خيارات DHCP الخاصة بـ VPC لحل أسماء النطاقات. يمكنك الآن استخدام MSK Connect للاتصال بشكل خاص بقواعد البيانات ومستودعات البيانات والموارد الأخرى في VPC الخاص بك للتوافق مع احتياجاتك الأمنية.

إذا كان لديك قاعدة بيانات MySQL أو PostgreSQL مع DNS خاص، فيمكنك تكوينها على خادم DNS مخصص وتكوين خيار DHCP الخاص بـ VPC للقيام بتحليل DNS باستخدام خادم DNS المخصص المحلي لـ VPC بدلاً من استخدام خدمة DNS دقة.

حل نظرة عامة

يمكن أن يكون لدى العميل خيارات بنية مختلفة لإعداد MSK Connect الخاص به. على سبيل المثال، يمكن أن يكون لديهم Amazon MSK وMSK Connect في نفس VPC أو النظام المصدر في VPC1 وAmazon MSK وMSK Connect موجودان في VPC2 أو النظام المصدر، بينما Amazon MSK وMSK Connect جميعهم في VPCs مختلفين.

يستخدم الإعداد التالي اثنين من VPCs مختلفين، حيث يستضيف MySQL VPC قاعدة بيانات MySQL ويستضيف MSK VPC Amazon MSK وMSK Connect وخادم DNS ومكونات أخرى متنوعة. يمكنك توسيع هذه البنية لدعم طبولوجيا النشر الأخرى باستخدام المناسب إدارة الهوية والوصول AWS أذونات (IAM) وخيارات الاتصال.

يوفر هذا المنشور إرشادات خطوة بخطوة لإعداد MSK Connect حيث سيتلقى البيانات من قاعدة بيانات MySQL المصدر مع اسم مضيف DNS الخاص في MySQL VPC ويرسل البيانات إلى Amazon MSK باستخدام MSK Connect في VPC آخر. ويوضح الرسم البياني التالي البنية عالية المستوى.

تتضمن تعليمات الإعداد الخطوات الأساسية التالية:

  1. قم بإعداد VPCs والشبكات الفرعية ومكونات البنية التحتية الأساسية الأخرى.
  2. تثبيت وتكوين خادم DNS.
  3. تحميل البيانات إلى قاعدة بيانات MySQL.
  4. انشر Amazon MSK وMSK Connect واستهلك سجلات التقاط بيانات التغيير (CDC).

المتطلبات الأساسية المسبقة

لمتابعة البرنامج التعليمي في هذا المنشور ، تحتاج إلى ما يلي:

أنشئ البنية التحتية المطلوبة باستخدام AWS CloudFormation

قبل تكوين MSK Connect، نحتاج إلى إعداد VPCs والشبكات الفرعية ومكونات البنية التحتية الأساسية الأخرى. لإعداد الموارد في حساب AWS الخاص بك، أكمل الخطوات التالية:

  1. اختار قم بتشغيل Stack لتشغيل المكدس في منطقة تدعم Amazon MSK وMSK Connect.
  2. حدد المفتاح الخاص الذي تستخدمه للاتصال بمثيلات EC2.
  3. قم بتحديث موقع SSH باستخدام عنوان IP المحلي الخاص بك واحتفظ بالقيم الأخرى كإعداد افتراضي.
  4. اختار التالى.
  5. راجع التفاصيل الموجودة في الصفحة الأخيرة وحدد أقر بأن AWS CloudFormation قد تنشئ موارد IAM.
  6. اختار إنشاء مكدس وانتظر حتى يتم إنشاء الموارد المطلوبة.

يقوم قالب CloudFormation بإنشاء الموارد الأساسية التالية في حسابك:

  • وحدات VPC:
    • ام اس كيه في بي سي
    • ماي إس كيو إل VPC
  • الشبكات الفرعية في MSK VPC:
    • ثلاث شبكات فرعية خاصة لـ Amazon MSK
    • شبكة فرعية خاصة لخادم DNS
    • شبكة فرعية خاصة لـ MSKClient
    • الشبكة الفرعية العامة لمضيف المعقل
  • الشبكات الفرعية في MySQL VPC:
    • شبكة فرعية خاصة لقاعدة بيانات MySQL
    • الشبكة الفرعية العامة لمضيف المعقل
  • بوابة إنترنت متصلة بـ MySQL VPC وMSK VPC
  • بوابات NAT المرتبطة بشبكة MySQL الفرعية العامة وشبكة MSK الفرعية العامة
  • جداول التوجيه لدعم تدفق حركة المرور بين الشبكات الفرعية المختلفة في VPC وعبر VPCs
  • اتصال النظير بين MySQL VPC وMSK VPC
  • قاعدة بيانات MySQL وتكويناتها
  • خادم DNS
  • عميل MSK مع المكتبات المعنية

يرجى ملاحظة أنه إذا كنت تستخدم VPC Peering أو بوابة عبور AWS باستخدام MSK Connect، لا تقم بتكوين الموصل الخاص بك للوصول إلى موارد VPC النظيرة باستخدام عناوين IP في نطاقات CIDR. لمزيد من المعلومات، راجع الاتصال من الموصلات.

تكوين خادم DNS

أكمل الخطوات التالية لتكوين خادم DNS:

  1. الاتصال بخادم DNS. توجد ثلاثة ملفات تكوين متاحة على خادم DNS ضمن المجلد /home/ec2-user المجلد:
    • named.conf
    • mysql.internal.zone
    • kafka.us-east-1.amazonaws.com.zone
  2. قم بتشغيل الأوامر التالية لتثبيت وتكوين خادم DNS الخاص بك:
    sudo yum install bind bind-utils –y
    cp /home/ec2-user/named.conf /etc/named.conf
    chmod 644 /etc/named.conf
    cp mysql.internal.zone /var/named/mysql.internal.zone
    cp kafka.region.amazonaws.com.zone /var/named/kafka.region.amazonaws.com.zone
    

  3. تحديث /etc/named.conf.

بالنسبة لسمة السماح بالنقل، قم بتحديث عنوان IP الداخلي لخادم DNS للسماح بالنقل

{ localhost; <DNS Server internal IP address>; };.

يمكنك العثور على عنوان IP لخادم DNS في قالب CloudFormation النواتج علامة التبويب.

ملاحظات أن مجموعة MSK لم يتم إعدادها بعد في هذه المرحلة. نحتاج إلى تحديث أسماء DNS الخاصة بوسيط Kafka وعناوين IP الداخلية الخاصة بها في ملف /var/named/kafka.region.amazonaws.com ملف التكوين بعد إعداد مجموعة MSK لاحقًا في هذا المنشور. للحصول على التعليمات، راجع هنا.

لاحظ أيضًا أن هذه الإعدادات تقوم بتكوين خادم DNS لهذه المشاركة. في بيئتك الخاصة، يمكنك تكوين خادم DNS وفقًا لاحتياجاتك.

  1. أعد تشغيل خدمة DNS:
    sudo su
    service named restart
    

يجب أن تشاهد الرسالة التالية:

Redirecting to /bin/systemctl restart named.service

خادم DNS المخصص الخاص بك جاهز للعمل الآن.

تحميل البيانات إلى قاعدة بيانات MySQL

عادة، يمكننا استخدام Amazon RDS لـ MySQL قاعدة البيانات، ولكن في هذا المنشور، نستخدم خوادم قاعدة بيانات MySQL مخصصة. يمكن الوصول إلى Amazon RDS DNS بشكل عام ويدعمه MSK Connect، لكنه لم يكن قادرًا على دعم قواعد البيانات أو التطبيقات باستخدام DNS الخاص في الماضي. مع الأحدث أسماء مضيفي DNS الخاصة عند إطلاق الميزة، يمكنه دعم DNS الخاص بالتطبيقات أيضًا، لذلك نستخدم قاعدة بيانات MySQL في مثيل EC2.

يوفر هذا التثبيت معلومات حول إعداد قاعدة بيانات MySQL على مثيل EC2 أحادي العقدة. لا ينبغي استخدام هذا لإعداد الإنتاج الخاص بك. يجب عليك اتباع الإرشادات المناسبة لإعداد وتكوين MySQL في حسابك.

تم إعداد قاعدة بيانات MySQL بالفعل باستخدام قالب CloudFormation وهي جاهزة للاستخدام الآن. لتحميل البيانات، أكمل الخطوات التالية:

  1. SSH إلى مثيل MySQL EC2. للحصول على التعليمات، راجع اتصل بمثيل Linux الخاص بك. ملف البيانات salesdb.sql تم تنزيله بالفعل وهو متاح ضمن /home/ec2-user الدليل.
  2. قم بتسجيل الدخول إلى mysqldb باستخدام اسم المستخدم الرئيسي.
  3. للوصول إلى كلمة المرور، انتقل إلى مدير أنظمة AWS و متجر المعلمة التبويب. تحديد /قاعدة البيانات/بيانات الاعتماد/master وانقر على عرض التفاصيل وانسخ قيمة المفتاح.
  4. قم بتسجيل الدخول إلى MySQL باستخدام الأمر التالي:
    mysql -umaster -p<MySQLMasterUserPassword>
    

  5. قم بتشغيل الأوامر التالية لإنشاء salesdb قاعدة البيانات وتحميل البيانات إلى الجدول:
    use salesdb;
    source /home/ec2-user/salesdb.sql;

سيؤدي هذا إلى إدراج السجلات في جداول مختلفة مختلفة في الملف salesdb قاعدة البيانات.

  1. قم بتشغيل إظهار الجداول لرؤية الجداول التالية في salesdb:
    mysql> show tables;
    +-----------------------+
    | Tables_in_salesdb |
    +-----------------------+
    | CUSTOMER |
    | CUSTOMER_SITE |
    | PRODUCT |
    | PRODUCT_CATEGORY |
    | SALES_ORDER |
    | SALES_ORDER_ALL |
    | SALES_ORDER_DETAIL |
    | SALES_ORDER_DETAIL_DS |
    | SALES_ORDER_V |
    | SUPPLIER |
    +-----------------------+

قم بإنشاء مجموعة خيارات DHCP

تمنحك مجموعات خيارات DHCP التحكم في الجوانب التالية للتوجيه في شبكتك الافتراضية:

  • يمكنك التحكم في خوادم DNS أو أسماء النطاقات أو خوادم بروتوكول وقت الشبكة (NTP) التي تستخدمها الأجهزة الموجودة في VPC الخاص بك.
  • يمكنك تعطيل تحليل DNS بالكامل في VPC الخاص بك.

لدعم DNS الخاص، يمكنك استخدام الأمازون الطريق 53 المنطقة الخاصة أو خادم DNS المخصص الخاص بك. إذا كنت تستخدم منطقة Route 53 الخاصة، فسيعمل الإعداد تلقائيًا ولن تكون هناك حاجة لإجراء أي تغييرات على خيار DHCP الافتراضي الذي تم تعيينه لـ MSK VPC. بالنسبة لخادم DNS مخصص، أكمل الخطوات التالية لإعداد تكوين DHCP مخصص باستخدام سحابة أمازون الافتراضية الخاصة (Amazon VPC) وأرفقه بـ MSK VPC.

سيكون هناك خيار DHCP افتراضي تم تعيينه في VPC الخاص بك المتصل بخادم DNS المقدم من Amazon. في هذه المرحلة، ستنتقل الطلبات إلى خادم DNS المقدم من أمازون لحلها. ومع ذلك، قمنا بإنشاء مجموعة خيارات DHCP جديدة لأننا نستخدم خادم DNS مخصصًا.

  1. في وحدة تحكم Amazon VPC ، اختر مجموعة خيارات DHCP في جزء التنقل.
  2. اختار إنشاء مجموعة خيارات DHCP.
  3. في حالة اسم مجموعة خيارات DHCP، أدخل MSKConnect_Private_DHCP_OptionSet.
  4. في حالة اسم النطاق، أدخل mysql.internal.
  5. في حالة خادم اسم النطاق، أدخل عنوان IP لخادم DNS.
  6. اختار إنشاء مجموعة خيارات DHCP.
  7. انتقل إلى ام اس كيه في بي سي وعلى الإجراءات القائمة، اختر تحرير إعدادات VPC.
  8. حدد مجموعة خيارات DHCP التي تم إنشاؤها حديثًا واحفظها.
    تعرض لقطة الشاشة التالية أمثلة التكوينات.
  9. على وحدة تحكم Amazon EC2، انتقل إلى privateDNS_bastion_host.
  10. اختار حالة المثيل و إعادة تشغيل المثيل.
  11. انتظر بضع دقائق ثم اركض nslookup من مضيف المعقل؛ يجب أن يكون قادرًا على حل المشكلة باستخدام خادم DNS المحلي الخاص بك بدلاً من الطريق 53:
nslookup local.mysql.internal

الآن أصبح إعداد البنية التحتية الأساسية لدينا جاهزًا للانتقال إلى المرحلة التالية. كجزء من البنية التحتية الأساسية لدينا، قمنا بإعداد المكونات الرئيسية التالية بنجاح:

  • MSK وMySQL VPCs
  • الشبكات الفرعية
  • حالات EC2
  • التناظر VPC
  • جداول الطريق
  • بوابات NAT وبوابات الإنترنت
  • خادم DNS والتكوين
  • مجموعات الأمان المناسبة وقوائم NACL
  • قاعدة بيانات MySQL بالبيانات المطلوبة

في هذه المرحلة، يكون اسم MySQL DB DNS قابلاً للحل باستخدام خادم DNS مخصص بدلاً من Route 53.

قم بإعداد مجموعة MSK وMSK Connect

الخطوة التالية هي نشر مجموعة MSK وMSK Connect، والتي ستقوم بجلب السجلات من salesdb وإرسالها إلى خدمة تخزين أمازون البسيطة دلو (أمازون S3). في هذا القسم، نقدم شرحًا تفصيليًا لنسخ قاعدة بيانات MySQL (salesdb) إلى Amazon MSK باستخدام ديبيزيوم، موصل مفتوح المصدر. سيقوم الموصل بمراقبة أي تغييرات في قاعدة البيانات والتقاط أي تغييرات في الجداول.

باستخدام MSK Connect، يمكنك تشغيل أحمال عمل Apache Kafka Connect المُدارة بالكامل على AWS. يوفر MSK Connect الموارد المطلوبة ويقوم بإعداد المجموعة. فهو يراقب بشكل مستمر حالة الموصلات الصحية وحالتها الخاصة بالتسليم، ويقوم بإجراء التصحيحات وإدارة الأجهزة الأساسية، ويقوم بقياس الموصلات تلقائيًا لتتناسب مع التغييرات في الإنتاجية. ونتيجة لذلك، يمكنك تركيز مواردك على بناء التطبيقات بدلاً من إدارة البنية التحتية.

سيستفيد MSK Connect من خادم DNS المخصص في VPC ولن يعتمد على الطريق 53.

قم بإنشاء تكوين مجموعة MSK

أكمل الخطوات التالية لإنشاء مجموعة MSK:

  1. في وحدة تحكم Amazon MSK ، اختر تكوينات الكتلة مع مجموعات MSK في جزء التنقل.
  2. اختار تكوين التكوين.
  3. قم بتسمية التكوين mskc-tutorial-cluster-configuration.
  4. تحت خصائص التكوين، قم بإزالة كل شيء وأضف السطر auto.create.topics.enable=true.
  5. اختار إنشاء.

قم بإنشاء مجموعة MSK وقم بإرفاق التكوين

في الخطوة التالية، نعلق هذا التكوين على المجموعة. أكمل الخطوات التالية:

  1. في وحدة تحكم Amazon MSK ، اختر مجموعات مع مجموعات MSK في جزء التنقل.
  2. اختار إنشاء مجموعات و إنشاء مخصص.
  3. للحصول على اسم المجموعة، أدخل mkc-tutorial-cluster.
  4. تحت خصائص الكتلة العامة، اختر مخصص لنوع المجموعة واستخدم الإصدار الافتراضي Apache Kafka 2.8.1.
  5. استخدم كافة الخيارات الافتراضية لـ وسطاء و الخزائن أقسام.
  6. تحت تكوينات، اختر التكوين مخصص.
  7. أختار mskc-tutorial-cluster-configuration مع المراجعة المناسبة واختيار التالى.
  8. تحت الشبكات، اختر MSK VPC.
  9. حدد مناطق توافر الخدمات وفقًا لمنطقتك، مثل us-east1a, us-east1bو us-east1cوالشبكات الفرعية الخاصة المعنية MSK-Private-1, MSK-Private-2و MSK-Private-3 إذا كنت في us-east-1 منطقة. يجب أن يكون الوصول العام إلى هؤلاء الوسطاء معطلاً.
  10. انسخ معرف مجموعة الأمان من مجموعات الأمان المختارة.
  11. اختار التالى.
  12. تحت طرق التحكم في الوصول، حدد المصادقة المستندة إلى الدور IAM.
  13. في مجلة التشفير القسم، تحت بين العملاء والوسطاء, تشفير TLS سيتم تحديده بشكل افتراضي.
  14. في حالة إنكربيانات ypt في حالة راحة، حدد استخدم مفتاح AWS المُدار.
  15. استخدم الخيارات الافتراضية ل مراقبة وحدد المراقبة الأساسية.
  16. أختار تسليم إلى سجلات Amazon CloudWatch.
  17. تحت مجموعة السجل، اختر تفضل بزيارة وحدة تحكم Amazon CloudWatch Logs.
  18. اختار إنشاء مجموعة السجل.
  19. أدخل اسم مجموعة السجل ثم اختر إنشاء.
  20. العودة إلى الرصد والعلامات الصفحة وتحت مجموعات السجل، اختر اختر مجموعة السجل
  21. اختار التالى.
  22. راجع التكوينات واختر إنشاء الكتلة. ستتم إعادة توجيهك إلى صفحة التفاصيل الخاصة بالمجموعة.
  23. تحت تم تطبيق مجموعات الأمان، لاحظ معرف مجموعة الأمان الذي سيتم استخدامه في خطوة لاحقة.

يمكن أن يستغرق إنشاء المجموعة عادةً ما بين 25 إلى 30 دقيقة. تتغير حالته إلى نشط عند إنشائه بنجاح.

قم بتحديث ملف المنطقة /var/named/kafka.region.amazonaws.com

قبل إنشاء موصل MSK، قم بتحديث تكوينات خادم DNS بتفاصيل مجموعة MSK.

  1. للحصول على قائمة DNS لخادم bootstrap وعناوين IP المعنية، انتقل إلى المجموعة واختر عرض معلومات العميل.
  2. انسخ معلومات خادم التمهيد باستخدام نوع مصادقة IAM.
  3. يمكنك تحديد عناوين IP الخاصة بالوسيط باستخدام nslookup من جهازك المحلي وسيوفر لك عنوان IP المحلي للوسيط. حاليًا، تشير VPC الخاصة بك إلى أحدث مجموعة خيارات DHCP ولن يتمكن خادم DNS الخاص بك من حل أسماء DNS هذه من VPC الخاص بك.
    nslookup <broker 1 DNS name>

يمكنك الآن تسجيل الدخول إلى خادم DNS وتحديث السجلات الخاصة بالوسطاء المختلفين وعناوين IP المعنية في /var/named/kafka.region.amazonaws.com ملف.

  1. تحميل msk-access.pem ملف ل BastionHostInstance من جهازك المحلي:
    scp -i "< your pem file>" Your pem file ec2-user@<BastionHostInstance IP address>:/home/ec2-user/

  2. قم بتسجيل الدخول إلى خادم DNS وافتح /var/named/kafka.region.amazonaws.com ملف وتحديث الأسطر التالية بأسماء DNS الصحيحة لوسيط MSK وعناوين IP المعنية:
    <b-1.<clustername>.******.c6> IN A <Internal IP Address - broker 1>
    <b-2.<clustername>.******.c6> IN A <Internal IP Address - broker 2>
    <b-3.<clustername>.******.c6> IN A <Internal IP Address - broker 3>
    

لاحظ أنك تحتاج إلى توفير DNS للوسيط كما ذكرنا سابقًا. يزيل .kafka.<region id>.amazonaws.com من اسم DNS الوسيط.

  1. أعد تشغيل خدمة DNS:
    sudo su
    service named restart

يجب أن تشاهد الرسالة التالية:

Redirecting to /bin/systemctl restart named.service

خادم DNS المخصص الخاص بك جاهز للعمل الآن ويجب أن تكون قادرًا على حل المشكلة باستخدام أسماء DNS الوسيطة باستخدام خادم DNS الداخلي.

قم بتحديث مجموعة الأمان للاتصال بين قاعدة بيانات MySQL وMSK Connect

من المهم أن يكون لديك الاتصال المناسب بين MSK Connect وقاعدة بيانات MySQL. أكمل الخطوات التالية:

  1. على وحدة تحكم Amazon MSK، انتقل إلى مجموعة MSK وتحتها إعدادات الشبكة، انسخ مجموعة الأمان.
  2. في وحدة تحكم Amazon EC2 ، اختر مجموعات الأمان في جزء التنقل.
  3. تحرير مجموعة الأمان MySQL_SG واختر إضافة قاعدة.
  4. أضف قاعدة باستخدام MySQL/Aurora كنوع ومجموعة أمان MSK كمورد وارد لمصدرها.
  5. اختار حفظ القواعد.

قم بإنشاء موصل MSK

لإنشاء موصل MSK، أكمل الخطوات التالية:

  1. في وحدة تحكم Amazon MSK ، اختر الموصلات مع اتصال MSK في جزء التنقل.
  2. اختار إنشاء موصل.
  3. أختار إنشاء مكون إضافي مخصص.
  4. قم بتنزيل المكون الإضافي لموصل MySQL للحصول على أحدث إصدار ثابت من ديبيزيوم الموقع أو التحميل Debezium.zip.
  5. قم بتحميل الملف المضغوط لموصل MySQL إلى حاوية S3.
  6. انسخ عنوان URL للملف، مثل s3://<bucket name>/Debezium.zip.
  7. العودة إلى اختر البرنامج المساعد المخصص الصفحة وأدخل مسار ملف S3 لـ S3 URI.
  8. في حالة اسم البرنامج المساعد المخصص، أدخل mysql-plugin.
  9. اختار التالى.
  10. في حالة الاسم، أدخل mysql-connector.
  11. في حالة الوصف، أدخل وصفًا للموصل.
  12. في حالة نوع الكتلة، اختر مجموعة إم إس كيه.
  13. حدد المجموعة الموجودة من القائمة (لهذا المنشور، mkc-tutorial-cluster).
  14. حدد نوع المصادقة كـ IAM.
  15. استخدم القيم التالية ل تكوين الموصل:
    connector.class=io.debezium.connector.mysql.MySqlConnector
    database.history.producer.sasl.mechanism=AWS_MSK_IAM
    database.history.producer.sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
    database.allowPublicKeyRetrieval=true
    database.user=master
    database.server.id=123456
    tasks.max=1
    database.history.consumer.sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
    database.history.producer.security.protocol=SASL_SSL
    database.history.kafka.topic=dbhistory.salesdb
    database.history.kafka.bootstrap.servers=b-3.xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098,b-1.xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098,b-2. xxxxx.yyyy.zz.kafka.us-east-2.amazonaws.com:9098
    database.server.name=salesdb-server
    database.history.producer.sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
    database.history.consumer.sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
    database.history.consumer.security.protocol=SASL_SSL
    database.port=3306
    include.schema.changes=true
    database.hostname=local.mysql.internal
    database.password=xxxxxx
    table.include.list=salesdb.SALES_ORDER,salesdb.SALES_ORDER_ALL,salesdb.CUSTOMER
    database.history.consumer.sasl.mechanism=AWS_MSK_IAM
    database.include.list=salesdb
    

  16. قم بتحديث تكوين الموصل التالي:
    database.user=master
    database.hostname=local.mysql.internal
    database.password=<MySQLMasterUserPassword>
    

  17. في حالة نوع السعة، اختر مخصص.
  18. في حالة عدد MCU لكل عامل، أدخل 1.
  19. في حالة عدد العمال، أدخل 1.
  20. أختار استخدم التكوين الافتراضي لـ MSK.
  21. في مجلة أذونات الوصول قسم، على اختر دور الخدمة القائمة، اختر MSK-Connect-PrivateDNS-MySQLConnector*، ثم اختر التالى.
  22. في مجلة حماية القسم، والحفاظ على الإعدادات الافتراضية.
  23. في مجلة سجلات القسم، حدد قم بالتسليم إلى سجلات Amazon CloudWatch.
  24. اختار تفضل بزيارة وحدة تحكم Amazon CloudWatch Logs.
  25. تحت سجلات في جزء التنقل ، اختر مجموعة السجل.
  26. اختار إنشاء مجموعة السجل.
  27. أدخل اسم مجموعة السجل، وإعدادات الاحتفاظ، والعلامات، ثم اختر إنشاء.
  28. ارجع إلى صفحة إنشاء الموصل واختر تصفح مجموعة السجل.
  29. اختيار AmazonMSKConnect سجل المجموعة، ثم اختر التالى.
  30. راجع التكوينات واختر إنشاء موصل.

انتظر حتى تكتمل عملية إنشاء الموصل (حوالي 10-15 دقيقة).

موصل MSK Connect قيد التشغيل الآن. يمكنك تسجيل الدخول إلى قاعدة بيانات MySQL باستخدام معرف المستخدم الخاص بك وإجراء بعض التغييرات على سجل جدول العميل. سيكون MSK Connect قادرًا على تلقي سجلات CDC وستكون تحديثات قاعدة البيانات متاحة في MSK عنوان.

تستهلك الرسائل من موضوع MSK

لاستهلاك الرسائل من موضوع MSK، قم بتشغيل عميل Kafka على MSK_Client يتوفر مثيل EC2 في MSK VPC.

  1. SSH إلى MSK_Client مثيل EC2. ال MSK_Client يحتوي المثيل على مكتبات عميل Kafka المطلوبة، وملف Amazon MSK IAM JAR، client.properties الملف وملف تعريف المثيل المرفق به، بالإضافة إلى دور IAM المناسب باستخدام قالب CloudFormation.
  2. إضافة MSKClientSG مجموعة الأمان كمصدر لمجموعة أمان MSK بالخصائص التالية:
    • في حالة النوع، اختر كل حركة المرور.
    • في حالة مصدر، اختر مجموعة الأمان المخصصة وMSK.

    أنت الآن جاهز لاستهلاك البيانات.

  3. لسرد المواضيع، قم بتشغيل الأمر التالي:
    ./kafka-topics.sh --bootstrap-server <BootstrapServerString>

  4. لاستهلاك البيانات من salesdb-server.salesdb.CUSTOMER الموضوع استخدم الأمر التالي:
    ./kafka-console-consumer.sh --bootstrap-server <BootstrapServerString> --consumer.config client.properties --topic salesdb-server.salesdb.CUSTOMER --from-beginning

قم بتشغيل عميل Kafka على جهاز EC2 الخاص بك وستتمكن من تسجيل رسائل مشابهة لما يلي:

Struct{after=Struct{CUST_ID=1998.0,NAME=Customer Name 1998,MKTSEGMENT=Market Segment 3},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=true,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{after=Struct{CUST_ID=1999.0,NAME=Customer Name 1999,MKTSEGMENT=Market Segment 7},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=true,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{after=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment 9},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678099992174,snapshot=last,db=salesdb,table=CUSTOMER,server_id=0,file=binlog.000001,pos=43298383,row=0},op=r,ts_ms=1678099992174}
Struct{before=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment 9},after=Struct{CUST_ID=2000.0,NAME=Customer Name 2000,MKTSEGMENT=Market Segment10},source=Struct{version=1.9.5.Final,connector=mysql,name=salesdb-server,ts_ms=1678100372000,db=salesdb,table=CUSTOMER,server_id=1,file=binlog.000001,pos=43298616,row=0,thread=67},op=u,ts_ms=1678100372612}

أثناء اختبار التطبيق، تم تحديث السجلات ذات CUST_ID 1998 و1999 و2000، وتتوفر هذه السجلات في السجلات.

تنظيف

من الممارسات الجيدة دائمًا تنظيف جميع الموارد التي تم إنشاؤها كجزء من هذا المنشور لتجنب أي تكلفة إضافية. لتنظيف مواردك، احذف مجموعة MSK واتصال MSK Connect ومثيلات EC2 وخادم DNS ومضيف الأساس وحاوية S3 وVPC والشبكات الفرعية وسجلات CloudWatch.

بالإضافة إلى ذلك، قم بتنظيف جميع موارد AWS الأخرى التي قمت بإنشائها باستخدام AWS CloudFormation. يمكنك حذف هذه الموارد على وحدة تحكم AWS CloudFormation عن طريق حذف المكدس.

وفي الختام

في هذا المنشور، ناقشنا عملية إعداد MSK Connect باستخدام DNS خاص. تسمح لك هذه الميزة بتكوين الموصلات للإشارة إلى أسماء النطاقات العامة أو الخاصة.

نحن قادرون على تلقي التحميل الأولي وسجلات CDC من قاعدة بيانات MySQL مستضافة في VPC منفصل ولا يمكن الوصول إلى DNS الخاص به أو حله خارجيًا. تمكن MSK Connect من الاتصال بقاعدة بيانات MySQL واستهلاك السجلات باستخدام ميزة DNS الخاصة بـ MSK Connect. تم إرفاق مجموعة خيارات DHCP المخصصة بـ VPC، مما يضمن إجراء تحليل DNS باستخدام خادم DNS المحلي بدلاً من الطريق 53.

باستخدام ميزة دعم DNS الخاص من MSK Connect، يمكنك جعل قواعد البيانات ومستودعات البيانات والأنظمة مثل المديرين السريين الذين يعملون مع VPC الخاص بك غير قابلة للوصول إلى الإنترنت وتكون قادرًا على التغلب على هذا القيد والامتثال لموقف أمان شركتك.

لمعرفة المزيد والبدء ، راجع DNS الخاص للاتصال MSK.


عن المؤلف

عمار هو مهندس حلول أول في Amazon AWS في المملكة المتحدة. وهو يعمل عبر عملاء الطاقة والمرافق والتصنيع والسيارات على التطبيقات الإستراتيجية، ويتخصص في استخدام AWS Streaming وحلول تحليلات البيانات المتقدمة لتحقيق نتائج الأعمال المثلى.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة