برنامه نویسی

ارتباط سرویس به سرویس ECS – انجمن DEV

Summarize this content to 400 words in Persian Lang

خلاصه

خدمات آمازون ECS را به هم متصل کنید: برنامه هایی که در وظایف آمازون ECS اجرا می شوند اغلب نیاز به اتصال به سایر برنامه هایی دارند که در سرویس های آمازون ECS اجرا می شوند. اگر به برنامه ای برای اتصال به سایر برنامه هایی که در خدمات آمازون ECS اجرا می شوند نیاز دارید، Amazon ECS راه های زیر را برای انجام این کار بدون متعادل کننده بار ارائه می دهد:

فهرست مطالب

🚀 اتصال سرویس آمازون ECS

Amazon ECS Service Connect با استفاده از فضاهای نام AWS Cloud Map و نام‌های منطقی سرویس، ارتباط آسان بین میکروسرویس‌ها و ابرهای خصوصی مجازی آمازون (VPCs آمازون) را امکان‌پذیر می‌سازد. این به شما امکان می دهد بدون نیاز به استقرار، پیکربندی و حفظ تعادل بار، ترافیک را بین وظایف Amazon ECS خود توزیع کنید.
ما Service Connect را توصیه می کنیم که پیکربندی آمازون ECS را برای کشف سرویس، اتصال و نظارت بر ترافیک ارائه می دهد. با Service Connect، برنامه‌های شما می‌توانند از نام‌های کوتاه و پورت‌های استاندارد برای اتصال به سرویس‌های Amazon ECS در همان خوشه، سایر خوشه‌ها، از جمله در سراسر VPC در همان منطقه AWS استفاده کنند.

🚀 اتصال سرویس AWS ECS در مقابل کشف سرویس

Service Connect مزیت قابل توجهی را نسبت به Cloud Map ساده برای کشف سرویس با ارائه Failover سریعتر هنگام از بین رفتن نمونه های سرویس ارائه می دهد. با جستجوی مبتنی بر DNS در Cloud Map، مشتری ممکن است مدتی طول بکشد (بسته به تنظیمات TTL) تا تشخیص دهد که وقتی سرویسی از کار می‌افتد به آدرس IP جدید نیاز دارد. اگر کتابخانه سرویس گیرنده آدرس IP یکسان را برای مدت طولانی ذخیره کند، یا اگر منطق تلاش مجدد مشتری مکرراً پس از شکست به همان آدرس IP متصل شود، این تأخیر می تواند تشدید شود.
از سوی دیگر Service Connect یک کانتینر «پراکسی» sidecar را معرفی می کند که اتصالات خروجی را رهگیری می کند و آنها را به مقصدهای صحیح هدایت می کند. به‌جای تکیه بر ورودی‌های DNS بالقوه قدیمی، سایدکار از تماس‌های API به Cloud Map برای جستجوی آدرس IP یک نمونه سرویس سالم در زمان واقعی استفاده می‌کند. این روش مزایای استاندارد یک سرویس مش، مانند Envoy را با مزیت افزوده ای که Service Connect برای شما سایدکار را مدیریت می کند، ارائه می دهد. برای بحث دقیق تر در مورد این مزایا، به راهنمای انتقال خدمات ECS موجود آمازون از کشف سرویس به Amazon ECS Service Connect مراجعه کنید.
از آنجایی که Service Connect به DNS متکی نیست، از ثبت حتی ورودی های DNS خصوصی نیز جلوگیری می کند. در عوض، نقاط پایانی را با Cloud Map ثبت می کند که به صورت خصوصی فقط از طریق تماس های API قابل شناسایی هستند. به نظر می رسد در حال حاضر هیچ گزینه ای برای پیکربندی Service Connect برای ثبت نام سرویس در DNS وجود ندارد.

🚀 استقرار نمونه برنامه Yelb برای اتصال سرویس با آمازون ECS و AWS CDK Typescript

برنامه Yelb مورد استفاده در این نسخه ی نمایشی از برنامه اصلی Massimo Re Ferrè در اینجا اقتباس شده است.

📖 بررسی اجمالی راه حل

📖 پشته های CDK

🚀 راهپیمایی

پیش نیازها: برای این راهنما، به پیش نیازهای زیر نیاز دارید

حساب AWS
AWS CDK CLI
CDK بوت استرپ در منطقه هدف

Projen – مدیریت پیکربندی

pNpm – مدیر بسته سریع و کارآمد فضای دیسک

1. راه اندازی اولیه

# Clone project sample
git clone git@github.com:vumdao/ecs-service-connect-cdk.git && cd ecs-service-connect-cdk

# Install node modules
pnpm install

# Update your AWS account in `src/lib/shared/constants.ts` at `CDK_DEFAULT_ACCOUNT` and target region in `src/lib/shared/environment.ts` at `devEnv`
sed -i ‘s/107858015234/234567890123/g’ src/lib/shared/constants.ts
sed -i ‘s/region: .*,/region: “us-west-2”,/g’ src/lib/shared/environment.ts

# Update Hosted zone name and zone ID in `src/lib/shared/constants.ts` with yours AWS hosted zone to create domain for yelb application eg. yelb.simflexcloud.com
# export const SIMFLEXCLOUD_ZONE_NAME = ‘simflexcloud.com’;
# export const SIMFLEXCLOUD_ZONE_ID = ‘ZZZZZZZSSSSSSAAAA’;

# Get CDK stack
cdk ls

# Deploy CDK
cdk deploy EcsBlueprintsStack –require-approval never

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. منابع ایجاد شده را کاوش کنید

پشته Cloudformation

ECS Cluster

پایگاه داده Yelb با اتصال سرویس مشتری

Yelb redis با اتصال سرویس مشتری

اپ سرور Yelb با اتصال سرویس گیرنده و api-call

وظیفه اپ سرور Yelb با سرویس اتصال جانبی ماشین (این عامل برای همه سرویس هایی که اتصال سرویس را فعال کرده اند مورد نیاز است)

گروه مقیاس‌پذیری خودکار اپ سرور با مسیر استفاده از CPU

Yelb UI با اتصال سرویس مشتری

متعادل کننده بار برنامه برای ارسال درخواست ها به گروه هدف yelb-ui

گروه هدف yelb-ui

سرویس نقشه ابری با فضای نام مورد استفاده توسط اتصال سرویس ECS

فضای نام نقشه ابری

🚀 تمیز کردن

برای جلوگیری از هزینه، منابع ایجاد شده در این پست را با اجرا پاک کنید cdk destroy یا به cloudformation بروید و پشته را حذف کنید

🚀 نتیجه گیری

با استفاده از این راهنما، می توانید به راحتی ecs-service-connect-yelb-sample-app را با استفاده از تایپ اسکریپت AWS CDK برای نشان دادن ارتباط سرویس به سرویس ECS با استفاده از اتصال سرویس ECS اجرا کنید.
Cloudmap هنگام ایجاد فضای نام، منطقه میزبان خصوصی را به طور خودکار ایجاد می کند، ما می توانیم آن را حذف کنیم زیرا هنگام استفاده از اتصال سرویس به منطقه میزبان خصوصی تکیه نمی کنیم.
با توجه به قیمت ECS Service Connect، استفاده از AWS Cloud Map در صورت استفاده توسط Service Connect کاملا رایگان است. این شامل کشف سرویس، اتصال، و تله متری تولید شده در کنسول ECS و CloudWatch توسط Service Connect است. تنها هزینه های متحمل شده برای منابع محاسباتی استفاده شده است. ECS Service Connect یک محفظه جدید (پراکسی اتصال سرویس) به هر کار جدید پس از شروع معرفی می کند. در نتیجه، شما فقط برای CPU و حافظه اختصاص داده شده به این کانتینر پراکسی sidecar دریافت می کنید.

منابع

خلاصه

  • خدمات آمازون ECS را به هم متصل کنید: برنامه هایی که در وظایف آمازون ECS اجرا می شوند اغلب نیاز به اتصال به سایر برنامه هایی دارند که در سرویس های آمازون ECS اجرا می شوند. اگر به برنامه ای برای اتصال به سایر برنامه هایی که در خدمات آمازون ECS اجرا می شوند نیاز دارید، Amazon ECS راه های زیر را برای انجام این کار بدون متعادل کننده بار ارائه می دهد:

فهرست مطالب


🚀 اتصال سرویس آمازون ECS

  • Amazon ECS Service Connect با استفاده از فضاهای نام AWS Cloud Map و نام‌های منطقی سرویس، ارتباط آسان بین میکروسرویس‌ها و ابرهای خصوصی مجازی آمازون (VPCs آمازون) را امکان‌پذیر می‌سازد. این به شما امکان می دهد بدون نیاز به استقرار، پیکربندی و حفظ تعادل بار، ترافیک را بین وظایف Amazon ECS خود توزیع کنید.
  • ما Service Connect را توصیه می کنیم که پیکربندی آمازون ECS را برای کشف سرویس، اتصال و نظارت بر ترافیک ارائه می دهد. با Service Connect، برنامه‌های شما می‌توانند از نام‌های کوتاه و پورت‌های استاندارد برای اتصال به سرویس‌های Amazon ECS در همان خوشه، سایر خوشه‌ها، از جمله در سراسر VPC در همان منطقه AWS استفاده کنند.

serviceconnect

🚀 اتصال سرویس AWS ECS در مقابل کشف سرویس

  • Service Connect مزیت قابل توجهی را نسبت به Cloud Map ساده برای کشف سرویس با ارائه Failover سریعتر هنگام از بین رفتن نمونه های سرویس ارائه می دهد. با جستجوی مبتنی بر DNS در Cloud Map، مشتری ممکن است مدتی طول بکشد (بسته به تنظیمات TTL) تا تشخیص دهد که وقتی سرویسی از کار می‌افتد به آدرس IP جدید نیاز دارد. اگر کتابخانه سرویس گیرنده آدرس IP یکسان را برای مدت طولانی ذخیره کند، یا اگر منطق تلاش مجدد مشتری مکرراً پس از شکست به همان آدرس IP متصل شود، این تأخیر می تواند تشدید شود.
  • از سوی دیگر Service Connect یک کانتینر «پراکسی» sidecar را معرفی می کند که اتصالات خروجی را رهگیری می کند و آنها را به مقصدهای صحیح هدایت می کند. به‌جای تکیه بر ورودی‌های DNS بالقوه قدیمی، سایدکار از تماس‌های API به Cloud Map برای جستجوی آدرس IP یک نمونه سرویس سالم در زمان واقعی استفاده می‌کند. این روش مزایای استاندارد یک سرویس مش، مانند Envoy را با مزیت افزوده ای که Service Connect برای شما سایدکار را مدیریت می کند، ارائه می دهد. برای بحث دقیق تر در مورد این مزایا، به راهنمای انتقال خدمات ECS موجود آمازون از کشف سرویس به Amazon ECS Service Connect مراجعه کنید.
  • از آنجایی که Service Connect به DNS متکی نیست، از ثبت حتی ورودی های DNS خصوصی نیز جلوگیری می کند. در عوض، نقاط پایانی را با Cloud Map ثبت می کند که به صورت خصوصی فقط از طریق تماس های API قابل شناسایی هستند. به نظر می رسد در حال حاضر هیچ گزینه ای برای پیکربندی Service Connect برای ثبت نام سرویس در DNS وجود ندارد.

🚀 استقرار نمونه برنامه Yelb برای اتصال سرویس با آمازون ECS و AWS CDK Typescript

  • برنامه Yelb مورد استفاده در این نسخه ی نمایشی از برنامه اصلی Massimo Re Ferrè در اینجا اقتباس شده است.

yelb architecture

📖 بررسی اجمالی راه حل

solution architect

📖 پشته های CDK

diagram

🚀 راهپیمایی

  • پیش نیازها: برای این راهنما، به پیش نیازهای زیر نیاز دارید
    • حساب AWS
    • AWS CDK CLI
    • CDK بوت استرپ در منطقه هدف
    • Projen – مدیریت پیکربندی

    • pNpm – مدیر بسته سریع و کارآمد فضای دیسک

1. راه اندازی اولیه

# Clone project sample
git clone git@github.com:vumdao/ecs-service-connect-cdk.git && cd ecs-service-connect-cdk

# Install node modules
pnpm install

# Update your AWS account in `src/lib/shared/constants.ts` at `CDK_DEFAULT_ACCOUNT` and target region in `src/lib/shared/environment.ts` at `devEnv`
sed -i 's/107858015234/234567890123/g' src/lib/shared/constants.ts
sed -i 's/region: .*,/region: "us-west-2",/g' src/lib/shared/environment.ts

# Update Hosted zone name and zone ID in `src/lib/shared/constants.ts` with yours AWS hosted zone to create domain for yelb application eg. yelb.simflexcloud.com
# export const SIMFLEXCLOUD_ZONE_NAME = 'simflexcloud.com';
# export const SIMFLEXCLOUD_ZONE_ID = 'ZZZZZZZSSSSSSAAAA';

# Get CDK stack
cdk ls

# Deploy CDK
cdk deploy EcsBlueprintsStack --require-approval never
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. منابع ایجاد شده را کاوش کنید

  • پشته Cloudformation

    cfn stack

  • ECS Cluster

    cluster

  • پایگاه داده Yelb با اتصال سرویس مشتری

    db

  • Yelb redis با اتصال سرویس مشتری

    redis

  • اپ سرور Yelb با اتصال سرویس گیرنده و api-call

    app server

  • وظیفه اپ سرور Yelb با سرویس اتصال جانبی ماشین (این عامل برای همه سرویس هایی که اتصال سرویس را فعال کرده اند مورد نیاز است)

    app server tasks

  • گروه مقیاس‌پذیری خودکار اپ سرور با مسیر استفاده از CPU

    app server autoscaling

  • Yelb UI با اتصال سرویس مشتری

    ui

  • متعادل کننده بار برنامه برای ارسال درخواست ها به گروه هدف yelb-ui

    alb

  • گروه هدف yelb-ui

    target group

  • سرویس نقشه ابری با فضای نام مورد استفاده توسط اتصال سرویس ECS

    cloudmap services

  • فضای نام نقشه ابری

    namespace

🚀 تمیز کردن

  • برای جلوگیری از هزینه، منابع ایجاد شده در این پست را با اجرا پاک کنید cdk destroy یا به cloudformation بروید و پشته را حذف کنید

cfn destroy

🚀 نتیجه گیری

  • با استفاده از این راهنما، می توانید به راحتی ecs-service-connect-yelb-sample-app را با استفاده از تایپ اسکریپت AWS CDK برای نشان دادن ارتباط سرویس به سرویس ECS با استفاده از اتصال سرویس ECS اجرا کنید.
  • Cloudmap هنگام ایجاد فضای نام، منطقه میزبان خصوصی را به طور خودکار ایجاد می کند، ما می توانیم آن را حذف کنیم زیرا هنگام استفاده از اتصال سرویس به منطقه میزبان خصوصی تکیه نمی کنیم.
  • با توجه به قیمت ECS Service Connect، استفاده از AWS Cloud Map در صورت استفاده توسط Service Connect کاملا رایگان است. این شامل کشف سرویس، اتصال، و تله متری تولید شده در کنسول ECS و CloudWatch توسط Service Connect است. تنها هزینه های متحمل شده برای منابع محاسباتی استفاده شده است. ECS Service Connect یک محفظه جدید (پراکسی اتصال سرویس) به هر کار جدید پس از شروع معرفی می کند. در نتیجه، شما فقط برای CPU و حافظه اختصاص داده شده به این کانتینر پراکسی sidecar دریافت می کنید.

منابع

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا