بوابة الإنترنت و بوابة NAT
بوابة الإنترنت (IGW)
ما هي بوابة الإنترنت؟
بوابة الإنترنت (IGW) هي مدخل/مخرج بين VPC الخاص بك والإنترنت. بدون IGW، يكون VPC الخاص بك معزولًا تمامًا عن الإنترنت.
┌─────────────────────────────────────────────────────────────┐
│ INTERNET GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ الإنترنت │
│ │ │
│ │ │
│ ┌──────▼──────┐ │
│ │ الإنترنت │ │
│ │ Gateway │ │
│ │ (IGW) │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ │ │ │
│ │ │ موارد مع IP عام │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │ (عام) │ │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ الخصائص: │
│ • متاح بشكل عالي (مدار من قبل AWS) │
│ • لا يوجد حد لعرض النطاق الترددي │
│ • 1 IGW لكل VPC كحد أقصى │
│ • مجاني (لا توجد رسوم على IGW نفسه) │
│ │
└─────────────────────────────────────────────────────────────┘
كيفية عمل IGW
┌─────────────────────────────────────────────────────────────┐
│ FONCTIONNEMENT IGW │
├─────────────────────────────────────────────────────────────┤
│ │
│ حركة المرور الصادرة (Instance → الإنترنت) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instance │ ──────► │ IGW │ ──────► │الإنترنت │ │
│ │10.0.1.5 │ │ │ │ │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ ترجمة NAT │
│ 10.0.1.5 → 52.1.2.3 │
│ (IP خاص → IP عام) │
│ │
│ حركة المرور الواردة (الإنترنت → Instance) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instance │ ◄────── │ IGW │ ◄────── │الإنترنت │ │
│ │10.0.1.5 │ │ │ │52.1.2.3 │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ ترجمة NAT │
│ 52.1.2.3 → 10.0.1.5 │
│ (IP عام → IP خاص) │
│ │
└─────────────────────────────────────────────────────────────┘
إنشاء وربط IGW
# 1. إنشاء بوابة الإنترنت
aws ec2 create-internet-gateway \
--tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=mon-igw}]'
# 2. الربط مع VPC
aws ec2 attach-internet-gateway \
--internet-gateway-id igw-xxx \
--vpc-id vpc-xxx
# 3. إضافة المسار في جدول المسارات العامة
aws ec2 create-route \
--route-table-id rtb-xxx \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-xxx
شروط الوصول إلى الإنترنت (Instance)
┌─────────────────────────────────────────────────────────────┐
│ CONDITIONS POUR ACCÈS INTERNET │
├─────────────────────────────────────────────────────────────┤
│ │
│ لكي تصل instance إلى الإنترنت، يجب: │
│ │
│ ☐ 1. أن يكون لدى VPC بوابة إنترنت متصلة │
│ │
│ ☐ 2. أن يحتوي جدول المسارات للشبكة الفرعية على مسار إلى IGW│
│ الوجهة: 0.0.0.0/0 → الهدف: igw-xxx │
│ │
│ ☐ 3. أن يكون لدى instance IP عام أو Elastic IP │
│ (وإلا فلن يكون هناك عودة ممكنة) │
│ │
│ ☐ 4. أن يسمح مجموعة الأمان بحركة المرور الصادرة │
│ (افتراضيًا: كل شيء مسموح) │
│ │
│ ☐ 5. أن يسمح NACL بحركة المرور (دخول وخروج) │
│ (افتراضيًا: كل شيء مسموح) │
│ │
│ إذا كان هناك نقص في أي شرط = لا يوجد وصول للإنترنت! │
│ │
└─────────────────────────────────────────────────────────────┘
بوابة NAT
ما هي بوابة NAT؟
بوابة NAT تسمح للـ instances في الشبكات الفرعية الخاصة بالوصول إلى الإنترنت (صادر فقط) دون أن تكون متاحة من الإنترنت.
┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ الإنترنت │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ شبكة فرعية عامة │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────┐ │ │ │
│ │ │ │ NAT Gateway │ │ │ │
│ │ │ │ (52.1.2.99) │ │ │ │
│ │ │ └──────┬──────┘ │ │ │
│ │ │ │ │ │ │
│ │ └──────────────────┼────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ شبكة فرعية خاصة │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │(10.0.11.5) │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ │ مسار: 0.0.0.0/0 → nat-xxx │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ تدفق: EC2 خاص → NAT GW → IGW → الإنترنت │
│ لا يوجد عودة مبادرة من الإنترنت! │
│ │
└─────────────────────────────────────────────────────────────┘
بوابة NAT مقابل مثيل NAT
| خاصية | بوابة NAT | مثيل NAT |
|---|---|---|
| التوافر | عالي (مدار من AWS) | أنت تديره |
| عرض النطاق الترددي | حتى 45 Gbps | يعتمد على النوع |
| الصيانة | AWS | أنت |
| التكلفة | أغلى | أرخص |
| التوصية | ✅ إنتاج | ❌ قديم |
إنشاء بوابة NAT
# 1. تخصيص Elastic IP
aws ec2 allocate-address --domain vpc
# 2. إنشاء بوابة NAT (في الشبكة الفرعية العامة)
aws ec2 create-nat-gateway \
--subnet-id subnet-public-xxx \
--allocation-id eipalloc-xxx \
--tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-gw-1a}]'
# 3. إضافة المسار في جدول المسارات الخاصة
aws ec2 create-route \
--route-table-id rtb-private-xxx \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-xxx
تكلفة بوابة NAT
┌─────────────────────────────────────────────────────────────┐
│ COÛT NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ الرسوم الساعية │
│ • ~$0.045/ساعة لكل بوابة NAT │
│ • ~$32/شهر إذا كانت نشطة 24/7 │
│ │
│ رسوم البيانات │
│ • ~$0.045/GB معالجة │
│ │
│ مثال شهري: │
│ • 1 بوابة NAT: $32 │
│ • 100 GB نقل: $4.50 │
│ • المجموع: $36.50/شهر │
│ │
│ ⚠️ نصيحة للتوفير: │
│ • للتطوير/الاختبار: استخدام مثيل NAT (أرخص) │
│ • أو: VPC Endpoints لـ S3/DynamoDB (مجاني) │
│ • أو: شبكة فرعية عامة للـ instances التي تحتاج │
│ إلى الإنترنت │
│ │
└─────────────────────────────────────────────────────────────┘
بوابة NAT عالية التوافر
┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY HAUTE DISPONIBILITÉ │
├─────────────────────────────────────────────────────────────┤
│ │
│ بوابة NAT واحدة = منطقة توافر واحدة │
│ للتوافر العالي، إنشاء بوابة NAT لكل منطقة توافر │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ │ │
│ │ ┌───────────────┐ ┌───────────────┐ │ │
│ │ │ AZ 1a │ │ AZ 1b │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │
│ │ │ │ NAT GW 1a │ │ │ │ NAT GW 1b │ │ │ │
│ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ ┌─────▼─────┐ │ │ ┌─────▼─────┐ │ │ │
│ │ │ │ Private │ │ │ │ Private │ │ │ │
│ │ │ │ Subnet 1a │ │ │ │ Subnet 1b │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ rtb: → │ │ │ │ rtb: → │ │ │ │
│ │ │ │ nat-1a │ │ │ │ nat-1b │ │ │ │
│ │ │ └───────────┘ │ │ └───────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────────┘ └───────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ إذا تعطلت NAT GW 1a → تفقد الشبكات الفرعية الخاصة 1a الإنترنت│
│ لكن الشبكات الفرعية الخاصة 1b تستمر في العمل │
│ │
└─────────────────────────────────────────────────────────────┘
Elastic IP
ما هي Elastic IP؟
Elastic IP هي عنوان IPv4 عام ثابت يمكنك ربطه بمواردك.
┌─────────────────────────────────────────────────────────────┐
│ ELASTIC IP │
├─────────────────────────────────────────────────────────────┤
│ │
│ IP عام عادي Elastic IP │
│ ──────────────────── ────────── │
│ │
│ • مخصص من AWS • أنت تخصصه │
│ • يتغير إذا توقف/بدأ • يبقى ثابت │
│ • مجاني إذا استخدم • مجاني إذا ارتبط │
│ • يفقد إذا انتهى • يحتفظ بعد الانتهاء │
│ │
│ حالات استخدام Elastic IP: │
│ • خادم يجب أن يحتفظ بنفس IP │
│ • بوابة NAT (إلزامي) │
│ • انتقال سريع بين instances │
│ │
│ ⚠️ التكلفة: EIP غير مرتبط = ~$3.60/شهر │
│ (AWS تفرض رسوم على EIP غير المستخدمة!) │
│ │
└─────────────────────────────────────────────────────────────┘
المخطط الكامل
┌─────────────────────────────────────────────────────────────────────────┐
│ ARCHITECTURE RÉSEAU COMPLÈTE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ الإنترنت │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────────────┼──────────────────────────────┐ │
│ │ VPC │ (10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌──────────────────────────┴────────────────────────────┐ │ │
│ │ │ الشبكات الفرعية العامة │ │ │
│ │ │ مسار: 0.0.0.0/0 → IGW │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ عام 1a │ │ عام 1b │ │ │ │
│ │ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ NAT GW │ │ │ │ NAT GW │ │ │ │ │
│ │ │ │ │ 1a │ │ │ │ 1b │ │ │ │ │
│ │ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │ │
│ │ │ └────────┼────────┘ └────────┼────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────────┼─────────────────┐ │ │
│ │ │ │ الشبكات الفرعية الخاصة │ │ │ │
│ │ │ │ مسار: 0.0.0.0/0 → NAT │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ خاص 1a │ │ خاص 1b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ EC2 │ │ │ │ EC2 │ │ │ │ │
│ │ │ │ │ App │ │ │ │ App │ │ │ │ │
│ │ │ │ └───────────┘ │ │ └───────────┘ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
ملخص
| المكون | الوظيفة | التكلفة |
|---|---|---|
| IGW | وصول الإنترنت ثنائي الاتجاه | مجاني |
| بوابة NAT | خروج الإنترنت للخاص | ~$32/شهر + بيانات |
| Elastic IP | IP عام ثابت | مجاني إذا استخدم |
| مثيل NAT | بديل NAT (قديم) | تكلفة EC2 |
اختبار التحقق
- ما هو الغرض من بوابة الإنترنت؟
- لماذا تعتبر بوابة NAT ضرورية للشبكات الفرعية الخاصة؟
- في أي نوع من الشبكات الفرعية يجب أن تكون بوابة NAT؟
- كم تكلفة Elastic IP غير المستخدمة؟
- كيف تضمن التوافر العالي لبوابات NAT؟
القسم التالي: مختبر: مخطط VPC