VPC: ربط الشبكات ببعض
كيف تربط شبكات VPC ببعض عبر Peering وTransit Gateway، وتوصل لخدمات AWS بشكل خاص عبر Endpoints، وتربط مكتبك بـ VPN أو Direct Connect، وتتحكم في تكلفة الشبكة، مع تجربة عملية لأكثر اتصالين فايدة.
- الفكرة الأساسية
- تعريف
- متى يُستخدم
- تنبيه
في هذا المقال
في الجزء الثالث عشر بنينا شبكة معزولة. بس التطبيقات الحقيقية نادراً تبقى لحالها: عندك 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 تعطيك طريق خاص ومباشر:
| Gateway Endpoint | Interface Endpoint | |
|---|---|---|
| الخدمات | S3 وDynamoDB فقط | أغلب خدمات AWS، وخدمات شركاء |
| كيف يشتغل | طريق في جدول التوجيه | واجهة شبكة بعنوان خاص في شبكتك |
| التكلفة | مجاني | بالساعة لكل منطقة، ولكل جيجابايت |
| من مكتبك | ما يوصل | يوصل عبر VPN أو Direct Connect |
وInterface Endpoint مبني على PrivateLink، وهو يخليك كمان تقدم خدمتك لشبكات ثانية عبر NLB، بدون Peering وحتى لو نطاقاتهم متداخلة.
ربط مكتبك: Site-to-Site VPN
Site-to-Site VPN يربط شبكة مكتبك بالـ VPC عبر الإنترنت بنفق مشفّر، وتجهزه في وقت قصير. وله ثلاث قطع:
- Customer Gateway: يمثل جهازك في المكتب وعنوانه العام.
- Virtual Private Gateway: بوابة VPN من جهة AWS، تركّبها على الـ VPC.
- 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 متعب، لأنه ما ينتقل، فتحتاج وصلة لكل زوج:
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، مثل ما شرحنا في الجزء الثاني. وعلى السيرفر جرّب:
aws s3 ls --cli-connect-timeout 5
ينتهي الوقت بعد عدة محاولات، لأن ما فيه طريق لـ S3. الحين من CloudShell أضف Endpoint:
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 من الجزء الثالث. هات عنوانه الخاص:
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، وبينتهي الوقت. الحين أنشئ الربط واقبله:
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
الربط وحده ما يكفي، فأضف الطريق في الجهتين:
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 عبر العنوان الخاص.
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.