معمارية السحابة ومناطق الهبوط

هندسة الشبكات على مستوى المؤسسة

18 دقيقة الدرس 5 من 28

هندسة الشبكات على مستوى المؤسسة

عندما تنمو شركة ناشئة لتصبح منظمة متعددة الفرق والحسابات على AWS، ينهار النهج البدائي — VPC واحد لكل حمل عمل مع اقتران عشوائي — تحت ثقله. تشكّل اتصالات الاقتران شبكة من الدرجة O(n²)، تصبح جداول التوجيه غير قابلة للإدارة، ويفقد فريق الأمان الرؤية على حركة المرور بين الخدمات. الحل المؤسسي هو طوبولوجيا المحور والأذرع المبنية حول Transit Gateway مركزي، وشبكات VPC مشتركة، ونقطة تحكم واحدة لحركة المرور الخارجة إلى الإنترنت.

يتناول هذا الدرس الركائز الثلاث للشبكات على مستوى المؤسسة: نموذج المحور والأذرع، وشبكات VPC المشتركة عبر AWS Resource Access Manager، والخروج المركزي عبر VPC للفحص والمراقبة. ستنتهي من الدرس بامتلاك أنماط Terraform وأوامر AWS CLI جاهزة للتطبيق في منظمة حقيقية.

نموذج المحور والأذرع

في تصميم المحور والأذرع، يعمل Transit Gateway (TGW) المركزي بوصفه المحور. تتصل كل شبكة VPC ذراع — سواء كانت لحساب أو بيئة أو وحدة أعمال — بالـ TGW عبر TGW attachment. لا تتصل الأذرع ببعضها مباشرة؛ فكل حركة المرور تمر عبر المحور. يمنحك هذا:

  • توسع خطي في الاتصالات — يدعم AWS TGW ما يصل إلى 5,000 اتصال VPC لكل بوابة دون الحاجة إلى شبكة اقتران.
  • تحكم مركزي في التوجيه — تحدد جداول توجيه TGW أي الأذرع يمكنها الوصول إلى أيٍّ. الجداول المعزولة تمنع تلوث بيئة الإنتاج ببيئة التطوير دون تكرار قوائم التحكم في كل VPC.
  • التوجيه العابر — الذراع A تصل إلى الذراع B فقط إذا سمح بذلك جدول توجيه TGW. اقتران VPC يفتقر لهذا؛ TGW يوفره أصلاً.
  • إدراج نقطة الفحص — يمكنك توجيه كل حركة المرور الشرقية-الغربية أو الشمالية-الجنوبية عبر VPC جدار حماية مركزي دون تغيير أي ذراع.
AWS Transit Gateway مقابل VPC Peering: الاقتران مجاني (رسوم نقل البيانات لا تزال سارية) وذو تأخير أقل. يضيف TGW ~0.05 دولار لكل ساعة اتصال بالإضافة إلى 0.02 دولار لكل GB. على مستوى المؤسسة، تفوق المدخرات التشغيلية — جدول توجيه واحد، سياسة جدار حماية واحدة، تدفق سجلات واحد — التكلفة بكثير. في حالة أقل من خمس شبكات VPC، قد يظل الاقتران هو الخيار الأنسب.
Hub-and-Spoke with Centralized Egress Transit Gateway (Hub) Prod VPC 10.0.0.0/16 Dev VPC 10.1.0.0/16 Shared Services 10.2.0.0/16 Egress / Inspection NAT + Firewall Platform VPC 10.3.0.0/16 Data / Analytics 10.4.0.0/16 Internet Egress only
طوبولوجيا المحور والأذرع: جميع شبكات VPC متصلة بـ Transit Gateway مركزي؛ حركة مرور الإنترنت الصادرة تمر عبر VPC فحص واحد.

Terraform: Transit Gateway والاتصال بالأذرع

ينشئ Terraform التالي بوابة TGW في حساب الشبكة، ثم يربط شبكة VPC ذراع مملوكة لحساب أحمال عمل باستخدام مشاركة RAM. هذا هو النمط الذي يستخدمه AWS Landing Zone Accelerator وControl Tower داخلياً.

# network-account/tgw.tf resource "aws_ec2_transit_gateway" "main" { description = "Org-wide Transit Gateway" amazon_side_asn = 64512 default_route_table_association = "disable" default_route_table_propagation = "disable" auto_accept_shared_attachments = "enable" tags = { Name = "org-tgw" Env = "shared" } } resource "aws_ram_resource_share" "tgw" { name = "tgw-org-share" allow_external_principals = false } resource "aws_ram_resource_association" "tgw" { resource_arn = aws_ec2_transit_gateway.main.arn resource_share_arn = aws_ram_resource_share.tgw.arn } resource "aws_ram_principal_association" "org" { principal = "arn:aws:organizations::MGMT_ACCOUNT_ID:organization/o-ORGID" resource_share_arn = aws_ram_resource_share.tgw.arn } # --- في حساب أحمال العمل (الذراع) --- resource "aws_ec2_transit_gateway_vpc_attachment" "spoke" { transit_gateway_id = "tgw-0abc1234" vpc_id = aws_vpc.prod.id subnet_ids = aws_subnet.private[*].id transit_gateway_default_route_table_association = false transit_gateway_default_route_table_propagation = false tags = { Name = "prod-spoke-attach" } }

شبكات VPC المشتركة عبر Resource Access Manager

تتيح شبكة VPC المشتركة امتلاك شبكة VPC واحدة في حساب الشبكة المركزية ومشاركة شبكات فرعية محددة مع حسابات متعددة عبر RAM. تطلق حسابات أحمال العمل نسخ EC2 ومهام ECS مباشرة في الشبكات الفرعية المشتركة — دون الحاجة إلى شبكة VPC أو NAT Gateway خاصة. يقلل هذا النمط تكاليف NAT بشكل كبير على نطاق المؤسسة.

  • الحساب المركزي يحتفظ بالتحكم في التوجيه، وقوائم التحكم بالشبكة، وسجلات التدفق.
  • كل حساب مشارك يتحكم في مجموعات الأمان داخل الشبكة الفرعية المشتركة — لا يستطيع تعديل جدول التوجيه.
  • يمكن لسياسات SCP في المنظمة منع الحسابات المشاركة من إنشاء شبكات VPC خاصة بها، مما يفرض النموذج المشترك.
# مشاركة شبكة فرعية من حساب الشبكة إلى حساب أحمال العمل aws ram create-resource-share \ --name "shared-private-subnet-useast1a" \ --resource-arns "arn:aws:ec2:us-east-1:NETWORK_ACCT:subnet/subnet-0abc1234" \ --principals "arn:aws:organizations::MGMT_ACCT:ou/o-ORG/ou-ROOT-OUID" \ --permission-arns "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionSubnet" # التحقق من حساب أحمال العمل — تظهر الشبكات الفرعية المشتركة كأنها مملوكة aws ec2 describe-subnets \ --filters "Name=owner-id,Values=NETWORK_ACCT_ID" \ --query "Subnets[*].{ID:SubnetId,CIDR:CidrBlock,AZ:AvailabilityZone}"
تحسين التكاليف على نطاق واسع: مع الشبكات الفرعية المشتركة، تنشر بوابة NAT واحدة لكل منطقة توافر في حساب الشبكة. عشرة حسابات أحمال عمل تخرج جميعها عبر نفس بوابة NAT — مما يوفر ~130 دولاراً شهرياً لكل منطقة توافر لكل حساب مقارنة بإنشاء كل حساب بوابته الخاصة. مع 50 حساباً عبر 3 مناطق توافر، تبلغ وفورات NAT وحدها أكثر من 195,000 دولار سنوياً.

الخروج المركزي وفحص حركة المرور

السماح لكل شبكة VPC ذراع بالخروج مباشرة إلى الإنترنت يخلق نقاط عمياء: لا كشف موحد للتهديدات، ولا قائمة موحدة للنطاقات المسموحة، وقواعد جدار الحماية مبعثرة عبر 50 حساباً. الحل هو توجيه جميع حركة المرور الخارجة عبر VPC الخروج المخصص الذي يحتوي على:

  • AWS Network Firewall (أو جدار حماية من طرف ثالث) — فحص حزم ذو حالة، تصفية الأسماء الكاملة للنطاقات، نظام كشف ومنع التسلل.
  • بوابات NAT — مجموعة صغيرة من عناوين Elastic IP الثابتة يمكن إضافتها إلى قوائم السماح لدى الموردين.
  • VPC Flow Logs → S3 / CloudWatch — تدفق واحد لاستيعاب SIEM.

يقوم جدول توجيه TGW بتوصيل هذا: لدى شبكات VPC الأذرع مسار افتراضي (0.0.0.0/0) يشير إلى TGW، ويعيد TGW التوجيه إلى VPC الخروج عبر جدول التوجيه الخاص بالاتصال. يقوم VPC الخروج بترجمة العنوان ثم يرسل الحزمة إلى بوابة الإنترنت.

# جدول توجيه TGW للأذرع — مسار افتراضي إلى VPC الخروج resource "aws_ec2_transit_gateway_route_table" "spoke_rt" { transit_gateway_id = aws_ec2_transit_gateway.main.id tags = { Name = "spoke-rt" } } resource "aws_ec2_transit_gateway_route" "default_egress" { destination_cidr_block = "0.0.0.0/0" transit_gateway_attachment_id = aws_ec2_transit_gateway_vpc_attachment.egress.id transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.spoke_rt.id } resource "aws_ec2_transit_gateway_route_table_association" "spoke" { for_each = var.spoke_attachment_ids transit_gateway_attachment_id = each.value transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.spoke_rt.id } resource "aws_networkfirewall_firewall_policy" "egress" { name = "org-egress-policy" firewall_policy { stateless_default_actions = ["aws:forward_to_sfe"] stateless_fragment_default_actions = ["aws:forward_to_sfe"] stateful_rule_group_reference { resource_arn = aws_networkfirewall_rule_group.allowed_domains.arn } } } resource "aws_networkfirewall_rule_group" "allowed_domains" { capacity = 100 name = "fqdn-allowlist" type = "STATEFUL" rule_group { rules_source { rules_source_list { generated_rules_type = "ALLOWLIST" target_types = ["HTTP_HOST", "TLS_SNI"] targets = [ ".amazonaws.com", ".github.com", ".docker.io", ".pypi.org", "registry.npmjs.org", ] } } } }

أنماط الفشل في بيئات الإنتاج

التوجيه غير المتماثل يكسر جدران الحماية ذات الحالة. إذا دخلت الحزمة إلى VPC الخروج من TGW عبر منطقة توافر معينة لكن مسار العودة يخرج عبر بوابة NAT في منطقة توافر مختلفة، يسقطها جدار الحماية ذو الحالة (حالة الجلسة خاصة بكل منطقة توافر). انشر دائماً بوابات NAT ونقاط نهاية Network Firewall في كل منطقة توافر، وقم بتكوين الارتباط بالمنطقة في اتصال TGW باستخدام (appliance_mode_support = "enable"). هذا الإعداد الواحد هو أكثر خطوة يتم إغفالها في بنى الشبكات الجديدة على مستوى المؤسسة.
  • حدود نطاق ترددي TGW — كل اتصال محدود بـ 50 Gbps انفجارية. خطوط الأنابيب ذات الإنتاجية العالية (نقل S3 بالجملة، مجموعات Spark EMR) يجب أن تستخدم VPC Endpoints أو S3 Gateway Endpoints داخل الذراع لتجاوز TGW كلياً.
  • تداخل CIDR — خطط لمساحة IP على مستوى المنظمة قبل توصيل الأذرع. يرفض TGW الاتصالات ذات CIDRs المتداخلة في نفس نطاق التوجيه. استخدم AWS IPAM لتخصيص /16 غير متداخلة لكل وحدة تنظيمية.
  • دقة DNS عبر الحسابات — نقاط نهاية Route 53 Resolver في VPC الخدمات المشتركة، مع قواعد التوجيه المشتركة عبر RAM، هي الحل المعتمد. بدونها، تكون المناطق المستضافة الخاصة في حساب واحد غير مرئية لأحمال العمل في حساب آخر حتى مع وجود مسار الشبكة.
AWS IPAM لضمان عدم التداخل: فعّل IPAM على مستوى المنظمة، وحدد مجمعات لكل منطقة ولكل وحدة تنظيمية، وافرضها عبر SCP. عندما يحتاج حساب أحمال عمل جديد إلى شبكة VPC، يستدعي aws ec2 allocate-ipam-pool-cidr — يخصص النظام كتلة غير متداخلة تلقائياً. يلغي هذا أكثر مصادر إعادة هندسة الشبكة إيلاماً على مستوى المنظمة.

النقاط الرئيسية

  • يمنحك نموذج المحور والأذرع عبر Transit Gateway توسعاً خطياً، وتحكماً مركزياً في التوجيه، وإمكانية إدراج نقاط الفحص دون لمس أي ذراع.
  • مشاركة VPC عبر RAM تدمج بوابات NAT وتحافظ على ملكية الشبكة في حساب واحد بينما تتيح لعشرات الفرق النشر في شبكات فرعية مشتركة.
  • الخروج المركزي مع AWS Network Firewall يوفر قائمة FQDN موحدة وسجلات تدفق موحدة ومجموعة مستقرة من Elastic IPs — أمر بالغ الأهمية للامتثال والاستجابة للحوادث.
  • فعّل appliance_mode_support على اتصالات TGW المتجهة إلى أجهزة الفحص لمنع أعطال جدار الحماية الناجمة عن عدم تماثل مناطق التوافر.
  • استخدم AWS IPAM منذ اليوم الأول للقضاء على تداخل CIDR مع نمو المنظمة.