الجزء 14 من سلسلة تعلّم AWS من الصفر

VPC: ربط الشبكات ببعض

كيف تربط شبكات VPC ببعض عبر Peering وTransit Gateway، وتوصل لخدمات AWS بشكل خاص عبر Endpoints، وتربط مكتبك بـ VPN أو Direct Connect، وتتحكم في تكلفة الشبكة، مع تجربة عملية لأكثر اتصالين فايدة.

في هذا المقال
  1. VPC Peering
  2. VPC Endpoints: خدمات AWS بدون إنترنت
  3. ربط مكتبك: Site-to-Site VPN
  4. Direct Connect: خط خاص
  5. Transit Gateway: محور واحد
  6. تكلفة الشبكة
  7. طبقات الحماية
  8. عملي: Endpoint وPeering
  9. الخلاصة
  10. اختبر نفسك

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

هذي خريطة الجزء، وارجع لها لما تحتار:

تبي استخدم
شبكتين VPC يتكلمون VPC Peering
شبكة خاصة توصل لـ S3 أو DynamoDB بدون NAT Gateway Endpoint
توصل لخدمات AWS ثانية أو خدمة شريك بشكل خاص Interface Endpoint
مكتبك يوصل لـ AWS بسرعة عبر الإنترنت Site-to-Site VPN
أجهزة الموظفين توصل للشبكة Client VPN
خط ثابت وكبير بين مكتبك وAWS Direct Connect
شبكات ومكاتب كثيرة Transit Gateway

VPC Peering

Peering يربط شبكتين VPC مباشرة، فكأنهم شبكة وحدة. وتربط حتى بين حسابات مختلفة أو Regions مختلفة. وقواعده:

  • النطاقات ما تتداخل. هذا اللي نبهناك له في الجزء السابق.
  • ما ينتقل. لو A مربوطة بـ B، وB مربوطة بـ C، فـ A ما توصل لـ C.
  • تحتاج طريق في الجهتين. تضيفه في جدول توجيه كل شبكة.

وما له رسم بالساعة، وتدفع فقط على نقل البيانات.

VPC Endpoints: خدمات AWS بدون إنترنت

افتراضياً، طلب سيرفرك الخاص لخدمة S3 يطلع عبر NAT، وتدفع على كل جيجابايت، مع إن الوجهة داخل AWS أصلاً. Endpoints تعطيك طريق خاص ومباشر:

سيرفر خاص في شبكة خاصة S3 NAT ثم الإنترنت مدفوع لكل جيجابايت Gateway Endpoint مجاني
بدل الطريق المدفوع عبر NAT، يوصل السيرفر الخاص إلى S3 عبر Gateway Endpoint المجاني، بدون ما يطلع للإنترنت.
Gateway Endpoint Interface Endpoint
الخدمات S3 وDynamoDB فقط أغلب خدمات AWS، وخدمات شركاء
كيف يشتغل طريق في جدول التوجيه واجهة شبكة بعنوان خاص في شبكتك
التكلفة مجاني بالساعة لكل منطقة، ولكل جيجابايت
من مكتبك ما يوصل يوصل عبر VPN أو Direct Connect

وInterface Endpoint مبني على PrivateLink، وهو يخليك كمان تقدم خدمتك لشبكات ثانية عبر NLB، بدون Peering وحتى لو نطاقاتهم متداخلة.

ربط مكتبك: Site-to-Site VPN

Site-to-Site VPN يربط شبكة مكتبك بالـ VPC عبر الإنترنت بنفق مشفّر، وتجهزه في وقت قصير. وله ثلاث قطع:

  1. Customer Gateway: يمثل جهازك في المكتب وعنوانه العام.
  2. Virtual Private Gateway: بوابة VPN من جهة AWS، تركّبها على الـ VPC.
  3. VPN Connection: الاتصال نفسه، ويجي بنفقين عشان التوفر.

وبعدها فعّل Route Propagation في جدول التوجيه عشان تعرف الـ VPC طرق المكتب. وكل نفق يعطيك لين 1.25 جيجابت، ولين 5 مع Transit Gateway.

  • VPN CloudHub: يربط عدة مكاتب ببعض عبر نفس البوابة.
  • Client VPN: لأجهزة الموظفين بدل المكاتب.

وإذا تبي VPN تتحكم فيه بالكامل على سيرفرك، شوف مقال WireGuard.

Direct Connect: خط خاص

Direct Connect خط فعلي خاص بين مكانك وAWS عبر موقع Direct Connect، فما يمر بالإنترنت العام. فسرعته ثابتة، ونقل البيانات الخارجة أرخص.

  • Dedicated: منفذ خاص فيك من 1 إلى 400 جيجابت.
  • Hosted: عن طريق شريك، بسرعات تبدأ أقل بكثير.
  • Direct Connect Gateway: يوصلك بشبكات VPC في عدة Regions.

انتبه لثلاث نقاط: التجهيز ياخذ أسابيع وأحياناً أشهر، والخط مو مشفّر تلقائياً، فاستخدم MACsec أو VPN فوقه، والخط الواحد نقطة فشل واحدة، فلأهم الأنظمة خل خطين في موقعين، أو VPN احتياطي.

Site-to-Site VPN Direct Connect
الطريق الإنترنت، مشفّر خط خاص
التجهيز دقايق أو ساعات أسابيع أو أشهر
السرعة 1.25 جيجابت للنفق، و5 مع Transit Gateway من 1 إلى 400 جيجابت
الأداء يتغير مع الإنترنت ثابت
التكلفة قليلة أعلى في البداية، وأرخص لنقل كبير

Transit Gateway: محور واحد

لما تكثر الشبكات، يصير Peering متعب، لأنه ما ينتقل، فتحتاج وصلة لكل زوج:

Peering: عشر وصلات VPC VPC VPC VPC VPC Transit Gateway: خمس وصلات VPC VPC VPC VPC VPC Transit GW
خمس شبكات تحتاج عشر وصلات Peering، أو خمس وصلات فقط لمحور Transit Gateway واحد.

Transit Gateway محور مركزي تربط فيه الشبكات، وكل وحدة توصل لغيرها عبره:

  • يربط كل شي: شبكات VPC، واتصالات VPN، وDirect Connect، وTransit Gateway في Regions ثانية.
  • جداول توجيه خاصة فيه: تحدد مين يكلم مين، مثلاً تفصل الإنتاج عن التطوير.
  • بين الحسابات: تشاركه مع حسابات ثانية عبر خدمة RAM.
  • سرعة VPN أعلى: توزّع الزيارات على عدة أنفاق.

وتدفع بالساعة على كل وصلة، وعلى البيانات. فلشبكتين أو ثلاث، Peering أبسط وأرخص.

تكلفة الشبكة

نقل البيانات أكثر بند يفاجئ الناس. وهذي أسعار تقريبية في مناطق أمريكا، فراجع منطقتك:

الزيارات التكلفة لكل جيجابايت
داخل لـ AWS مجاني
داخل نفس منطقة التوفر بعنوان خاص مجاني
بين مناطق التوفر حوالي 0.01 دولار في كل اتجاه
بين Regions حوالي 0.02 دولار
خارج للإنترنت حوالي 0.09 دولار، ويقل مع الحجم
عبر NAT Gateway حوالي 0.045 دولار زيادة
S3 عبر Gateway Endpoint مجاني

وكيف توفر:

  • استخدم العناوين الخاصة بين السيرفرات، لا العامة.
  • خل الخدمات اللي تتكلم كثير في نفس منطقة التوفر، لو يسمح تصميم التوفر عندك.
  • فعّل Gateway Endpoint لـ S3.
  • قدّم المحتوى عبر CloudFront، لأن النقل من مصدرك إليه مجاني.

طبقات الحماية

الطبقة الخدمة تحمي من
الشبكة الفرعية NACL عناوين تبي تمنعها
السيرفر مجموعة الأمان أي منفذ ومصدر ما سمحت له
تطبيق الويب WAF هجمات الويب مثل SQL Injection
الهجمات الكبيرة Shield DDoS
الـ VPC كلها Network Firewall فحص الزيارات والنطاقات عند الحدود

وعن IPv6: تقدر تضيفه للـ VPC، بس كل عناوينه عامة. فلو تبي السيرفرات تطلع بدون دخول، استخدم Egress-only Internet Gateway، وهو مثل NAT لـ IPv6.

عملي: Endpoint وPeering

بنكمل على شبكة الجزء الثالث عشر، بعد حذف NAT Gateway. فـ private-server ما عنده طريق للإنترنت. والأوامر تستخدم المتغيرات VPC وRT_PRIVATE، ولو انتهت جلسة CloudShell حددها بيدك من صفحة VPC.

Gateway Endpoint

أعطِ private-server دور IAM فيه AmazonS3ReadOnlyAccess، مثل ما شرحنا في الجزء الثاني. وعلى السيرفر جرّب:

Bash
aws s3 ls --cli-connect-timeout 5

ينتهي الوقت بعد عدة محاولات، لأن ما فيه طريق لـ S3. الحين من CloudShell أضف Endpoint:

Bash
aws ec2 create-vpc-endpoint --vpc-id $VPC \
  --service-name com.amazonaws.$AWS_REGION.s3 \
  --route-table-ids $RT_PRIVATE

aws ec2 describe-route-tables --route-table-ids $RT_PRIVATE \
  --query "RouteTables[0].Routes[].[DestinationCidrBlock,DestinationPrefixListId,GatewayId]" \
  --output table

بتشوف طريق جديد يبدأ بـ pl- ويشير لـ vpce-. وأعد أمر aws s3 ls على السيرفر، وبيرجع فوراً بقائمة الحاويات، أو فاضي لو ما عندك حاويات، بدون أي إنترنت.

VPC Peering

الحين نربط هذي الشبكة بالافتراضية، اللي فيها web-1 من الجزء الثالث. هات عنوانه الخاص:

Bash
aws ec2 describe-instances \
  --filters "Name=tag:Name,Values=web-1" "Name=instance-state-name,Values=running" \
  --query "Reservations[0].Instances[0].PrivateIpAddress" --output text

من private-server جرّب curl -m 5 http://WEB-PRIVATE-IP، وبينتهي الوقت. الحين أنشئ الربط واقبله:

Bash
DEFAULT_VPC=$(aws ec2 describe-vpcs --filters Name=isDefault,Values=true \
  --query "Vpcs[0].VpcId" --output text)

PEER=$(aws ec2 create-vpc-peering-connection \
  --vpc-id $VPC --peer-vpc-id $DEFAULT_VPC \
  --query VpcPeeringConnection.VpcPeeringConnectionId --output text)

aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id $PEER

الربط وحده ما يكفي، فأضف الطريق في الجهتين:

Bash
aws ec2 create-route --route-table-id $RT_PRIVATE \
  --destination-cidr-block 172.31.0.0/16 --vpc-peering-connection-id $PEER

DEFAULT_RT=$(aws ec2 describe-route-tables \
  --filters Name=vpc-id,Values=$DEFAULT_VPC Name=association.main,Values=true \
  --query "RouteTables[0].RouteTableId" --output text)

aws ec2 create-route --route-table-id $DEFAULT_RT \
  --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id $PEER

أعد curl من private-server، وبترجع صفحة web-1 عبر العنوان الخاص.

Bash
aws ec2 delete-route --route-table-id $DEFAULT_RT \
  --destination-cidr-block 10.0.0.0/16

aws ec2 delete-vpc-peering-connection --vpc-peering-connection-id $PEER

الخلاصة

  • Peering لشبكتين، وما ينتقل، وTransit Gateway لما تكثر الشبكات.
  • Gateway Endpoint مجاني لـ S3 وDynamoDB، وInterface Endpoint لباقي الخدمات.
  • VPN سريع التجهيز عبر الإنترنت، وDirect Connect خط خاص ياخذ وقت.
  • نقل البيانات من أكبر المفاجآت في الفاتورة، فخطط له من البداية.

اختبر نفسك

قبل ما تكمل، جرّب هذي الأسئلة عشان تتأكد إنك فهمت الجزء. كل سؤال موقف عملي، وبعد ما تجاوب يطلع لك الشرح.

السؤال 1 من 5

تطبيق لمعالجة الطلبات في شبكة خاصة يكتب كثير على DynamoDB، والفريق لقى إن أغلب فاتورة NAT Gateway جاية من هذي الزيارات. وش يقلل هذي التكلفة بأقل جهد؟

اعرض الجواب

الجواب الصحيح: C

الـ Gateway Endpoint يضيف مسار إلى DynamoDB يتخطى NAT، بدون رسوم إضافية وبدون تغيير في الكود.

  • A: هذا يكشف سيرفرات لازم تبقى خاصة، والعناوين العامة مدفوعة كمان.
  • B: DynamoDB مو VPC تقدر تربطها بـ Peering.
  • D: هذا يربط موقعك أنت بـ AWS، وما له علاقة بالزيارات داخل الـ VPC.

للمراجعة: VPC Endpoints: خدمات AWS بدون إنترنت في هذا الجزء، وGateway endpoints for Amazon DynamoDB في وثائق AWS.

السؤال 2 من 5

فريق مدفوعات يشغّل واجهة API داخلية خلف Network Load Balancer. وأربعين VPC ثانية تحتاج تتصل فيها، وبعض نطاقاتهم تتداخل مع نطاقها، وما لازم يوصلون لأي شي ثاني في شبكتها. وش يناسب؟

اعرض الجواب

الجواب الصحيح: B

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

  • A: Peering ما يشتغل مع النطاقات المتداخلة، ويربط الشبكات بالكامل.
  • C: الـ Gateway Endpoint لـ S3 وDynamoDB فقط.
  • D: هذا يحط API داخلية على الإنترنت.

للمراجعة: VPC Endpoints: خدمات AWS بدون إنترنت في هذا الجزء، وAWS PrivateLink في وثائق AWS.

السؤال 3 من 5

شركة صغيرة لازم تربط شبكة مكتبها بـ VPC قبل الأسبوع الجاي. والزيارات قليلة، والميزانية محدودة، والبيانات لازم تكون مشفرة. أي خيار يناسب؟

اعرض الجواب

الجواب الصحيح: A

Site-to-Site VPN يمر عبر الإنترنت في نفق مشفر، وتقدر تجهزه بسرعة وبتكلفة قليلة.

  • B: تجهيزه ياخذ أسابيع أو أشهر، وتكلفته أعلى في البداية.
  • C: هذا لأجهزة الموظفين، مو لشبكة مكتب كاملة.
  • D: هذا يربط شبكات VPC ببعض، وما يوصل لمكتب.

للمراجعة: ربط مكتبك: Site-to-Site VPN في هذا الجزء، وWhat is AWS Site-to-Site VPN? في وثائق AWS.

السؤال 4 من 5

شركة تكبر إلى 30 VPC على عدة حسابات، مع ثلاث مكاتب متصلة بـ VPN. وتبي كل الشبكات تتصل في مكان واحد، مع فصل الإنتاج عن التطوير. وش يناسب بأقل عبء تشغيلي؟

اعرض الجواب

الجواب الصحيح: D

Transit Gateway محور مركزي لشبكات VPC والـ VPN، وجداول توجيهه تحدد مين يتكلم مع مين، وينشارك بين الحسابات عبر RAM.

  • A: ثلاثين شبكة تحتاج 435 اتصال، كل واحد بمساراته.
  • B: هذا يربط المكاتب ببعض عبر بوابة وحدة، مو مجموعة شبكات VPC.
  • C: Peering ما ينتقل، فالباقي ما يوصلون لبعض من خلالها.

للمراجعة: Transit Gateway: محور واحد في هذا الجزء، وWhat is AWS Transit Gateway for Amazon VPC? في وثائق AWS.

السؤال 5 من 5

بنك يوصل لـ AWS عبر خط Direct Connect واحد بسرعة 10 جيجابت. والتدقيق لقى مشكلتين: الخط نقطة فشل واحدة، وبياناته مو مشفرة. أي إجراءين يعالجون هذا؟ (اختر اثنين.)

اعرض الجواب

الجواب الصحيح: A + C

الخط الثاني في موقع ثاني يبقي البنك متصل لو تعطل خط أو موقع كامل. وMACsec أو VPN فوقه يضيف التشفير اللي ما يجي مع الخط افتراضياً.

  • B: الخط الأسرع لسا خط واحد، ولسا مو مشفر.
  • D: هذا يوصل لـ S3 وDynamoDB من داخل VPC، وما له علاقة بالخط.
  • E: هذا لسا خط واحد، والشريك ما يشفره لك.

للمراجعة: Direct Connect: خط خاص في هذا الجزء، وEncryption in AWS Direct Connect وAWS Direct Connect Resiliency Toolkit في وثائق AWS.

بهذا نكمل قسم الشبكات. الآن تعرف طريق الزائر من اسم موقعك لين بياناته، وبقي لنا مكان يتخزن فيه أي شي بأي حجم. هذا موضوع القسم الجاي، ونبدأه في الجزء الخامس عشر مع أساسيات S3.