المفاهيم الأساسية لـ VPC
ما هو VPC؟
VPC (Virtual Private Cloud) هو شبكتك الخاصة الافتراضية في AWS. إنه مساحة شبكة معزولة حيث تقوم بنشر موارد AWS الخاصة بك.
┌─────────────────────────────────────────────────────────────┐
│ AMAZON VPC │
├─────────────────────────────────────────────────────────────┤
│ │
│ "مركز بياناتك الافتراضي في السحابة" │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC (10.0.0.0/16) │ │
│ │ │ │
│ │ مساحتك الشبكية الخاصة والمعزولة │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Subnet 1 │ │ Subnet 2 │ │ │
│ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌─────┐ │ │ ┌─────┐ │ │ │
│ │ │ │ EC2 │ │ │ │ RDS │ │ │ │
│ │ │ └─────┘ │ │ └─────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الخصائص : │
│ • معزول عن VPC الأخرى وعن الإنترنت (افتراضيًا) │
│ • تتحكم في نطاق عناوين IP │
│ • تحدد قواعد الأمان │
│ • إقليمي (يمتد عبر جميع AZ في المنطقة) │
│ │
└─────────────────────────────────────────────────────────────┘
تشبيه: VPC = مبنى مكاتب
┌─────────────────────────────────────────────────────────────┐
│ تشبيه: مبنى مكاتب │
├─────────────────────────────────────────────────────────────┤
│ │
│ العالم الحقيقي AWS │
│ ────────── ─── │
│ │
│ 🏢 مبنى = VPC │
│ (مساحتك الخاصة) (شبكتك الخاصة) │
│ │
│ 🚪 طوابق = Subnets │
│ (تقسيمات داخلية) (الشبكات الفرعية) │
│ │
│ 🔐 استقبال/أمن = Internet Gateway │
│ (دخول محكم) (وصول الإنترنت) │
│ │
│ 📋 بطاقة دخول = Security Group │
│ (من يمكنه الدخول أين) (قواعد الجدار الناري) │
│ │
│ 🗺️ خطة إخلاء = Route Table │
│ (طرق الحركة) (توجيه الحركة) │
│ │
│ 🏠 مكاتب = Instances EC2 │
│ (مساحات العمل) (خوادمك) │
│ │
└─────────────────────────────────────────────────────────────┘
مكونات VPC
نظرة عامة
┌─────────────────────────────────────────────────────────────┐
│ مكونات VPC │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ (حاوية) │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ SUBNET │ │ SUBNET │ ← الشبكات الفرعية │ │
│ │ │ (عام) │ │ (خاص) │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ │ │
│ │ │ │ │ │
│ │ └────────┬───────┘ │ │
│ │ │ │ │
│ │ ┌────────┴────────┐ │ │
│ │ │ ROUTE TABLE │ ← أين تذهب الحركة │ │
│ │ └────────┬────────┘ │ │
│ │ │ │ │
│ │ ┌───────────────┼───────────────┐ │ │
│ │ │ │ │ │ │
│ │ ▼ ▼ ▼ │ │
│ │ ┌─────┐ ┌─────────┐ ┌──────────┐ │ │
│ │ │ IGW │ │ NAT │ │ VPC │ │ │
│ │ │ │ │ Gateway │ │ Peering │ │ │
│ │ └─────┘ └─────────┘ └──────────┘ │ │
│ │ الإنترنت خروج للشبكة الخاصة │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
جدول المكونات
| المكون | الوصف | إلزامي |
|---|---|---|
| VPC | شبكة افتراضية معزولة | نعم |
| Subnet | شبكة فرعية في AZ | نعم (على الأقل 1) |
| Route Table | قواعد التوجيه | نعم (تُنشأ تلقائيًا) |
| Internet Gateway | وصول الإنترنت | لا (إذا كان خاصًا) |
| NAT Gateway | خروج الإنترنت للشبكة الخاصة | لا |
| Security Group | جدار ناري على مستوى المثيل | نعم |
| NACL | جدار ناري على مستوى الشبكة الفرعية | نعم (افتراضيًا) |
VPC الافتراضي مقابل VPC المخصص
┌─────────────────────────────────────────────────────────────┐
│ VPC الافتراضي مقابل VPC المخصص │
├─────────────────────────────────────────────────────────────┤
│ │
│ VPC الافتراضي VPC المخصص │
│ ────────────── ──────────────── │
│ │
│ • يُنشأ تلقائيًا • تقوم بإنشائه │
│ • 1 لكل منطقة • بقدر ما تريد │
│ • CIDR: 172.31.0.0/16 • CIDR: تختاره │
│ • شبكات فرعية عامة تلقائيًا • تقوم بتكوين كل شيء │
│ • IGW مرفق • تقوم بإرفاق IGW │
│ │
│ متى تستخدم: متى تستخدم: │
│ ✅ اختبارات سريعة ✅ إنتاج │
│ ✅ تعلم ✅ أمان معزز │
│ ❌ إنتاج ✅ متعدد الطبقات │
│ │
│ ⚠️ في الإنتاج، استخدم دائمًا VPC مخصص │
│ للحصول على تحكم أفضل في الأمان │
│ │
└─────────────────────────────────────────────────────────────┘
نطاق عناوين IP (CIDR)
ما هو CIDR؟
┌─────────────────────────────────────────────────────────────┐
│ تدوين CIDR │
├─────────────────────────────────────────────────────────────┤
│ │
│ CIDR = Classless Inter-Domain Routing │
│ │
│ الصيغة: عنوان_الشبكة / البادئة │
│ │
│ مثال: 10.0.0.0/16 │
│ │ │ │
│ │ └── 16 بت ثابتة (شبكة) │
│ │ 16 بت متغيرة (مضيفين) │
│ │ │
│ └── عنوان بداية الشبكة │
│ │
│ حساب عدد العناوين: │
│ الصيغة: 2^(32 - البادئة) │
│ │
│ /16 = 2^(32-16) = 2^16 = 65,536 عنوان │
│ /24 = 2^(32-24) = 2^8 = 256 عنوان │
│ /28 = 2^(32-28) = 2^4 = 16 عنوان │
│ │
└─────────────────────────────────────────────────────────────┘
النطاقات الخاصة (RFC 1918)
┌─────────────────────────────────────────────────────────────┐
│ النطاقات الخاصة IP (RFC 1918) │
├─────────────────────────────────────────────────────────────┤
│ │
│ هذه النطاقات لا يتم توجيهها على الإنترنت │
│ → استخدمها لـ VPC الخاص بك │
│ │
│ الفئة A : 10.0.0.0/8 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 10.0.0.0 → 10.255.255.255 │ │
│ │ 16,777,216 عنوان │ │
│ │ الاستخدام: الشركات الكبيرة │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الفئة B : 172.16.0.0/12 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 172.16.0.0 → 172.31.255.255 │ │
│ │ 1,048,576 عنوان │ │
│ │ الاستخدام: الشركات المتوسطة │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الفئة C : 192.168.0.0/16 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 192.168.0.0 → 192.168.255.255 │ │
│ │ 65,536 عنوان │ │
│ │ الاستخدام: الشبكات المنزلية، الشركات الصغيرة │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ التوصية لـ AWS : │
│ استخدم 10.0.0.0/16 للبدء (65,536 عنوان) │
│ │
└─────────────────────────────────────────────────────────────┘
أحجام VPC في AWS
| CIDR | العناوين | الاستخدام الموصى به |
|---|---|---|
| /16 | 65,536 | VPC قياسي، موصى به |
| /20 | 4,096 | VPC متوسط |
| /24 | 256 | VPC صغير، اختبار |
| /28 | 16 | الحد الأدنى لـ AWS |
حدود AWS
- الحد الأدنى لـ CIDR: /28 (16 عنوان)
- الحد الأقصى لـ CIDR: /16 (65,536 عنوان)
- يمكن أن يحتوي VPC على عدة CIDR (حتى 5)
العناوين المحجوزة من قبل AWS
┌─────────────────────────────────────────────────────────────┐
│ العناوين المحجوزة لكل شبكة فرعية │
├─────────────────────────────────────────────────────────────┤
│ │
│ لكل شبكة فرعية، AWS تحجز 5 عناوين: │
│ │
│ مثال: شبكة فرعية 10.0.1.0/24 (256 عنوان) │
│ │
│ 10.0.1.0 → عنوان الشبكة │
│ 10.0.1.1 → محجوز لـ AWS (موجه VPC) │
│ 10.0.1.2 → محجوز لـ AWS (DNS) │
│ 10.0.1.3 → محجوز لـ AWS (استخدام مستقبلي) │
│ 10.0.1.255 → بث (غير مدعوم ولكن محجوز) │
│ │
│ العناوين القابلة للاستخدام: 256 - 5 = 251 عنوان │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ شبكة فرعية /24 : 251 عنوان قابل للاستخدام │ │
│ │ شبكة فرعية /25 : 123 عنوان قابل للاستخدام │ │
│ │ شبكة فرعية /26 : 59 عنوان قابل للاستخدام │ │
│ │ شبكة فرعية /27 : 27 عنوان قابل للاستخدام │ │
│ │ شبكة فرعية /28 : 11 عنوان قابل للاستخدام │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
بنية VPC النموذجية
┌─────────────────────────────────────────────────────────────────────────┐
│ بنية VPC ثلاثية الطبقات │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ الإنترنت │
│ │ │
│ ▼ │
│ ┌───────────────┐ │
│ │Internet Gateway│ │
│ └───────┬───────┘ │
│ │ │
│ ┌─────────────────────────────┼─────────────────────────────┐ │
│ │ VPC │(10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌─────────────────────────┴─────────────────────────┐ │ │
│ │ │ الشبكات الفرعية العامة │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ Public 1a │ │ Public 1b │ │ │ │
│ │ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [ALB/NAT] │ │ [ALB/NAT] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────┼─────────────────┐ │ │
│ │ │ │ الشبكات الفرعية الخاصة (App) │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Private 1a │ │ Private 1b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [EC2 App] │ │ [EC2 App] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────┼─────────────────┐ │ │
│ │ │ │ الشبكات الفرعية الخاصة (DB) │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Database 1a │ │ Database 1b │ │ │ │
│ │ │ │ 10.0.21.0/24 │ │ 10.0.22.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [RDS] │ │ [RDS Standby] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
إنشاء VPC
عبر وحدة التحكم
1. VPC → Your VPCs → Create VPC
2. Name tag : mon-vpc-prod
3. IPv4 CIDR block : 10.0.0.0/16
4. Tenancy : Default
5. Create VPC
عبر AWS CLI
# إنشاء VPC
aws ec2 create-vpc \
--cidr-block 10.0.0.0/16 \
--tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=mon-vpc-prod}]'
# تفعيل أسماء DNS (موصى به)
aws ec2 modify-vpc-attribute \
--vpc-id vpc-xxx \
--enable-dns-hostnames '{"Value":true}'
ملخص
| المفهوم | الوصف |
|---|---|
| VPC | شبكة خاصة افتراضية معزولة |
| CIDR | تدوين لتحديد نطاق IP |
| Subnet | تقسيم فرعي لـ VPC في AZ |
| /16 | الحجم الموصى به (65,536 IPs) |
| RFC 1918 | النطاقات الخاصة IP للاستخدام |
| 5 IPs محجوزة | AWS تحجز 5 IPs لكل شبكة فرعية |
اختبار التحقق
- ما هو VPC؟
- كم عدد عناوين IP في /24؟
- لماذا تحجز AWS 5 عناوين لكل شبكة فرعية؟
- أي نطاق IP تستخدم لـ VPC؟
- ما الفرق بين VPC الافتراضي والمخصص؟
القسم التالي: الشبكات الفرعية والتوجيه