Dalam tutorial ini, kita akan membahas penyiapan instans Amazon RDS di dalam subnet VPC pribadi dan menghubungkannya menggunakan terowongan SSH.
Terowongan SSH terbalik membuat koneksi terenkripsi keluar dari dalam VPC Anda ke server Chartio. Ini memungkinkan Anda untuk menghubungkan Chartio ke database di subnet VPC pribadi Anda tanpa mengubah tabel rute atau grup keamanannya.
Ikhtisar
Diagram berikut menggambarkan seperti apa arsitektur akhir kita nantinya. Kami akan membuat VPC dengan 2 subnet di wilayah us-west-1; 1 subnet publik di zona ketersediaan us-barat-1a dan 1 subnet pribadi di zona ketersediaan us-barat-1b. VPC akan memiliki gateway Internet yang terpasang, namun tabel rute utama hanya akan berisi satu rute lokal yang memungkinkan komunikasi di dalam VPC. Subnet publik akan memiliki tabel rute kustom yang mencakup rute lokal serta rute yang mengarahkan semua lalu lintas lainnya melalui gateway Internet. Instance Postgres RDS akan disediakan di subnet pribadi dengan grup keamanan terlampir yang hanya mengizinkan lalu lintas masuk pada port 5432 dari subnet publik. Instans EC2 akan disediakan di subnet publik dengan grup keamanan terlampir yang hanya mengizinkan lalu lintas SSH masuk dari IP lokal Anda dan semua lalu lintas keluar. Terakhir, kita akan SSH ke dalam instance EC2, instal klien Postgres psql
, buat tabel pada instance RDS, dan instal serta siapkan tunnel SSH.
Buat VPC
Navigasikan ke Dasbor VPC di AWS Management Console dan buat VPC baru.
Buat dan Lampirkan Gateway Internet
Pada tab Gateway Internet di Dasbor VPC, buat gateway Internet baru.
Lampirkan gateway ke VPC yang baru dibuat.
Buat Tabel Rute Khusus
Pada tab Tabel Rute di Dasbor VPC, buat tabel rute baru.
Tambahkan rute ke tabel rute untuk gateway Internet.
Buat Subnet Publik dan Pribadi
Buat subnet di zona ketersediaan us-west-1a.
Ubah tabel rute untuk subnet yang dibuat sebelumnya dari tabel rute utama ke tabel rute khusus.
Buat subnet di zona ketersediaan us-west-1b.
Buat Grup Keamanan
Buat grup keamanan untuk instans EC2 yang akan disediakan di subnet us-west-1a publik.
Otorisasi lalu lintas SSH masuk dari alamat IP lokal Anda. Aturan keluar default seharusnya baik-baik saja.
Buat grup keamanan untuk instance Postgres RDS yang akan disediakan di subnet pribadi us-west-1b.
Otorisasi lalu lintas masuk dari subnet publik melalui port 5432.
Hapus semua aturan keluar untuk grup keamanan RDS.
Sediakan Instans EC2
Sediakan instans EC2 di subnet us-west-1a publik. Pastikan IP publik ditetapkan.
Tetapkan grup keamanan yang dibuat sebelumnya.
Sediakan Instans RDS Postgres
Sediakan instans Postgres RDS di subnet pribadi us-west-1b. Pastikan IP publik TIDAK ditetapkan.
Instal dan siapkan terowongan SSH
SSH ke dalam instans EC2 dan jalankan perintah berikut.
# Substitute 54.153.81.83 with your instance's public IP.
ssh [email protected]
# Create a table so Chartio has something to reflect.
# Substitute chartio.cacziwncd30i.us-west-1.rds.amazonaws.com with your instance's endpoint.
sudo apt-get update
sudo apt-get install postgresql-client
psql -h chartio.cacziwncd30i.us-west-1.rds.amazonaws.com -p 5432 -d chartio -U chartio -c "CREATE TABLE foo(id int);"
Instal autossh (atau pengelola terowongan SSH pilihan Anda) dan atur koneksi terowongan menggunakan petunjuk.
Periksa editor skema Chartio untuk memastikan skema instans RDS telah dicerminkan. Jika belum, coba klik tombol “Refresh Schema”.