

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

# Hasilkan alamat IP keluar statis menggunakan fungsi Lambda, Amazon VPC, dan arsitektur tanpa server
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture"></a>

*Thomas Scott, Amazon Web Services*

## Ringkasan
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-summary"></a>

Pola ini menjelaskan cara membuat alamat IP keluar statis di Amazon Web Services (AWS) Cloud dengan menggunakan arsitektur tanpa server. Organisasi Anda dapat memperoleh manfaat dari pendekatan ini jika ingin mengirim file ke entitas bisnis terpisah dengan menggunakan Secure File Transfer Protocol (SFTP). Ini berarti bahwa entitas bisnis harus memiliki akses ke alamat IP yang memungkinkan file melalui firewall-nya. 

Pendekatan pola membantu Anda membuat fungsi AWS Lambda yang menggunakan [alamat IP Elastis sebagai alamat IP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) keluar. Dengan mengikuti langkah-langkah dalam pola ini, Anda dapat membuat fungsi Lambda dan virtual private cloud (VPC) yang merutekan lalu lintas keluar melalui gateway internet dengan alamat IP statis. Untuk menggunakan alamat IP statis, Anda melampirkan fungsi Lambda ke VPC dan subnetnya. 

## Prasyarat dan batasan
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif. 
+ Izin AWS Identity and Access Management (IAM) untuk membuat dan menerapkan fungsi Lambda, serta membuat VPC dan subnetnya. Untuk informasi selengkapnya tentang ini, lihat [Peran eksekusi dan izin pengguna dalam dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions) AWS Lambda.
+ Jika Anda berencana menggunakan infrastruktur sebagai kode (IAc) untuk menerapkan pendekatan pola ini, Anda memerlukan lingkungan pengembangan terintegrasi (IDE) seperti AWS Cloud9. Untuk informasi selengkapnya tentang ini, lihat [Apa itu AWS Cloud9?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) dalam dokumentasi AWS Cloud9.

## Arsitektur
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-architecture"></a>

Diagram berikut menunjukkan arsitektur tanpa server untuk pola ini.

![](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/eb1d0b05-df33-45ae-b27e-36090055b300/images/c15cc6da-ce4e-4ea0-9feb-de1c845d3ce8.png)


Diagram menunjukkan alur kerja berikut:

1. Lalu lintas keluar `NAT gateway 1` masuk`Public subnet 1`.

1. Lalu lintas keluar `NAT gateway 2` masuk`Public subnet 2`.

1. Fungsi Lambda dapat berjalan di `Private subnet 1` atau. `Private subnet 2`

1. `Private subnet 1`dan `Private subnet 2` rute lalu lintas ke gateway NAT di subnet publik.

1. Gateway NAT mengirim lalu lintas keluar ke gateway internet dari subnet publik.

1. Data keluar ditransfer dari gateway internet ke server eksternal.



**Tumpukan teknologi**
+ Lambda
+ Amazon Virtual Private Cloud (Amazon VPC)

 

**Otomatisasi dan skala**

Anda dapat memastikan ketersediaan tinggi (HA) dengan menggunakan dua subnet publik dan dua subnet pribadi di Availability Zone yang berbeda. Bahkan jika satu Availability Zone menjadi tidak tersedia, solusi pola terus bekerja.

## Alat
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-tools"></a>
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/) — Amazon Virtual Private Cloud (Amazon VPC) menyediakan bagian AWS Cloud yang terisolasi secara logis tempat Anda dapat meluncurkan sumber daya AWS di jaringan virtual yang telah Anda tentukan. Jaringan virtual ini sangat mirip dengan jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaatnya yaitu menggunakan infrastruktur AWS yang dapat diskalakan.

## Epik
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-epics"></a>

### Buat VPC baru
<a name="create-a-new-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat VPC baru. | Masuk ke AWS Management Console, buka konsol Amazon VPC, lalu buat VPC bernama `Lambda VPC` yang memiliki `10.0.0.0/25`**** rentang CIDR. IPv4 <br />Untuk informasi selengkapnya tentang membuat VPC, lihat [Memulai Amazon VPC di dokumentasi Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html#getting-started-create-vpc).  | Administrator AWS | 

### Buat dua subnet publik
<a name="create-two-public-subnets"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat subnet publik pertama. | 1. **Pada konsol Amazon VPC, pilih **Subnet dan kemudian pilih Create Subnet**.** <br />2. Untuk **tag Nama**, masukkan`public-one`.<br />3. Untuk **VPC, pilih**. `Lambda VPC`<br />4. Pilih Availability Zone dan rekam. <br />5. Untuk **blok IPv4 CIDR**, masukkan `10.0.0.0/28`**** dan kemudian pilih **Buat subnet**. | Administrator AWS | 
| Buat subnet publik kedua. | 1. **Pada konsol Amazon VPC, pilih **Subnet dan kemudian pilih Create Subnet**.** <br />2. Untuk **tag Nama**, masukkan`public-two`.<br />3. Untuk **VPC, pilih**. `Lambda VPC`<br />4. Pilih Availability Zone dan rekam. : Anda tidak dapat menggunakan Availability Zone yang berisi `public-one` subnet. <br />5. Untuk **blok IPv4 CIDR**, masukkan `10.0.0.16/28`**** dan kemudian pilih **Buat subnet**. | Administrator AWS | 

### Buat dua subnet pribadi
<a name="create-two-private-subnets"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat subnet pribadi pertama. | 1. **Pada konsol Amazon VPC, pilih **Subnet dan kemudian pilih Create Subnet**.** <br />2. Untuk **tag Nama**, masukkan`private-one`.<br />3. Untuk **VPC, pilih**. `Lambda VPC`<br />4. Pilih Availability Zone yang berisi `public-one` subnet yang Anda buat sebelumnya. <br />5. Untuk **blok IPv4 CIDR**, masukkan `10.0.0.32/28`**** dan kemudian pilih **Buat subnet**. | Administrator AWS | 
| Buat subnet pribadi kedua. | 1. **Pada konsol Amazon VPC, pilih **Subnet dan kemudian pilih Create Subnet**.** <br />2. Untuk **tag Nama**, masukkan`private-two`.<br />3. Untuk **VPC, pilih**. `Lambda VPC`<br />4. Pilih Availability Zone yang sama yang berisi `public-two` subnet yang Anda buat sebelumnya. <br />5. Untuk **blok IPv4 CIDR**, masukkan `10.0.0.64/28`**** dan kemudian pilih **Buat subnet**. | Administrator AWS | 

### Buat dua alamat IP Elastis untuk gateway NAT Anda
<a name="create-two-elastic-ip-addresses-for-your-nat-gateways"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Buat alamat IP elastis pertama. | 1. Di konsol VPC Amazon, pilih **Elastic IPs** dan kemudian pilih **Alokasikan** alamat baru. ****<br />2. Pilih **Alokasikan** dan catat **ID Alokasi** untuk alamat IP Elastis yang baru dibuat. ****Alamat IP Elastis ini digunakan untuk gateway NAT pertama Anda.  | Administrator AWS | 
| Buat alamat IP elastis kedua. | 1. Di konsol VPC Amazon, pilih **Elastic IPs** dan kemudian pilih **Alokasikan** alamat baru. ****<br />2. Pilih **Alokasikan** dan catat **ID Alokasi** untuk alamat IP Elastis kedua ini.Alamat IP Elastis ini digunakan untuk gateway NAT kedua Anda. | Administrator AWS | 

### Membuat gateway internet baru
<a name="create-an-internet-gateway"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sebuah gateway internet. | 1. **Di konsol VPC Amazon, pilih **Internet Gateways** dan kemudian pilih Buat gateway internet.**<br />2. Masukkan `Lambda internet gateway` sebagai nama dan kemudian pilih **Buat gateway internet**. Pastikan Anda merekam ID gateway internet.  | Administrator AWS | 
| Lampirkan gateway internet ke VPC. | Pilih gateway internet yang baru Anda buat, dan lalu pilih **Tindakan, Lampirkan ke VPC**. | Administrator AWS | 

### Buat dua gateway NAT
<a name="create-two-nat-gateways"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat gateway NAT pertama. | 1. **Di konsol VPC Amazon, pilih **NAT Gateways lalu pilih Create NAT Gateway**.**<br />2. Masukkan `nat-one`**** sebagai nama gateway NAT. ****<br />3. Pilih `public-one`**** sebagai subnet untuk membuat gateway NAT di. ****<br />4. Untuk **jenis Konektivitas**, pilih **Publik**.<br />5. Untuk **ID alokasi IP Elastis**, pilih alamat IP Elastis pertama yang Anda buat sebelumnya dan kaitkan dengan gateway NAT.<br />6. Pilih **Buat gateway NAT**. | Administrator AWS | 
| Buat gateway NAT kedua. | 1. **Di konsol VPC Amazon, pilih **NAT Gateways lalu pilih Create NAT Gateway**.**<br />2. Masukkan `nat-two`**** sebagai nama gateway NAT. ****<br />3. Pilih `public-two`**** sebagai subnet untuk membuat gateway NAT di.<br />4. Untuk **jenis Konektivitas**, pilih **Publik**.<br />5. Untuk **ID alokasi IP Elastis**, pilih alamat IP Elastis kedua yang Anda buat sebelumnya dan kaitkan dengan gateway NAT.<br />6. Pilih **Buat gateway NAT**. | Administrator AWS | 

### Buat tabel rute untuk subnet publik dan pribadi Anda
<a name="create-route-tables-for-your-public-and-private-subnets"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel rute untuk subnet publik-satu. | 1. Di konsol Amazon VPC, pilih **Tabel Rute dan kemudian pilih Buat tabel** **rute**.<br />2. Masukkan `public-one-subnet`**** sebagai nama tabel rute dan kemudian pilih **Buat tabel rute**.<br />3. Pilih tabel `public-one-subnet` rute, pilih **Edit rute**, lalu pilih **Tambahkan rute**.<br />4. Tentukan `0.0.0.0`**** di kotak **Tujuan** dan kemudian pilih ID gateway internet di **Target** daftar.<br />5. **Pada tab **Asosiasi subnet**, pilih **Edit asosiasi subnet**, pilih `public-one` subnet**** dengan rentang `10.0.0.0/28`**** CIDR, lalu pilih Simpan asosiasi.**<br />6. Pilih **Simpan Perubahan**. | Administrator AWS | 
| Buat tabel rute untuk subnet public-two. | 1. Di konsol Amazon VPC, pilih **Tabel Rute dan kemudian pilih Buat tabel** **rute**.<br />2. Masukkan `public-two-subnet`**** sebagai nama tabel rute dan kemudian pilih **Buat tabel rute**.<br />3. Pilih tabel `public-two-subnet`**** rute, pilih **Edit rute**, lalu pilih **Tambahkan rute**.<br />4. Tentukan `0.0.0.0`**** di kotak **Tujuan** dan kemudian pilih ID gateway internet di **Target** daftar.<br />5. **Pada tab **Asosiasi subnet**, pilih **Edit asosiasi subnet**, pilih `public-two`**** subnet dengan rentang `10.0.0.16/28`**** CIDR, lalu pilih Simpan asosiasi.**<br />6. Pilih **Simpan Perubahan**. | Administrator AWS | 
| Buat tabel rute untuk subnet private-one. | 1. Di konsol Amazon VPC, pilih **Tabel Rute dan kemudian pilih Buat tabel** **rute**.<br />2. Masukkan `private-one-subnet`**** sebagai nama tabel rute dan kemudian pilih **Buat tabel rute**.<br />3. Pilih tabel `private-one-subnet`**** rute, pilih **Edit rute**, lalu pilih **Tambahkan rute**.<br />4. Tentukan `0.0.0.0`**** di kotak **Tujuan** dan kemudian pilih gateway NAT di `public-one` subnet di daftar **Target**.<br />5. **Pada tab **Asosiasi subnet**, pilih **Edit asosiasi subnet**, pilih `private-one` subnet dengan rentang `10.0.0.32/28`**** CIDR, lalu pilih Simpan asosiasi.**<br />6. Pilih **Simpan Perubahan**. | Administrator AWS | 
| Buat tabel rute untuk subnet private-two. | 1. Di konsol Amazon VPC, pilih **Tabel Rute dan kemudian pilih Buat tabel** **rute**.<br />2. Masukkan `private-two-subnet`**** sebagai nama tabel rute dan kemudian pilih **Buat tabel rute**.<br />3. Pilih tabel `private-two-subnet`**** rute, pilih **Edit rute**, lalu pilih **Tambahkan rute**.<br />4. Tentukan `0.0.0.0`**** di kotak **Tujuan** dan kemudian pilih gateway NAT di `public-two` subnet di daftar **Target**.<br />5. **Pada tab **Asosiasi subnet**, pilih **Edit asosiasi subnet**, pilih `private-two`**** subnet dengan rentang `10.0.0.64/28` CIDR, lalu pilih Simpan asosiasi.**<br />6. Pilih **Simpan Perubahan**. | Administrator AWS | 

### Buat fungsi Lambda, tambahkan ke VPC, dan uji solusinya
<a name="create-the-lambda-function-add-it-to-the-vpc-and-test-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi Lambda baru. | 1. Buka konsol AWS Lambda dan pilih **Create** function. ****<br />2. Di bawah **Informasi dasar**, masukkan `Lambda test` di bawah **Nama fungsi** dan kemudian pilih bahasa pilihan Anda di bawah **Runtime**. ****<br />3. Pilih **Buat fungsi**. | Administrator AWS | 
| Tambahkan fungsi Lambda ke VPC Anda. | 1. Di konsol AWS Lambda, pilih **Fungsi** lalu pilih fungsi yang Anda buat sebelumnya. <br />2. Pilih **Konfigurasi**, lalu pilih **VPC**.<br />3. Pilih **Edit** dan kemudian pilih `Lambda VPC`**** dan kedua subnet pribadi.<br />4. Pilih **grup keamanan default** untuk tujuan pengujian, lalu pilih **Simpan**. | Administrator AWS | 
| Tulis kode untuk memanggil layanan eksternal. | 1. Dalam bahasa pemrograman pilihan Anda, tulis kode untuk memanggil layanan eksternal yang mengembalikan alamat IP Anda.<br />2. Verifikasi bahwa alamat IP yang dikembalikan cocok dengan salah satu alamat IP Elastis Anda. | Administrator AWS | 

## Sumber daya terkait
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-resources"></a>
+ [Mengkonfigurasi fungsi Lambda untuk mengakses sumber daya di VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)