أساسيات الشبكة الافتراضية الخاصة (VPC)
أساسيات الشبكة الافتراضية الخاصة (VPC)
الشبكة الافتراضية الخاصة (VPC) هي قسمك المعزول منطقيًا داخل السحابة الخاصة بـ AWS. تخيّلها كمركز بيانات خاص بك داخل AWS — أنت من يتحكم تمامًا في نطاقات عناوين IP والشبكات الفرعية والتوجيه وضوابط الوصول. كل نسخة EC2 وقاعدة بيانات RDS ودالة Lambda داخل VPC وعُقدة EKS تعيش داخل شبكة VPC. الحصول على تصميم الـ VPC صحيحًا من البداية هو أحد أكثر القرارات تأثيرًا في أي حِمل عمل على AWS؛ إعادة تصميم الشبكة بعد النشر تكون مؤلمة على نطاق واسع.
لماذا توجد الـ VPCs
قبل ظهور الـ VPCs (حقبة EC2-Classic)، كانت جميع النسخ تشترك في شبكة مسطحة تديرها AWS. كان بإمكان أي نسخة الوصول إلى أي أخرى. جاءت الـ VPCs عام 2009 وأصبحت الإعداد الافتراضي عام 2013، لتمنحك عزل الشبكة على مستوى البنية التحتية — لا مجرد قواعد مجموعات الأمان. مواردك تكون غير قابلة للوصول بشكل افتراضي؛ وأنت من يصرّح بحركة المرور صراحةً في كلا الاتجاهين.
في شركات كأمازون وجوجل وميتا، تفرض فرق الشبكات قيودًا صارمة على نطاق الضرر المحتمل (blast radius): أي خطأ في الإعداد أو اختراق في بيئة ما يجب ألا ينتشر إلى بيئة أخرى. عزل الـ VPC هو طبقة التطبيق الأولى لهذا المبدأ.
التخطيط لنطاق CIDR — القرار الذي يمتد عبر الزمن
لكل VPC كتلة CIDR أساسية — نطاق من عناوين IP الخاصة معبّر عنه بترميز CIDR. بمجرد تعيينه، لا يمكنك تصغيره؛ يمكنك فقط إضافة كتل CIDR ثانوية (حتى 4 إضافية، بحد أدنى /28 وأقصى /16 لكل منها). اختر نطاقًا صغيرًا جدًا وستنفد منك عناوين IP تحت الضغط. اختر نطاقًا بلا تخطيط وستصطدم بتعارضات تجعل اتصالات VPC Peering وTransit Gateway وشبكة VPN المحلية مستحيلة.
10.0.0.0/8 — نحو 16.7 مليون عنوان (أكبر مساحة متاحة)
172.16.0.0/12 — نحو مليون عنوان
192.168.0.0/16 — نحو 65,000 عنوان (صغير جدًا للإنتاج)
استراتيجية CIDR العملية في بيئات AWS متعددة الحسابات
في منظمة حقيقية تدير AWS Organizations بعشرات الحسابات، تحتاج إلى خطة عناوين IP شاملة. نمط شائع يُستخدم على نطاق واسع:
- خصّص شبكة فائقة /8 أو /10 للمنظمة بأكملها من مساحة العناوين الخاصة.
- قسّمها حسب البيئة:
10.0.0.0/12للإنتاج،10.16.0.0/12للاختبار،10.32.0.0/12للتطوير. - قسّمها أكثر حسب المنطقة: داخل الإنتاج،
10.0.0.0/14لـus-east-1، و10.4.0.0/14لـeu-west-1. - كل VPC يحصل على /16 من كتلة منطقته — 65,536 عنوانًا، كافٍ لمعظم أحمال العمل.
- الشبكات الفرعية تُنحت من CIDR الـ VPC كشرائح /24 (254 عنوانًا صالحًا للاستخدام) أو /22 (1,022 عنوانًا).
الـ VPC الافتراضي مقابل الـ VPC المخصص
تنشئ AWS VPC افتراضيًا في كل منطقة لكل حساب. يستخدم 172.31.0.0/16 وينشئ شبكة فرعية /20 في كل منطقة توفر مع تفعيل التعيين التلقائي لعناوين IP العامة. هذا الإعداد متساهل عن قصد للتجريب — لا للإنتاج.
مشكلات الـ VPC الافتراضي في بيئات الإنتاج:
- النسخ التي تُطلق دون اختيار شبكة فرعية محددة تذهب إلى الـ VPC الافتراضي وتحصل على عناوين IP عامة تلقائيًا — خطر تعرّض خطير عرضي.
- نطاق
172.31.0.0/16يتعارض كثيرًا مع شبكات VPN المؤسسية والشبكات المحلية. - لا هيكل شبكة فرعية دقيق — لا فصل بين الطبقات العامة وتطبيق الإنتاج وطبقة البيانات.
- سياسات التحكم في الخدمات (SCP) في كثير من الشركات تحظر الآن استخدام الـ VPC الافتراضي كليًا.
إنشاء VPC مخصص — CLI وTerraform
إنشاء VPC عبر AWS CLI أمر مباشر. هنا تُنشئ VPC وتضع علامات عليه وتفعّل دعم DNS (مطلوب للمناطق المستضافة الخاصة وEKS):
في الإنتاج، يجب إدارة الـ VPCs باستخدام Terraform أو AWS CloudFormation وليس CLI، حتى يكون الإعداد تحت إدارة الإصدارات وقابلًا للتدقيق والتكرار. كتلة Terraform بسيطة للـ VPC تبدو هكذا:
تشريح الـ VPC: ما الذي يسكن داخله
الـ VPC حاوية تضم عدة بُنى مترابطة — جميعها ستضبطها في الدروس اللاحقة. على المستوى الأعلى، كل VPC إنتاجي يتضمن:
- الشبكات الفرعية (Subnets) — أقسام من CIDR موزّعة عبر مناطق التوفر (الدرس 2)
- جداول التوجيه (Route Tables) — قواعد توجيه لكل شبكة فرعية توجّه الحركة نحو البوابات (الدرس 2)
- بوابة الإنترنت (IGW) — المنفذ إلى الإنترنت العام للشبكات الفرعية العامة (الدرس 2)
- بوابة NAT — وصول إنترنت للخروج فقط للشبكات الفرعية الخاصة (الدرس 2)
- مجموعات الأمان (Security Groups) — قواعد جدار حماية ذو حالة مرفقة بواجهات الشبكة (الدرس 3)
- قوائم التحكم في الوصول للشبكة (NACLs) — قواعد جدار حماية عديمة الحالة على مستوى الشبكة الفرعية (الدرس 3)
مخطط بنية الـ VPC
اعتبارات الإنتاج الرئيسية
- انشر دائمًا عبر منطقتي توفر على الأقل — عطل منطقة توفر واحدة يجب ألا يوقف خدمتك.
- افصل الطبقات في شبكات فرعية منفصلة — عامة (موازنات التحميل)، خاصة (التطبيق)، بيانات (RDS، ElastiCache). هذا يمنحك تحكمًا دقيقًا في التوجيه وNACL.
- احجز مساحة عناوين — اترك على الأقل /24 واحدة لكل منطقة توفر لكل طبقة غير مخصصة للخدمات المستقبلية. نفاد عناوين IP في VPC نشط هو ترحيل بالغ الصعوبة.
- ضع علامات على كل شيء — علامات
NameوEnvوTeamوCostCenterعلى كل VPC وشبكة فرعية. AWS Cost Explorer ومجموعات الموارد وأدوات الامتثال تعتمد على هذه العلامات. - فعّل VPC Flow Logs من اليوم الأول — تُرسل إلى CloudWatch Logs أو S3، وهي ضرورية للتحقيق الأمني وتشخيص أخطاء الشبكة (الدرس 9). تفعيلها بعد وقوع الحادثة يكون متأخرًا جدًا.