RStudio على Amazon SageMaker هو أول منضدة RStudio Workbench تتم إدارتها بالكامل في الصناعة في السحابة. يمكنك إطلاق بيئة التطوير المتكاملة RStudio المألوفة (IDE) بسرعة ، والاتصال الهاتفي بموارد الحوسبة الأساسية وخفضها دون مقاطعة عملك ، مما يسهل بناء التعلم الآلي (ML) وحلول التحليلات في R على نطاق واسع. يأتي RStudio على SageMaker مع ملف صورة مدمجة تم تكوينه مسبقًا باستخدام أدوات برمجة R وعلوم البيانات ؛ ومع ذلك ، غالبًا ما تحتاج إلى تخصيص بيئة IDE الخاصة بك. بدءًا من اليوم ، يمكنك إحضار صورتك المخصصة مع الحزم والأدوات التي تختارها ، وإتاحتها لجميع مستخدمي RStudio على SageMaker ببضع نقرات.
إحضار صورتك المخصصة له فوائد عديدة. يمكنك توحيد تجربة البدء وتبسيطها لعلماء البيانات والمطورين من خلال توفير صورة أولية ، أو تكوين برامج التشغيل المطلوبة مسبقًا للاتصال بمخازن البيانات ، أو التثبيت المسبق لبرامج علوم البيانات المتخصصة لمجال عملك. علاوة على ذلك ، قد يكون لدى المؤسسات التي استضافت RStudio Workbench الخاصة بها بيئات حاوية حالية تريد الاستمرار في استخدامها في RStudio على SageMaker.
في هذا المنشور ، نشارك التعليمات خطوة بخطوة لإنشاء صورة مخصصة وإحضارها إلى RStudio على SageMaker باستخدام وحدة تحكم إدارة AWS or واجهة سطر الأوامر AWS (AWS CLI). يمكنك الحصول على أول بيئة IDE مخصصة وتشغيلها في بضع خطوات بسيطة. لمزيد من المعلومات حول المحتوى الذي تمت مناقشته في هذا المنشور ، يرجى الرجوع إلى أحضر صورة RStudio الخاصة بك.
حل نظرة عامة
عندما يبدأ عالم البيانات جلسة جديدة في RStudio على SageMaker ، يتم توفير مثيل جديد لحساب ML عند الطلب ويتم تشغيل صورة حاوية تحدد بيئة وقت التشغيل (نظام التشغيل والمكتبات وإصدارات R وما إلى ذلك) على ML نموذج. يمكنك توفير خيارات متعددة لعلماء البيانات لبيئة وقت التشغيل عن طريق إنشاء صور حاوية مخصصة وإتاحتها على مشغل RStudio Workbench ، كما هو موضح في لقطة الشاشة التالية.
يصف الرسم التخطيطي التالي عملية إحضار صورتك المخصصة. أولاً ، تقوم بإنشاء صورة حاوية مخصصة من Dockerfile ودفعها إلى مستودع فيه سجل الأمازون المرنة للحاويات (أمازون ECR). بعد ذلك ، يمكنك إنشاء صورة SageMaker تشير إلى صورة الحاوية في Amazon ECR ، وإرفاق تلك الصورة بملف المجال SageMaker. هذا يجعل الصورة المخصصة متاحة لبدء جلسة جديدة في RStudio.
المتطلبات الأساسية المسبقة
لتنفيذ هذا الحل ، يجب أن تتوفر لديك المتطلبات الأساسية التالية:
- RStudio على مجال SageMaker
- إدارة الهوية والوصول AWS (IAM) للتفاعل مع Amazon ECR
- إصدار AWS CLI المناسب
نحن نقدم المزيد من التفاصيل حول كل في هذا القسم.
RStudio على مجال SageMaker
إذا كان لديك مجال SageMaker موجود مع تمكين RStudio قبل 7 أبريل 2022 ، فيجب عليك حذف وإعادة إنشاء RStudioServerPro
التطبيق تحت اسم ملف تعريف المستخدم domain-shared
للحصول على آخر التحديثات لجلب إمكانية الصور المخصصة الخاصة بك. أوامر AWS CLI هي كما يلي. لاحظ أن هذا الإجراء يقاطع مستخدمي RStudio على SageMaker.
إذا كانت هذه هي المرة الأولى التي تستخدم فيها RStudio على SageMaker ، فاتبع عملية الإعداد خطوة بخطوة الموضحة في ابدأ مع RStudio على Amazon SageMaker، أو قم بتشغيل ما يلي تكوين سحابة AWS لإعداد أول RStudio على مجال SageMaker. إذا كان لديك بالفعل RStudio يعمل على مجال SageMaker ، فيمكنك تخطي هذه الخطوة.
يتطلب نموذج RStudio التالي على SageMaker CloudFormation ترخيص RStudio معتمدًا من خلال AWS License Manager. لمزيد من المعلومات حول الترخيص ، يرجى الرجوع إلى رخصة RStudio. لاحظ أيضًا أنه يُسمح بمجال SageMaker واحد فقط لكل منطقة AWS ، لذلك ستحتاج إلى استخدام حساب AWS ومنطقة ليس بها مجال موجود.
- اختار قم بتشغيل Stack.
ينقلك الرابط إلى منطقة us-east-1 ، ولكن يمكنك التغيير إلى منطقتك المفضلة. - في مجلة حدد النموذج القسم، اختر التالى.
- في مجلة حدد تفاصيل المكدس القسم ل اسم المكدس، إدخال اسم.
- في حالة المعلمات، أدخل اسم ملف تعريف مستخدم SageMaker.
- اختار التالى.
- في مجلة تكوين خيارات المكدس القسم، اختر التالى.
- في مجلة التقيم القسم، حدد أقر بأن AWS CloudFormation قد تنشئ موارد IAM واختر التالى.
- عندما تتغير حالة المكدس إلى
CREATE_COMPLETE
اذهب الى لوحة التحكم على وحدة تحكم SageMaker للعثور على المجال والمستخدم الجديد.
سياسات IAM للتفاعل مع Amazon ECR
للتفاعل مع مستودعات Amazon ECR الخاصة بك ، تحتاج إلى أذونات IAM التالية في مستخدم IAM أو الدور الذي ستستخدمه لإنشاء صور Docker ودفعها:
للإنشاء مبدئيًا من صورة Amazon ECR عامة كما هو موضح في هذا المنشور ، تحتاج إلى إرفاق AWS المُدارة AmazonElasticContainerRegistryPublicReadOnly سياسة لمستخدم IAM أو دورك أيضًا.
لإنشاء صورة حاوية Docker ، يمكنك استخدام عميل Docker محلي أو ملف بناء SageMaker Docker أداة CLI من محطة طرفية داخل RStudio على SageMaker. بالنسبة لهذا الأخير ، اتبع الشروط المسبقة في استخدام Amazon SageMaker Studio Image Build CLI لإنشاء صور حاوية من دفاتر ملاحظات Studio الخاصة بك لإعداد أذونات IAM وأداة CLI.
إصدارات AWS CLI
هناك حد أدنى لمتطلبات الإصدار لأداة AWS CLI لتشغيل الأوامر المذكورة في هذا المنشور. تأكد من ترقية AWS CLI على الجهاز الذي تختاره:
- AWS CLI v1> = 1.23.6
- AWS CLI v2> = 2.6.2
تحضير ملف Dockerfile
يمكنك تخصيص بيئة وقت التشغيل الخاصة بك في RStudio في Dockerfile. نظرًا لأن التخصيص يعتمد على حالة الاستخدام والمتطلبات الخاصة بك ، فإننا نعرض لك الأساسيات والتخصيصات الأكثر شيوعًا في هذا المثال. يمكنك تنزيل ملف عينة Dockerfile.
قم بتثبيت مكونات جلسة RStudio Workbench
يعد RStudio Workbench أهم البرامج التي يجب تثبيتها في صورة الحاوية المخصصة الخاصة بك. نقوم بالتنزيل من ملف دلو S3 العام الذي تستضيفه RStudio PBC. هناك العديد من إصدارات الإصدارات وتوزيعات نظام التشغيل للاستخدام. يجب أن يكون إصدار التثبيت متوافقًا مع إصدار RStudio Workbench المستخدم في RStudio على SageMaker ، وهو 1.4.1717-3 وقت كتابة هذا التقرير. يحتاج نظام التشغيل (نظام التشغيل الوسيطة في المقتطف التالي) إلى مطابقة القاعدة OS
المستخدمة في صورة الحاوية. في عينتنا Dockerfile، الصورة الأساسية التي نستخدمها هي Amazon Linux 2 من مستودع Amazon ECR العام الذي تديره AWS. نظام التشغيل RStudio Workbench المتوافق هو centos7.
يمكنك العثور على جميع خيارات إصدار نظام التشغيل باستخدام الأمر التالي:
تثبيت R (وإصدارات R)
يحتاج وقت تشغيل صورة حاوية RStudio المخصصة إلى إصدار واحد على الأقل من R. يمكننا أولاً تثبيت إصدار R وجعله R الافتراضي عن طريق إنشاء روابط ناعمة إلى /usr/local/bin/
:
غالبًا ما يحتاج علماء البيانات إلى إصدارات متعددة من R حتى يتمكنوا من التبديل بسهولة بين المشاريع وقاعدة الكود. يدعم RStudio على SageMaker التبديل السهل بين إصدارات R ، كما هو موضح في لقطة الشاشة التالية.
RStudio على SageMaker يقوم تلقائيًا بمسح واكتشاف إصدارات R في الدلائل التالية:
يمكننا تثبيت المزيد من الإصدارات في صورة الحاوية ، كما هو موضح في المقتطف التالي. سيتم تثبيتها في /opt/R/
.
قم بتثبيت برامج تشغيل RStudio Professional
غالبًا ما يحتاج علماء البيانات إلى الوصول إلى البيانات من مصادر مثل أمازون أثينا و الأمازون الأحمر داخل RStudio على SageMaker. يمكنك القيام بذلك باستخدام السائقين المحترفين RStudio و اتصالات RStudio. تأكد من تثبيت المكتبات وبرامج التشغيل ذات الصلة كما هو موضح في المقتطف التالي:
تثبيت مكتبات مخصصة
يمكنك أيضًا تثبيت مكتبات R و Python إضافية بحيث لا يحتاج علماء البيانات إلى تثبيتها بسرعة:
عندما تنتهي من التخصيص في Dockerfile ، حان الوقت لإنشاء صورة حاوية ودفعها إلى Amazon ECR.
قم بالبناء والدفع إلى Amazon ECR
يمكنك إنشاء صورة حاوية من Dockerfile من محطة طرفية حيث تم تثبيت محرك Docker ، مثل المحطة المحلية أو سحابة AWS 9. إذا كنت تقوم ببنائه من محطة طرفية داخل RStudio على SageMaker ، فيمكنك استخدام برنامج SageMaker Studio Image Build. نوضح خطوات كلا النهجين.
في محطة طرفية محلية حيث يوجد محرك Docker ، يمكنك تشغيل الأوامر التالية من حيث يوجد Dockerfile. يمكنك استخدام نموذج البرنامج النصي إنشاء و تحديث الصورة.
في محطة على RStudio على SageMaker ، قم بتشغيل الأوامر التالية:
بعد هذه الأوامر ، لديك مستودع وصورة حاوية Docker في Amazon ECR لخطوتنا التالية ، حيث نرفق صورة الحاوية لاستخدامها في RStudio على SageMaker. لاحظ عنوان URI للصورة في Amazon ECR <ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>:<TAG>
لاستخدامها لاحقًا.
قم بتحديث RStudio على SageMaker من خلال وحدة التحكم
يسمح RStudio على SageMaker بتخصيص وقت التشغيل من خلال استخدام صورة SageMaker مخصصة. صورة SageMaker عبارة عن حامل لمجموعة من إصدارات صور SageMaker. يمثل كل إصدار صورة صورة حاوية متوافقة مع RStudio على SageMaker ويتم تخزينها في مستودع Amazon ECR. لإتاحة صورة SageMaker مخصصة لجميع مستخدمي RStudio داخل المجال ، يمكنك إرفاق الصورة بالمجال باتباع الخطوات الواردة في هذا القسم.
- في وحدة تحكم SageMaker ، انتقل إلى ملف يتم إرفاق صور استوديو SageMaker المخصصة بالمجال الصفحة ، واختر إرفاق صورة.
- أختار صورة جديدة، وأدخل عنوان URI لصورة Amazon ECR.
- اختار التالى.
- في مجلة خصائص الصورة القسم ، توفير اسم الصورة (مطلوب)، اسم عرض الصورة (اختياري)، الوصف (اختياري) ودور IAM والعلامات.
• اسم عرض الصورة، إذا تم توفيره ، يتم عرضه في مشغل الجلسة في RStudio على SageMaker. إذا كان اسم عرض الصورة يتم ترك الحقل فارغًا ، اسم الصورة يظهر في RStudio على SageMaker بدلاً من ذلك. - يترك مسار جبل EFS و التكوين المتقدم (هوية المستخدم و مجموعة معرف) افتراضيًا لأن RStudio على SageMaker يدير التكوين لنا.
- في مجلة نوع الصورة القسم، حدد صورة RStudio.
- اختار تقدم.
يمكنك الآن رؤية إدخال جديد في القائمة. تجدر الإشارة إلى أنه مع تقديم دعم صور RStudio المخصصة ، يمكنك رؤية ملف نوع الاستخدام عمود في الجدول للإشارة إلى ما إذا كانت الصورة عبارة عن صورة RStudio أم ملف أمازون ساجميكر ستوديو صورة.
قد يستغرق الأمر ما يصل إلى 5-10 دقائق حتى تكون الصور المخصصة متاحة في واجهة مستخدم مشغل الجلسة. يمكنك بعد ذلك بدء جلسة R جديدة في RStudio على SageMaker باستخدام صورك المخصصة.
بمرور الوقت ، قد ترغب في سحب الصور القديمة والقديمة. لإزالة الصور المخصصة من قائمة الصور المخصصة في RStudio ، حدد الصور في القائمة واختر فصل.
اختار فصل مرة أخرى للتأكيد.
قم بتحديث RStudio على SageMaker عبر AWS CLI
تصف الأقسام التالية خطوات إنشاء صورة SageMaker وإرفاقها لاستخدامها في RStudio على SageMaker على وحدة تحكم SageMaker واستخدام AWS CLI. يمكنك استخدام نموذج البرنامج النصي إنشاء و تحديث الصورة.
قم بإنشاء نسخة الصورة والصورة من SageMaker
تتمثل الخطوة الأولى في إنشاء صورة SageMaker من صورة الحاوية المخصصة في Amazon ECR عن طريق تشغيل الأمرين التاليين:
لاحظ أن الصورة المخصصة المعروضة في مشغل الجلسة في RStudio على SageMaker يتم تحديدها من خلال إدخال --display-name
. إذا لم يتم توفير اسم العرض الاختياري ، فسيتم إدخال --image-name
يستخدم بدلا من ذلك. لاحظ أيضًا أن دور IAM يسمح لـ SageMaker بإرفاق صورة Amazon ECR بـ RStudio على SageMaker.
قم بإنشاء AppImageConfig
بالإضافة إلى صورة SageMaker ، التي تلتقط صورة URI من Amazon ECR ، وهي تكوين صورة التطبيق (AppImageConfig) مطلوب للاستخدام في مجال SageMaker. نبسط تكوين ملف RSessionApp
image حتى نتمكن من إنشاء تكوين عنصر نائب باستخدام الأمر التالي:
إرفاق بمجال SageMaker
من خلال إنشاء صورة SageMaker وتكوين صورة التطبيق ، نحن على استعداد لإرفاق صورة الحاوية المخصصة بمجال SageMaker. لإتاحة صورة SageMaker مخصصة لجميع مستخدمي RStudio داخل مجال ، يمكنك إرفاق الصورة بالمجال كإعداد افتراضي للمستخدم. سيتمكن جميع المستخدمين الحاليين وأي مستخدمين جدد من استخدام الصورة المخصصة.
لسهولة القراءة ، نضع التكوين التالي في ملف JSON الافتراضي-user-settings.json:
في هذا الملف ، يمكننا تحديد الصورة و AppImageConfig
أزواج الأسماء في قائمة بتنسيق DefaultUserSettings.RSessionAppSettings.CustomImages
. يفترض هذا المقتطف السابق أنه يتم إنشاء صورتين مخصصتين.
ثم قم بتشغيل الأمر التالي لتحديث مجال SageMaker:
بعد تحديث domaim ، قد يستغرق الأمر ما يصل إلى 5-10 دقائق حتى تكون الصور المخصصة متاحة في واجهة مستخدم مشغل الجلسة. يمكنك بعد ذلك بدء جلسة R جديدة في RStudio على SageMaker باستخدام صورك المخصصة.
افصل الصور من مجال SageMaker
يمكنك فصل الصور ببساطة عن طريق إزالة ImageName
و AppImageConfigName
أزواج من default-user-settings.json
وتحديث المجال.
على سبيل المثال ، تحديث المجال بما يلي default-user-settings.json
يزيل r-4.1.3-rstudio-2022
من جلسة R إطلاق واجهة المستخدم والمغادرة r-4.1.3-rstudio-1.4.1717-3
باعتبارها الصورة المخصصة الوحيدة المتاحة لجميع المستخدمين في المجال:
تنظيف
لإزالة الصور والموارد بأمان في مجال SageMaker ، أكمل الخطوات التالية في تنظيف موارد الصورة.
لإزالة RStudio بأمان على SageMaker ومجال SageMaker ، أكمل الخطوات التالية في احذف مجال Amazon SageMaker لحذف أي تطبيق RSessionGateway وملف تعريف المستخدم والمجال.
لإزالة الصور والمستودعات بأمان في Amazon ECR ، أكمل الخطوات التالية في حذف صورة.
أخيرًا ، لحذف نموذج CloudFormation:
- في وحدة تحكم AWS CloudFormation ، اختر Stacks.
- حدد الحزمة التي قمت بنشرها لهذا الحل.
- اختر حذف.
وفي الختام
يجعل RStudio على SageMaker الأمر سهلاً لعلماء البيانات لبناء حلول ML والتحليلية في R على نطاق واسع ، وللمسؤولين لإدارة بيئة قوية لعلوم البيانات لمطوريهم. يريد علماء البيانات تخصيص البيئة بحيث يمكنهم استخدام المكتبات المناسبة للوظيفة المناسبة وتحقيق القابلية للتكرار المطلوب لكل مشروع ML. يحتاج المسؤولون إلى توحيد بيئة علوم البيانات لأسباب تنظيمية وأمنية. يمكنك الآن إنشاء صور حاوية مخصصة تلبي متطلبات مؤسستك وتسمح لعلماء البيانات باستخدامها في RStudio على SageMaker.
نحن نشجعك على تجربتها تطوير سعيد!
حول المؤلف
مايكل هسيه مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي. إنه يعمل مع العملاء لتطوير رحلة ML الخاصة بهم من خلال مجموعة من عروض AWS ML ومعرفته بمجال ML. بصفته عملية زرع في سياتل ، فهو يحب استكشاف الطبيعة الأم العظيمة التي توفرها المدينة ، مثل مسارات المشي لمسافات طويلة والتجديف بالكاياك في SLU وغروب الشمس في خليج شيلشول.
ديكلان كيلي هو مهندس برمجيات في فريق Amazon SageMaker Studio. لقد كان يعمل في Amazon SageMaker Studio منذ إطلاقه في AWS re: Invent 2019. خارج العمل ، يستمتع بالتنزه والتسلق.
شون مورغان هو مهندس حلول AI / ML في AWS. لديه خبرة في مجالات البحث الأكاديمي وأشباه الموصلات ، ويستخدم خبرته لمساعدة العملاء على تحقيق أهدافهم على AWS. في أوقات فراغه ، يعد Sean مساهمًا نشطًا مفتوح المصدر ومشرفًا ، وهو قائد مجموعة الاهتمامات الخاصة لـ TensorFlow Add-ons.
- كوينسمارت. أفضل بورصة للبيتكوين والعملات المشفرة في أوروبا.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. دخول مجاني.
- كريبتوهوك. الرادار. تجربة مجانية.
- المصدر: https://aws.amazon.com/blogs/machine-learning/use-a-custom-image-to-bring-your-own-development-environment-to-rstudio-on-amazon-sagemaker/
- "
- &
- 1.3
- 10
- 100
- 2019
- 2022
- 7
- a
- من نحن
- الوصول
- حسابي
- التأهيل
- اكشن
- نشط
- إضافة
- إضافي
- الإداريين
- تقدم
- الكل
- يسمح
- سابقا
- أمازون
- تحليلات
- التطبيق
- اقتراب
- مناسب
- ابريل
- متاح
- AWS
- خليج
- لان
- يجري
- الفوائد
- أفضل
- ما بين
- الحدود
- جلب
- نساعدك في بناء
- ابني
- الأعمال
- يستطيع الحصول على
- يلتقط
- حقيبة
- تغيير
- خيار
- الخيارات
- اختار
- المدينة
- سحابة
- الكود
- عمود
- مجموعة
- مشترك
- متوافق
- إكمال
- إحصاء
- الاعداد
- الرابط
- كنسولات
- وعاء
- محتوى
- استمر
- مساهم
- خلق
- خلق
- خلق
- على
- العملاء
- تصميم
- البيانات
- علم البيانات
- عالم البيانات
- شرح
- يعتمد
- نشر
- وصف
- وصف
- تفاصيل
- المطورين
- التطوير التجاري
- العرض
- التوزيعات
- عامل في حوض السفن
- لا
- نطاق
- إلى أسفل
- بإمكانك تحميله
- كل
- بسهولة
- تأثير
- شجع
- محرك
- مهندس
- أدخل
- البيئة
- الضروريات
- مثال
- القائمة
- الخبره في مجال الغطس
- مألوف
- مجال
- الاسم الأول
- لأول مرة
- اتباع
- متابعيك
- متابعات
- مجانًا
- تبدأ من
- بالإضافة إلى
- علاوة على ذلك
- الحصول على
- الأهداف
- عظيم
- تجمع
- سعيد
- مساعدة
- حائز
- استضافت
- لكن
- HTTPS
- هوية
- صورة
- صور
- تنفيذ
- أهمية
- الصناعة
- معلومات
- إدخال
- تثبيت
- مثل
- المتكاملة
- مصلحة
- IT
- وظيفة
- رحلة
- المعرفة
- آخر
- إطلاق
- إطلاق
- قيادة
- تعلم
- حقوق الملكية الفكرية
- الترخيص
- خط
- LINK
- وصلات
- لينكس
- قائمة
- محلي
- آلة
- آلة التعلم
- جعل
- يصنع
- القيام ب
- إدارة
- تمكن
- إدارة
- مدير
- مباراة
- المذكورة
- ربما
- الحد الأدنى
- ML
- الأكثر من ذلك
- مورغان
- أكثر
- الأم وطفلها الجديد
- متعدد
- الطبيعة
- التنقل
- إحتياجات
- التالي
- عرض
- عروض
- تعمل
- نظام التشغيل
- مزيد من الخيارات
- التنظيمية
- المنظمات
- الخاصة
- نقاط
- سياسات الخصوصية والبيع
- سياسة
- المفضل
- يقدم
- خاص
- عملية المعالجة
- محترف
- ملفي الشخصي
- برمجة وتطوير
- تنفيذ المشاريع
- مشروع ناجح
- تزود
- المقدمة
- توفير
- جمهور
- بسرعة
- RE
- الوصول
- الأسباب
- منطقة
- المنظمين
- الافراج عن
- النشرات
- ذات الصلة
- إزالة
- مستودع
- يمثل
- مطلوب
- المتطلبات الأساسية
- يتطلب
- بحث
- مورد
- الموارد
- النوع
- يجري
- تشغيل
- بسلام
- حجم
- علوم
- عالم
- العلماء
- شون
- أمن
- أشباه الموصلات
- طقم
- ضبط
- الإعداد
- عدة
- مشاركة
- إظهار
- أظهرت
- الاشارات
- منذ
- So
- ناعم
- تطبيقات الكمبيوتر
- مهندس البرمجيات
- الصلبة
- حل
- الحلول
- تختص
- متخصص
- متخصص
- كومة
- بدأت
- يبدأ
- ملخص الحساب
- الحالة
- فروعنا
- ستوديو
- غروب
- الدعم
- الدعم
- مفاتيح
- نظام
- فريق
- محطة
- •
- عبر
- الوقت
- اليوم
- أداة
- أدوات
- ui
- مع
- تحديث
- آخر التحديثات
- تحديث
- us
- تستخدم
- المستخدمين
- الإصدار
- سواء
- في غضون
- بدون
- للعمل
- عامل
- أعمال
- قيمة
- جاري الكتابة
- حل متجر العقارات الشامل الخاص بك في جورجيا