النشر على AWS

دليل خطوة بخطوة لنشر OpenReplay على Amazon AWS.

النشر على AWS

Video Tutorial

شاهد كيفية نشر OpenReplay في بنيتك التحتية على AWS

إذا كنت لا تحب القراءة، يمكنك متابعة هذا الفيديو التعليمي الذي يوضح لك كيفية نشر OpenReplay على AWS

يمكن تثبيت حزمة OpenReplay على جهاز واحد، ويُعد AWS EC2 مرشحًا مثاليًا.

  1. اذهب إلى لوحة تحكم AWS EC2
  2. ‘Launch a new instance’ (بنية معمارية قائمة على x86)
  3. اختر AMI الخاص بك. لهذا الدليل، سنستخدم Ubuntu Server 22.04 LTS
  4. اختر نوع النسخة الخاص بك. الحد الأدنى من المواصفات هو 2 vCPUs, 8 GB of RAM, 50 GB of storage، وإلا فإن خدمات الخلفية الخاصة بـ OpenReplay لن تبدأ ببساطة. لذلك، نوصي على الأقل بـ t3.large (أو ما يعادلها)، وهو كافٍ لحجم منخفض/معتدل. إذا كنت تتوقع حركة مرور عالية، فيجب أن تبدأ التوسع من هنا.
  5. تكوين تفاصيل النسخة: اضبط معلمات الشبكة/الشبكة الفرعية إذا لزم الأمر أو احتفظ ببساطة بالإعدادات الافتراضية
  6. إضافة تخزين: اضبط الحجم على 50 GB (General Purpose SSD (gp2))
  7. إضافة علامات: اضبط المعلمات أو احتفظ بالإعدادات الافتراضية
  8. مجموعات الأمان: احتفظ بقاعدة SSH الحالية وأضف قاعدتين أخريين لـ HTTP (80) و HTTPS (443) (source: 0.0.0.0/0). تأكد من أن منافذ DNS (TCP/UDP) مفتوحة في مجموعة الأمان الصادرة
  9. انقر على ‘Review and Launch’
  10. أنشئ/نزّل مفتاح SSH ثم اضغط على ‘Launch instances’
  1. تأكد من أن نسختك في حالة Running ثم اتصل بها:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem #! wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_INSTANCE_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY ubuntu@$INSTANCE_IP
  1. قم بتثبيت OpenReplay عن طريق تقديم النطاق الذي سيعمل عليه (مثال: DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

يتعامل OpenReplay مع بيانات المستخدم الحساسة، وبالتالي يتطلب HTTPS للعمل. هذا إلزامي، وإلا فإن المتعقّب ببساطة لن يبدأ التسجيل. الأمر نفسه ينطبق على لوحة التحكم، فبدون HTTPS لن تتمكن من إعادة تشغيل جلسات المستخدمين.

أسهل طريقة للتعامل مع SSL في AWS هي إعداد موازن تحميل (ELB) وتشغيل OpenReplay خلفه. خيار آخر هو توليد أو استخدام شهادة SSL الخاصة بك وتوجيه النطاق الفرعي الخاص بك (أي openreplay.mycompany.com) إلى نسخة OpenReplay. المزيد حول كلا الخيارين أدناه.

إعداد موازن التحميل في AWS (الخيار 1)

Section titled إعداد موازن التحميل في AWS (الخيار 1)
  1. اذهب إلى ‘EC2’ > ‘Load Balancers’
  2. ‘Create Load Balancer’ واختر Application Load Balancer
  3. أضف مستمعًا لـ HTTPS (احتفظ بهذا فقط) وتأكد من اختيار نفس الشبكة (الشبكات) الفرعية التي تعمل فيها نسخة OpenReplay الخاصة بك.
  4. اختر شهادة موجودة (أي *.mycompany.com) أو قم بتوليد واحدة جديدة من AWS Certificate Manager (ACM). يمكنك أيضًا استيراد شهادتك الخاصة.
  5. تكوين مجموعات الأمان: اختر مجموعة الأمان التي تم إنشاؤها مسبقًا لنسخة OpenReplay (يمكنك العثور عليها في ‘EC2 Dashboard’ تحت تبويب ‘Security’)
  6. تكوين المستمع والتوجيه: احتفظ بالبروتوكول والمنفذ الافتراضيين (HTTP:80). الآن، قم بإنشاء target group جديدة. أعطها اسمًا واختر IP addresses في Target Type. تأكد من ضبط Health check path على /healthz مع الاحتفاظ بالمعلمات الافتراضية الأخرى. انقر على ‘Next’ لتسجيل الأهداف، أضف عنوان IPv4 الخاص بنسخة OpenReplay (المنافذ 80) ثم أضف الهدف إلى القائمة (يمكن العثور على عنوان IP الخاص في لوحة تحكم EC2). راجع ثم انقر على ‘Create target group’.
  7. الآن، عُد إلى صفحة إنشاء LB ووجّه هذه الـ target group الجديدة إلى مستمع LB.
  8. راجع ثم ‘Create load balancer’

بمجرد الإنشاء، اذهب إلى Route 53 (أو مزود خدمة DNS الخاص بك) وأنشئ A Record يشير إلى موازن التحميل باستخدام اسم DNS الخاص به (يمكن العثور عليه في لوحة تحكم ELB).

أخيرًا، قم بتفعيل use-forwarded-headers، عن طريق إلغاء تعليق السطر أدناه تحت قسم ingress-nginx، في /var/lib/openreplay/vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    config:
      use-forwarded-headers: true

كل شيء جاهز الآن، يجب أن يكون OpenReplay قابلاً للوصول بأمان على النطاق الفرعي الذي قمت بإعداده للتو. يمكنك إنشاء حساب عن طريق زيارة صفحة /signup (أي openreplay.mycompany.com/signup).

جلب/توليد شهادة SSL الخاصة بك (الخيار 2)

Section titled جلب/توليد شهادة SSL الخاصة بك (الخيار 2)

كبديل لإنشاء موازن تحميل، يمكنك جلب (أو توليد) شهادة SSL الخاصة بك.

  1. أولاً، اذهب إلى Route 53 (أو مزود خدمة DNS الآخر لديك) وأنشئ A Record. استخدم النطاق الذي قدّمته مسبقًا أثناء خطوة التثبيت ووجّهه إلى النسخة باستخدام عنوان IP العام الخاص بها (يمكن العثور عليه في لوحة تحكم EC2).

  2. إذا كنت ستجلب شهادتك الخاصة، فأنشئ سرّ SSL باستخدام الأمر التالي: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

ملاحظة: إذا لم تكن لديك شهادة، فقم بتوليد واحدة تتجدد تلقائيًا للنطاق الفرعي الخاص بك (الذي تم توفيره أثناء التثبيت) باستخدام Let’s Encrypt. ما عليك سوى الاتصال بنسخة OpenReplay EC2، وتشغيل cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh واتباع الخطوات.

  1. إذا كنت ترغب في تفعيل إعادة التوجيه من http إلى https (موصى به)، فقم بإلغاء تعليق الكتلة أدناه، تحت قسم ingress-nginx، في /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

من الجدير بالذكر أن ingress-nginx الخاص بنا يعمل افتراضيًا على المنافذ 80|443، لكن يمكن تغيير ذلك بسهولة، إذا لزم الأمر، في vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. أخيرًا، أعد تثبيت OpenReplay NGINX:
openreplay -R

كل شيء جاهز الآن، يجب أن يكون OpenReplay قابلاً للوصول على النطاق الفرعي الخاص بك. يمكنك إنشاء حساب عن طريق زيارة صفحة /signup (أي openreplay.mycompany.com/signup).

إذا واجهت أي مشاكل، اتصل بـ Slack الخاص بنا أو تفقّد المنتدى واحصل على المساعدة من مجتمعنا.