0Pricing
Terraform Infrastructure as Code · درس

إعداد VPC والشبكات

وفّروا VPC وشبكات فرعية ومجموعات أمان في AWS باستخدام Terraform، لمنح بنيتكم التحتية أساسًا شبكيًا آمنًا ومعزولًا.

إعداد VPC والشبكات درس مجاني في Terraform Infrastructure as Code على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Terraform Infrastructure as Code، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Terraform Infrastructure as Code 4 دروس في المجموع.

لماذا VPC مخصصة؟

يأتي كل حساب AWS مزودًا بـ VPC افتراضية، لكن البنية التحتية للإنتاج تستحق شبكة تصممونها بأنفسكم. إن VPC (السحابة الافتراضية الخاصة) قسم معزول من سحابة AWS تتحكمون فيه بنطاقات IP، والشبكات الفرعية، والتوجيه، وجدران الحماية.

باستخدام Terraform، تصفون الشبكة بأكملها كتعليمة برمجية، لتكون قابلة لإعادة الإنتاج عبر المناطق والحسابات.

تعريف مورد VPC

يمثل مورد aws_vpc جذر شبكتكم. وتحدد كتلة CIDR نطاق عناوين IP الخاصة. وتمنحكم كتلة /16 نحو 65,000 عنوان يمكن تقسيمها إلى شبكات فرعية.

resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    Name = "main-vpc"
  }
}

الشبكات الفرعية العامة مقابل الخاصة

تقسّم الشبكات الفرعية نطاق VPC إلى كتل أصغر مرتبطة بمنطقة توافر.

  • الشبكة الفرعية العامة — توجّه إلى بوابة إنترنت، وتُستخدم لموازنات التحميل والمضيفات الوسيطة.
  • الشبكة الفرعية الخاصة — لا تملك مسارًا مباشرًا إلى الإنترنت، وتناسب قواعد البيانات وخوادم التطبيقات.

إنشاء شبكة فرعية عامة

تحتاج كل شبكة فرعية إلى CIDR خاص بها (جزء من نطاق VPC) وإلى منطقة توافر. يؤدي تعيين map_public_ip_on_launch إلى true إلى إسناد عناوين IP عامة تلقائيًا إلى المثيلات التي تُطلَق هنا.

resource "aws_subnet" "public" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  availability_zone       = "us-east-1a"
  map_public_ip_on_launch = true

  tags = {
    Name = "public-subnet"
  }
}

بوابة الإنترنت

تتيح بوابة الإنترنت (IGW) للموارد الموجودة في شبكة فرعية عامة الوصول إلى الإنترنت. وتُرفق مباشرةً بـ VPC.

resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main.id

  tags = {
    Name = "main-igw"
  }
}

جداول التوجيه

لا تصبح الشبكة الفرعية عامة فعلًا إلا عندما يرسل جدول التوجيه حركة المرور 0.0.0.0/0 إلى بوابة الإنترنت. تربط جداول التوجيه بين CIDR الوجهة والأهداف.

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

ربط المسارات بالشبكات الفرعية

لا تؤدي جداول التوجيه أي وظيفة حتى تُربط بشبكة فرعية. ويربط مورد aws_route_table_association بينهما.

resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.public.id
  route_table_id = aws_route_table.public.id
}

مجموعات الأمان كجدران حماية

مجموعة الأمان جدار حماية افتراضي ذو حالة يحيط بالمثيل. وتعني كلمة «ذو حالة» أن حركة المرور العائدة لطلب وارد مسموح به تُسمح تلقائيًا، ولذلك لا تحتاجون عادةً إلا إلى تحديد قواعد الدخول التي تهمكم.

تعريف مجموعة أمان للويب

نسمح أدناه بحركة HTTP الواردة من أي مكان، ونسمح بكل حركة المرور الصادرة. وفي عمليات النشر الفعلية، ضيّقوا CIDR المصدر قدر الإمكان.

resource "aws_security_group" "web" {
  name   = "web-sg"
  vpc_id = aws_vpc.main.id

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

إدخال مثيل في الشبكة

أرفقوا الشبكة الفرعية ومجموعة الأمان بمثيل EC2 عبر subnet_id وvpc_security_group_ids. يؤدي ذلك إلى وضع الخادم داخل شبكتكم المخصصة.

resource "aws_instance" "app" {
  ami                    = "ami-0abcd1234"
  instance_type          = "t3.micro"
  subnet_id              = aws_subnet.public.id
  vpc_security_group_ids = [aws_security_group.web.id]
}

إخراج معرّفات الشبكة

اعرض المعرّفات الرئيسية بصفتها مخرجات، حتى تتمكن الوحدات الأخرى أو فريقك من الرجوع إليها بعد تنفيذ apply.

output "vpc_id" {
  value = aws_vpc.main.id
}

output "public_subnet_id" {
  value = aws_subnet.public.id
}

اختبار سريع

اختبر مدى فهمك لتوجيه VPC.

مراجعة: أساس شبكتك

لقد أنشأت شبكة متكاملة باستخدام Terraform:

  • aws_vpc مع نطاق CIDR.
  • شبكات فرعية موزعة عبر مناطق التوافر، عامة أو خاصة.
  • بوابة إنترنت بالإضافة إلى جداول توجيه لإتاحة الوصول العام.
  • مجموعات أمان تعمل كجدران حماية ذات حالة.

هذه الشبكة هي العمود الفقري الذي تتصل به كل موارد AWS الأخرى.

الأسئلة الشائعة

هل درس «إعداد VPC والشبكات» مجاني؟

نعم — نص درس «إعداد VPC والشبكات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Terraform Infrastructure as Code، انتقل إلى CoddyKit PRO. تتضمن دورة Terraform Infrastructure as Code 4 دروس في المجموع.

ماذا ستتعلم في «إعداد VPC والشبكات»؟

وفّروا VPC وشبكات فرعية ومجموعات أمان في AWS باستخدام Terraform، لمنح بنيتكم التحتية أساسًا شبكيًا آمنًا ومعزولًا. تتمرن على Terraform Infrastructure as Code مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Terraform Infrastructure as Code؟

لا تُشترط خبرة سابقة. Terraform Infrastructure as Code على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إعداد VPC والشبكات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Terraform Infrastructure as Code هذا؟

نعم. كل درس في Terraform Infrastructure as Code يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد موفّر AWS
  2. تجهيز مثيلات EC2
  3. إدارة حاويات S3 وIAM
  4. إعداد VPC والشبكات
← العودة إلى Terraform Infrastructure as Code