

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menerapkan API Amazon API Gateway di situs web internal menggunakan endpoint pribadi dan Application Load Balancer
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer"></a>

*Saurabh Kothari, Amazon Web Services*

## Ringkasan
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-summary"></a>

Pola ini menunjukkan cara menerapkan API Amazon API Gateway di situs web internal yang dapat diakses dari jaringan lokal. Anda belajar membuat nama domain khusus untuk API pribadi dengan menggunakan arsitektur yang dirancang dengan titik akhir pribadi, Application Load Balancer, PrivateLink AWS, dan Amazon Route 53. Arsitektur ini mencegah konsekuensi yang tidak diinginkan dari penggunaan nama domain khusus dan server proxy untuk membantu perutean berbasis domain pada API. Misalnya, jika Anda menerapkan titik akhir virtual private cloud (VPC) di subnet yang tidak dapat dirutekan, jaringan Anda tidak dapat menjangkau API Gateway. Solusi umum adalah menggunakan nama domain khusus dan kemudian menerapkan API di subnet yang dapat dirutekan, tetapi ini dapat merusak situs internal lainnya ketika konfigurasi proxy meneruskan traffic (`execute-api.{region}.vpce.amazonaws.com`) ke AWS Direct Connect. Terakhir, pola ini dapat membantu Anda memenuhi persyaratan organisasi untuk menggunakan API pribadi yang tidak dapat dijangkau dari internet dan nama domain khusus.

## Prasyarat dan batasan
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Sertifikat Indikasi Nama Server (SNI) untuk situs web dan API Anda
+ Sambungan dari lingkungan lokal ke akun AWS yang disiapkan menggunakan AWS Direct Connect atau AWS VPN Site-to-Site
+ [Zona host pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) dengan domain yang sesuai (misalnya, domain.com) yang diselesaikan dari jaringan lokal dan meneruskan kueri DNS ke Route 53
+ Subnet pribadi yang dapat dirutekan yang dapat dijangkau dari jaringan lokal

**Batasan**

Untuk informasi selengkapnya tentang kuota (sebelumnya disebut sebagai limit) untuk penyeimbang beban, aturan, dan sumber daya lainnya, lihat [Kuota untuk Application Load Balancers Anda dalam dokumentasi Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) Balancing.

## Arsitektur
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-architecture"></a>

**Tumpukan teknologi**
+ Amazon API Gateway
+ Amazon Route 53
+ Penyeimbang Beban Aplikasi
+ AWS Certificate Manager
+ AWS PrivateLink

**Arsitektur target**

Diagram berikut menunjukkan bagaimana Application Load Balancer digunakan dalam VPC yang mengarahkan lalu lintas web ke grup target situs web atau grup target API Gateway berdasarkan aturan pendengar Application Load Balancer. Grup target API Gateway adalah daftar alamat IP untuk titik akhir VPC di API Gateway. API Gateway dikonfigurasi untuk membuat API pribadi dengan kebijakan sumber dayanya. Kebijakan ini menyangkal semua panggilan yang bukan berasal dari titik akhir VPC tertentu. Nama domain khusus di gateway API diperbarui untuk menggunakan api.domain.com untuk API dan tahapannya. Aturan Application Load Balancer ditambahkan ke lalu lintas rute berdasarkan nama host.

![Arsitektur yang menggunakan aturan pendengar Application Load Balancer untuk mengarahkan lalu lintas web.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/83145062-4535-4ad0-8947-4ea8950cd174/images/12715186-26ea-4123-b9ef-e3105a934ff3.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna dari jaringan lokal mencoba mengakses situs web internal. Permintaan dikirim ke ui.domain.com dan api.domain.com. Kemudian, permintaan diselesaikan ke internal Application Load Balancer dari subnet privat routable. SSL dihentikan di Application Load Balancer untuk ui.domain.com dan api.domain.com.

1. Aturan listener, yang dikonfigurasi pada Application Load Balancer, periksa header host.

   a. Jika header host adalah api.domain.com, permintaan diteruskan ke grup target API Gateway. Application Load Balancer memulai koneksi baru ke API Gateway melalui port 443.

   b. Jika header host adalah ui.domain.com, permintaan diteruskan ke grup target situs web.

1. Saat permintaan mencapai API Gateway, pemetaan domain kustom yang dikonfigurasi di API Gateway menentukan nama host dan API mana yang akan dijalankan.

**Otomatisasi dan skala**

Langkah-langkah dalam pola ini dapat diotomatisasi dengan menggunakan AWS CloudFormation atau AWS Cloud Development Kit (AWS CDK). Untuk mengonfigurasi grup target panggilan API Gateway, Anda harus menggunakan sumber daya khusus untuk mengambil alamat IP titik akhir VPC. API memanggil [describe-vpc-endpoints](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-vpc-endpoints.html)dan [describe-network-interfaces](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-network-interfaces.html)mengembalikan alamat IP dan grup keamanan, yang dapat digunakan untuk membuat grup target API dari alamat IP.

## Alat
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-tools"></a>
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) membantu Anda membuat, menyimpan, dan memperbarui sertifikat dan kunci SSL/TLS X.509 publik dan pribadi yang melindungi situs web dan aplikasi AWS Anda.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) membantu Anda membuat koneksi pribadi searah dari layanan Anda VPCs ke layanan di luar VPC.

## Epik
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-epics"></a>

### Buat sertifikat SNI
<a name="create-an-sni-certificate"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sertifikat SNI dan impor sertifikat ke ACM. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator jaringan | 

### Menerapkan titik akhir VPC di subnet pribadi yang tidak dapat dirutekan
<a name="deploy-a-vpc-endpoint-in-a-non-routable-private-subnet"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat titik akhir VPC antarmuka di API Gateway. | Untuk membuat titik akhir VPC antarmuka, ikuti petunjuk dari Akses [layanan AWS menggunakan titik akhir VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) dalam dokumentasi Amazon Virtual Private Cloud (Amazon VPC). | Administrator awan | 

### Konfigurasikan Application Load Balancer
<a name="configure-the-application-load-balancer"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup target untuk aplikasi Anda. | [Buat grup target](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html) untuk sumber daya UI aplikasi Anda. | Administrator awan | 
| Buat grup target untuk titik akhir API Gateway. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator awan | 
| Buat Application Load Balancer. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator awan | 
| Buat aturan pendengar. | Buat [aturan listener](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules) untuk melakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator awan | 

### Konfigurasikan Route 53
<a name="configure-route-53"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat zona host pribadi. | [Buat zona host pribadi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) untuk domain.com. | Administrator awan | 
| Buat catatan domain. | [Buat catatan CNAME](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html) untuk hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator awan | 

### Buat titik akhir API pribadi di API Gateway
<a name="create-a-private-api-endpoint-in-api-gateway"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan konfigurasikan titik akhir API pribadi. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Pengembang aplikasi, Administrator cloud | 
| Buat nama domain khusus. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrator awan | 

## Sumber daya terkait
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-resources"></a>
+ [Amazon API Gateway](https://aws.amazon.com/api-gateway/)
+ [Amazon Route 53](https://aws.amazon.com/route53/)
+ [Penyeimbang Beban Aplikasi](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/)
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)
+ [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)