برنامه نویسی
استفاده از نام دامنه سفارشی در یک دروازه خصوصی REST API

در شبکه های داخلی، در پشت VPC، توسعه دهندگان ممکن است بخواهند با یک دروازه خصوصی API تعامل داشته باشند. یکی از موارد استفاده معمول، فراخوانی دروازه API برای دسترسی به یک تابع lambda خاص از یک منبع شبکه است که نیاز به برقراری تماسهای HTTPS غیراینترنتی بدون درگیر کردن API AWS دارد.
با توجه به اسناد AWS: “نام های دامنه سفارشی برای API های خصوصی پشتیبانی نمی شوند.”
با این حال، یک هک ساده برای انجام این کار وجود دارد.
TL;DR; معماری
راه حل کامل
- در VPC، یک نقطه پایانی VPC “execute-api” برای API Gateway ایجاد کنید
- در API Gateway، یک REST API خصوصی و همه روشهای ضروری/منابع ایجاد کنید. یک خط مشی منبع ایجاد کنید که فقط از طریق نقطه پایانی VPC اجازه دسترسی را بدهد
- در نقاط پایانی VPC، بخش Subnets از نقطه پایانی VPC ایجاد شده در مرحله 1 را کاوش کنید و IP ها را بگیرید.
- با استفاده از IP های مرحله 3 یک گروه هدف TLS ایجاد کنید.
- با استفاده از گروه هدف از مرحله 4، یک NLB داخلی TLS ایجاد کنید.
- یک نام دامنه سفارشی در API Gateway (نوع منطقه ای) ایجاد کنید اما آن را به دروازه خصوصی API اشاره کنید.
- در Route53، یک منطقه خصوصی متصل به همان VPC با یک رکورد CNAME که به آدرس NLB DNS اشاره دارد، پیکربندی کنید.
پس از انجام این کار، باید کار کند. من این کار را بارها در پروژههای مختلف انجام دادهام، اما مدام آن را فراموش میکنم، بنابراین فکر کردم زمان خوبی است که آن را مستند کنم تا برای شخص دیگری مفید باشد.