Caching adalah kegiatan menyimpan data subset secara berlapis untuk menurunkan latensi. Jadi misalkan hendak mengambil data dari Amerika ke Indonesia, maka data subset tersebut akan tersimpan secara sementara di penyimpanan terdekat dengan Indonesia. Akibatnya saat data tersebut dibutuhkan maka akan lebih cepat dalam mencarinya. Tidak setiap data dilakukan teknik cache. Faktor yang menjadi pertimbangan sebuah data dilakukan caching adalah query yang kompleks, waktu proses yang lama, statis namun sering diakses (ex. profil media sosial), informasi valid untuk jangka waktu yang panjang (ex. laporang keuangan).
Keuntungan dari caching adalah efisiensi untuk data yang sering diakses. Misalnya akan diakses data info profile perusahaan sebanyak 10x. Dengan caching cukup dengan mengambil data 1x dan dapat diulang tanpa menggunakan data sebanyak 9x. Kelemahannya adalah jika terjadi update dari data tersebut. Sehingga cache ini perlu dihapus secara berkala. Teknologi HTTP atau hypertext transfer protocol berperan penting dalam melakukan caching sebuah website. Teknologi lebih maju diberikan pada HTTPS atau hypertext transfer protocol secure. Caching dilakukan pada client-side (HTTP header directives) dan pada server-side (reverse proxy cache).
Di lingkungan AWS Caching dilakukan menggunakan layanan Aamzon CloudFront. Cara kerjanya adalah saat user hendak mengakses konten tersebut maka user akan diarahkan ke edge location dengan latensi terendah. Jika konten telah berada di edge location maka CloudFront akan segera mengirimkannya. Jika CloudFront tidak mendapatkan konten tersebut di edge location maka CloudFront akan langsung mengambilnya dari S3 bucket atau HTTP server. Sedikitnya ada 5 konten yang dapat di cache oleh CloudFront, yaitu:
- Static, gambar-js-html
- Video, RTMP dan HTML streaming
- Dynamic, konten kustomisasi yang tidak bisa di cache
- User input, HTTP action serta PUT/POST
- Secure, keamanan dengan SSL (HTTPS)
Poin-poin dalam konfigurasi CloudFront adalah:
- Menentukan origin server, tempat CloudFront mendapatkan file
- Membuat distribution, rute dari pilihan pelanggan pada web atau app
- Memberikan nama domain untuk CloudFront distribution
- CloudFront akan mengirimkan konfigurasi distribution ke semua edge location (ingat bukan file cache)
- Membuat konten memiliki expire, ada beberapa teknik
- Time to Live (TTL)
- Periode waktu yang tetap dan langsung dikonfigurasi sesuai kebutuhan.
- Get request ke origin dari CloudFron menggunakan If-Modified-Since header
- Mengubah object name
- Misalnya dari gambar1.jpg menjadi gambar2.jpg
- Nama baru akan memaksa refresh
- Invalidate object
- Menghapus object dari cache sebelum expire
- Ini sangat tidak direkomendasikan
Pada web tier atau web bertingkat fungsi dari session management atau urutan transaksi HTTP dikelola menggunakan sticky session atau cache terdistribusi. Nah, untuk memvalidasi setiap sesi dapat digunakan metode client-side cookies atau parameter yang diatur di load balancer.
Caching database dilakukan dengan pertimbangan waktu respons ke pelanggan, query kompleks berdata besar, dan efisiensi biaya database. Mengatasi lonjakan pengguna database sering ditemukan pada aplikasi gaming. Pengguna yang begitu masif memerlukan respons yang cepat pada milidetik. DynamoDB dapat digunakan untuk menyimpan session yang memerlukan respons cepat pada tingkat milidetik. Pada tingkat mikrodetik alternatif dari DynamoDB adalah DAX atau DynamoDB Accelerator. Sayangnya DynamoDB Accelerator hanya mendukung DynamoDB, sebagai solusi jika menggunakan data selain DynamoDB maka dapat digunakan Amazon ElastiCache. Di ElastiCache ini ada 2 jenis engine yang digunakan untuk in-memory cache, yaitu Memcached dan Redis. Untuk kebutuhan yang sederhana dapat digunakan engine Memcached sedangkan untuk kebutuhan yang lebih kaya fitur maka Redis adalah solusinya.
Ada 3 jenis strategi yang digunakan untuk melakukan caching, yaitu:
- Write Trough
- Strategi ini melakukan penambahan atau pembaruan data setiap kali data ditulis ke database. Keunggulan dari metode ini adalah data cache tidak akan pernah usang, sedangkan kelemahannya adalah biaya write, data yang mungkin hilang, serta data yang tidak digunakan hingga cache churn atau frekuensi perubahan yang tinggi akan berimbas pada biaya.
- Lazy Loading
- Hanya data yang diminta yang akan disimpan di cache. Kelemahan dari metode ini adalah ketika cache tidak ditemukan maka membutuhkan waktu ekstra yang berpotensi kehilangan pelanggan.
- Time to Live (TTL)
- Lazy loading memungkinkan data menjadi usang sedangkan write trough menyimpan data yang tidak diperlukan. Dengan menggunakan TTL maka keuntungan dari strategi write trough dan lazy loading bisa didapatkan tanpa kekacauan antara cache dan data.
Sumber: anonim
CDN atau content distribution network merupakan alat untuk caching, kalau di lingkungan AWS dikenal sebagai layanan Amazon CloudFront. Selain dilakukan di tingkat edge location, caching dapat dilakukan di tingkat web server. Nah, di tingkat web server ini caching dapat dilakukan dengan load balancer melalui session management.
Di dalam jaringan kita mengenal VPN atau Virtual Private Network. Dalam hal jaringan di cloud maka kita akan mengenal VPC atau Virtual Private Cloud. Tujuan dari adanya VPC adalah membatasi hubungan yang tidak diinginkan, biasanya karena tingkat keamanan. AWS Direct Connect merupakan layanan yang disediakan untuk jaringan cloud.
Sumber: https://pixabay.com/id/vectors/media-sosial-koneksi-jaringan-3846597/
Subnet
Sebuah bagian dari VPC yang mengelompokkan sumber daya berdasarkan keamanan atau kebutuhan operasional. Subnet dapat menjadi private atau public. VPC Subnet dapat berkomunikasi satu sama lain. Subnet digunakan untuk mengontrol akses ke gateway.
Network Access Control List
Komponen dari VPC yang berfungsi untuk memeriksa perijinan dan traffic. Prinsip kerja dari ACL secara default akan mengijinkan data keluar atau masuk, sedangkan secara custom ACL hanya akan mengijinkan data masuk yang ada di daftarnya atau secara eksplisit.
Security Group
Lebih detail lagi bahwa setiap EC2 Instance akan dilengkapi dengan security group. Prinsip kerja dari security group hampir mirip dengan Network Access Control List, namun cakupan security group lebih sempit sehingga keamanannya akan lebih tinggi. Secara default security group akan menolak semua traffic masuk dan mengijinkan semua lalu lintas yang keluar dari Instance.
Network ACL vs Security Group
Keduanya sama-sama memeriksa paket yang dikirim antar-instance. Network ACL bersifat tidak mengingat apa yang melewatinya sehingga jika paket yang sama melewati network ACL maka paket tersebut akan dicek ijinnya. Hal berbeda dengan Security Group yang tidak akan memeriksa paket yang pernah diperiksa dan mendapat ijin. Dapat dikatakan bahwa Network ACL bersifat stateless, sedangkan Security Group bersifat stateful.
Domain Name System
Sebuah sistem yang akan mengubah alamat berupa angka menjadi kata sehingga lebih mudah untuk diingat. Di AWS terdapat layanan dengan nama Amazon Route 53. Jika kita mengirimkan alamat browser maka Amazon Route 53 akan mencari alamat IP dan mengarahkan kita ke sebuah halaman. Selain alamat yang berada di dalam lingkungan AWS, Amazon Route 53 juga dapat mendeteksi alamat yang berada di luar lingkungan AWS.
Nama domain www.amazon.com memiliki 3 bagian, yaitu subdomain (www), domain (amazon), dan top-level domain (com). Kalau IP address ditangani oleh IANA (internet assigned numbers authority) maka masalah domain name system ditangani oleh ICANN (internet corporation for assigned names and numbers). Saat subdomain, domain, dan top-level domain digabung misalnya menjadi www.amazon.com maka itu yang disebut Fully Qualified Domain Name (FQDN). Indonesia sendiri memiliki pengelola domain, yaitu PANDI atau pengelola nama domain internet indonesia.
Cara kerja dari DNS adalah saat pengguna membuka web browser kemudian di ketik pada kolom search yaitu www.amazon.com maka pada awalnya perangkat akan memeriksa cache yang ada di browser jika tidak ada maka akan diperiksa di dalam sistem operasi pada bagian DNS cache dan jika tidak ada juga maka akan dicari di hosts file. Ketiga area tersebut yaitu cache browser, DNS cache, dan hosts file merupakan bagian dari perangkat. Jika tidak ada maka akan dicari pada recursive DNS server (biasanya dikelola oleh internet service provider). Nah, jika DNS server juga tidak memuat maka ada 3 kemungkinan akan dicari, yaitu root DNS server (analogi indeks atau katalog di perpustakaan), top-level domain server (analogi rak buku), dan authoritative name server (analogi kamus di rak buku).
DNS record merupakan bagian dari authoritative name server yang memberikan informasi tentang domain, termasuk IP address yang terkait dengan domain dan menangani permintaan domain tersebut. DNS record sendiri ada 5 tipe, yaitu A record (IPv4), AAAA record (IPv6), CNAME record (alias record), MX record (email), dan NS record (server). Perlu diketahui bahwa nameserver (NS) record tidak bisa merujuk ke alias record. Tools DNS yang cukup familiar adalah dig. Coba lakukan dibawah untuk mendapatkan informasi:
- Jika dari windows pastikan sudah ada wsl untuk ubuntu
- Buka terminal
- Instal tools dig
- sudo apt-get install dnsutils
- Contoh cari DNS
- Contoh mengetahui server:
Dengan tools dig dimungkinkan mengetahui apakah sebuah aplikasi menggunakan server atau layanan cloud apa.
ref:
https://aws.amazon.com/