AWS
Modul 0 — Introduction
Introduction to AWS
Apa itu Cloud Computing
Cloud computing atau "komputasi awan" dalam bahasa Indonesia adalah model penyediaan sumber daya komputasi
yang disesuaikan dengan permintaan/kebutuhan (on-demand) serta dapat disiapkan atau dihentikan secara cepat
dan mudah. Sumber daya komputasi di sini dapat berupa jaringan, penyimpanan, database, aplikasi, ataupun
layanan lain. Dengan memanfaatkan komputasi awan, Anda tidak perlu mengeluarkan investasi besar untuk
pengadaan hardware di awal pengembangan sistem. Anda juga tak perlu menghabiskan banyak waktu untuk
mengatur dan mengelola hardware tersebut.
Cloud computing bersifat fleksibel. Anda dapat mengatur seberapa banyak sumber daya komputasi yang dibutuhkan
untuk menjalankan sistem sesuai dengan kebutuhan saat ini. Hal ini tidak hanya dapat menghindarkan Anda dari
menggunakan terlalu banyak resource sehingga dapat memperbesar anggaran. Anda pun tak perlu khawatir
kekurangan resource yang nantinya akan berdampak pada performa sistem. Di samping itu, Anda juga hanya akan
dikenakan biaya sesuai dengan banyaknya resource yang Anda gunakan (pay-as-you-go).
Dalam publikasinya, NIST (National Institute of Standards and Technology) memberikan 5 karakter esensial dari
cloud computing:
On-demand self service. Pengguna dapat menyiapkan sumber daya IT seperti server atau media
penyimpanan secara mandiri tanpa perlu interaksi antar-manusia secara langsung dengan layanan
pelanggan.
Broad network access. Tersedia lewat jaringan yang saling terkoneksi dan dapat diakses melalui beragam
jenis perangkat, misalnya smartphone, laptop, PC, dll.
Resource pooling. Sumber daya komputasi dari penyedia cloud harus memenuhi banyak pelanggan dan
bersifat dinamis tergantung kebutuhan pelanggannya.
Rapid elasticity. Sumber daya bersifat elastis yang dapat ditambah atau dilepaskan, bahkan secara otomatis,
untuk menyesuaikan dengan kebutuhan saat ini.
Measured service. Layanan cloud memiliki kemampuan pengukuran penggunaan sumber daya bergantung
pada tipe layanannya. Penggunaan ini dapat dimonitor dan dikontrol untuk memberikan transparansi bagi
penyedia layanan dan pelanggan.
Model Layanan Cloud Computing
Dalam menyediakan layanan, penyedia cloud computing dibagi menjadi 3 model. Setiap model menyediakan level
kontrol, fleksibilitas, dan manajemen yang berbeda. Dengan mengetahui model-model layanannya, Anda dapat
menentukan layanan mana yang sesuai dengan kebutuhan sistem Anda.
1. Software as a Service (SaaS)SaaS sering juga disebut dengan aplikasi end-user karena sebagai pengguna Anda bisa
langsung menggunakan produknya tanpa harus mengetahui sistem operasi yang digunakan, perangkat lunak untuk
menjalankannya, ataupun infrastruktur server di belakangnya. Semua sudah dijalankan dan dikelola oleh penyedia
layanan.
Contoh dari SaaS yang mungkin sering Anda gunakan adalah email. Anda sebagai pengguna dapat langsung
mengirim atau menerima email melalui antarmuka yang telah diberikan oleh penyedia email. Anda tidak perlu
mengetahui di mana atau bagaimana infrastruktur server mereka dibangun atau juga perangkat lunak apa yang
mereka gunakan untuk memberikan layanan ini.
2. Platform as a Service (PaaS) Di dalam PaaS, penyedia layanan telah memberikan pilihan-pilihan lingkungan
(environment) untuk menjalankan beragam aplikasi. Pelanggan/organisasi hanya perlu fokus untuk mengembangkan
dan mengelola aplikasinya tanpa harus memikirkan infrastruktur yang digunakan. Hal ini tentunya lebih efisien. Tak
perlu lagi khawatir tentang pengadaan server, pemeliharaan (update/patch) sistem, dan hal-hal lainnya yang
berkaitan dengan infrastruktur.
3. Infrastructure as a Service (IaaS)Penyedia layanan IaaS memberikan kemudahan dan fleksibilitas bagi
pelanggan/organisasi untuk membangun dan mengelola infrastrukturnya sendiri. Biasanya penyedia layanan telah
memberikan beberapa pilihan sumber daya yang memungkinan Anda untuk mengakses jaringan, komputer (baik
virtual maupun dedicated), dan juga media penyimpanan. Dari pilihan-pilihan tersebut, Anda dapat merencakanan
dan membangun infrastruktur sesuai dengan kebutuhan saat ini.
Model Deployment Cloud Computing
Cloud. Dengan model ini, aplikasi ditaruh sepenuhnya dalam sistem cloud untuk memperoleh keuntungan
yang diberikan cloud computing.
Hybrid. Metode ini digunakan untuk menghubungkan infrastruktur dan aplikasi yang telah berjalan di sistem
cloud dengan sumber daya yang masih berada di luar sistem cloud. Misalnya datacenter atau server yang
dimiliki sendiri oleh pelanggan/organisasi.
On-premise. Dapat disebut juga private cloud. Pada banyak kasus model ini tak beda jauh dengan
infrastruktur yang belum menerapkan cloud sambil tetap menerapkan manajemen aplikasi dan teknologi
virtualisasi . Gunanya untuk memaksimalkan sumber daya yang ada.
Keuntungan Menggunakan Cloud Computing
Beberapa keuntungan yang Anda dapatkan ketika menggunakan cloud computing:
Tak perlu mengeluarkan biaya modal untuk membangun server/datacenter di awal. Biaya tersebut akan
tergantikan dengan biaya variabel. Artinya, cloud computing memungkinkan Anda untuk membayar sesuai
dengan apa yang Anda gunakan saja.
Beberapa penyedia cloud memberikan biaya variabel yang lebih rendah ketika sumber daya yang digunakan
semakin banyak.
Tak perlu mengira-ngira kapasitas komputasi yang akan diperlukan dan menghindari kelebihan atau
kekurangan sumber daya, karena dengan cloud computing Anda dapat menambah ataupun mengurangi
sumber daya dengan mudah sesuai kebutuhan.
Meningkatkan kecepatan dan kelincahan (agility) organisasi karena sumber daya yang dibutuhkan bisa
didapatkan dalam hitungan menit dengan langkah yang mudah.
Tak perlu lagi mengalokasikan biaya untuk menjalankan dan memelihara datacenter sendiri sehingga dapat
lebih fokus mengembangkan bisnis dan pengguna.
Lebih mudah untuk men-deploy aplikasi ke berbagai region di seluruh dunia dengan beberapa klik dalam
hitungan menit. Waktu respon yang berkurang ini memberikan pengalaman yang lebih baik bagi pengguna.
Referensi
[Link]
[Link]
[Link]
AWS Global Infrastructure
Sebagai penyedia layanan cloud publik berskala global, Amazon Web Service memiliki infrastruktur jaringan dan
datacenter yang tersebar di berbagai lokasi untuk memberikan pengalaman terbaik untuk pengguna. Infrastruktur di
AWS dibagi menjadi Regions, Availability Zones, Edge Locations, dan Regional Edge Caches.
Regions
Regions adalah kumpulan dari beberapa Availability Zones (AZ) yang terletak berdekatan di sebuah area geografis. Di
setiap region ini terdapat minimal 2 AZ yang saling terkoneksi dengan jaringan dengan latensi rendah. Kita dapat
memilih region di mana kita akan meletakkan aplikasi dan data sesuai dengan target pengguna. Ini akan mengurangi
waktu respon ketika pengguna menggunakan aplikasi kita. Atau kita juga dapat meletakkan aplikasi di beberapa
region sekaligus untuk meningkatkan availability dari aplikasi kita, jika sewaktu-waktu terdapat masalah di salah satu
region, misalnya bencana alam. Keuntungan lain dari penggunaan region adalah mempermudah kita memenuhi
syarat regulasi atau hukum terkait lokasi data yang disimpan.
Hingga saat ini ada 19 region AWS yang tersebar di seluruh dunia, yaitu North Virginia, Ohio, North California,
Oregon, Central Canada, Sao Paulo, Frankfurt, Ireland, London, Paris, Mumbai, Seoul, Singapore, Sydney, Tokyo,
Beijing, Ningxia, GovCloud US-East, dan GovCloud US-West.
Hal lain yang perlu diketahui adalah tidak semua region menawarkan layanan yang sama. Ada beberapa layanan
yang tersedia di region tertentu, namun tak tersedia di region lainnya. Daftar lengkapnya dapat dilihat di situs AWS
regional product services.
Availability Zones (AZs)
Seperti yang dijelaskan sebelumnya, di dalam satu region minimal terdapat 2 Availability Zones (AZ). Sederhananya,
AZ adalah data center secara fisik yang digunakan oleh AWS untuk menjalankan berbagai layanan yang digunakan
oleh pelanggan, seperti komputasi, penyimpanan, ataupun database. Setiap AZ berjalan secara independen dan
memiliki jaringan listrik serta internet yang berbeda dan saling terkoneksi dengan jaringan internet berkecepatan
tinggi. Jika salah satu AZ mengalami kerusakan, AZ lainnya tak akan terpengaruh
Saat ini terdapat 57 AZ yang tersebar di berbagai region yang telah disebutkan sebelumnya.
Edge Locations
Edge locations adalah datacenter yang dioperasikan oleh AWS dan tersebar di seluruh dunia. Jumlahnya lebih
banyak dari semua Availability Zones yang ada. Edge locations tidak dimaksudkan untuk meletakkan aplikasi atau
melakukan komputasi, melainkan digunakan oleh beberapa layanan AWS seperti CloudFront. CloudFront sendiri
adalah layanan Content Delivery Network (CDN) dari AWS. Tugas dari CloudFront adalah menyimpan data sementara
(cache) di Edge Locations sehingga mengurangi latensi ketika pengguna melakukan request dari lokasi yang jauh dari
lokasi di mana file berada.
Misalnya, pelanggan mempunyai sebuah file yang disimpan di region Europe-London. Kemudian seorang pengguna
dari Indonesia mengunduh file tersebut untuk pertama kali. Maka pengguna tersebut akan mengunduh file tersebut
langsung dari London. Kemudian file tersebut akan disimpan di Edge location tedekat dari lokasi pengguna secara
otomatis. Dalam contoh ini, Edge Location terdekat dari Indonesia adalah Singapura. Setelahnya jika pengguna
tersebut atau lainnya mengunduh file itu kembali, mereka akan mendapatkan file yang telah tersimpan di Edge
Location . Tak perlu lagi mengambilnya di server London. Alhasil, waktu yang dihabiskan, lebih cepat.
Regional Edge Caches
Selain Edge Locations, AWS juga memiliki Regional Edge Caches. Lokasi Regional Edge Caches terletak di antara
server asal data dan Edge Locations . Fungsinya, sebagai perantara sehingga ketika cache yang berada di Edge
Locations sudah dihapus, file tidak perlu diambil lagi dari server asal, melainkan dari Regional Edge Caches yang
lokasinya lebih dekat. Pada akhirnya ini juga mengurangi waktu yang dibutuhkan untuk mengunduh file tersebut.
Referensi
[Link]
[Link]
Modul 1 — Identity and Access Management
User Management
User Management
Anda dapat membuat user di IAM dan memberikan credential untuk masing-masing individu (seperti access key,
password dan multi-factor authentication), atau melayani permintaan hak akses sementara untuk user melakukan
akses ke layanan dan resource AWS. Anda dapat mengatur operasi mana yang dapat dilakukan oleh user. User IAM
dapat menjadi :
Users Roles
Privileged Administrators Dapat menggunakan AWS management console yang dapat mengatur resource AWS.
End User Dapat menggunakan konten di AWS
System Membutuhkan hak istimewa untuk mengakses data di dalam AWS secara terprogram.
Groups
IAM Group adalah kumpulan user IAM. Group memungkinkan Anda untuk menentukan izin beberapa user. Ini akan
mempermudah Anda mengelola izin bagi user tersebut. Misalnya, Anda dapat memiliki Group bernama Admin dan
memberi kelompok itu jenis izin yang biasanya diperlukan administrator. Setiap user dalam Group itu secara
otomatis memiliki izin yang ditetapkan untuk Group. Jika user baru bergabung dengan organisasi Anda dan
membutuhkan hak istimewa sebagai administrator, Anda dapat menetapkan izin yang sesuai dengan menambahkan
user ke Group itu. Demikian pula jika seseorang mengubah pekerjaan di organisasi Anda. Alih-alih mengedit izin user
itu, Anda dapat menghapusnya dari Group lama dan memindahkannya ke Group yang sesuai. Perhatikan bahwa
Group bukan "identitas" di IAM, melainkan cara untuk melampirkan policy ke banyak user sekaligus. Berikut ini
adalah beberapa karakteristik penting dari Group:
Group dapat berisi banyak user, dan user dapat dikelompokkan menjadi beberapa Group.
Group hanya dapat berisi user, bukan Group lain.
Tidak ada Group default yang secara otomatis menyertakan semua user di akun AWS. Jika Anda ingin
memiliki Group seperti itu, Anda perlu membuat dan menetapkannya untuk setiap user baru.
Jumlah Group yang dapat anda miliki adalah terbatas, dan batasan untuk berapa banyak Group yang dapat
digunakan oleh user. Nilai default jumlah grup adalah 10
AWS IAM Policy
Anda mengelola akses di AWS dengan membuat policy dan melampirkannya ke identitas IAM atau resource AWS.
Policy adalah objek dalam AWS yang dikaitkan dengan entitas atau resource dan menentukan izinnya. AWS
mengevaluasi policy ini ketika principal, seperti user, melakukan request. Permission dalam Policy ini menentukan
apakah request tersebut disetujui atau ditolak. Sebagian besar policy disimpan di AWS dalam bentuk dokumen JSON.
IAM Policy menentukan permission untuk suatu tindakan tanpa memandang metode Anda gunakan dalam
melakukan operasi. Misalnya, jika policy memungkinkan tindakan GetUser, maka user dengan policy tersebut bisa
mendapatkan informasi user dari AWS management Console, AWS CLI, atau API AWS. Saat Anda membuat user IAM,
Anda dapat mengatur user untuk mengizinkan console atau programmatic acces. User IAM dapat masuk ke console
menggunakan nama user dan kata sandi. Atau mereka dapat menggunakan access keys untuk bekerja dengan CLI
atau API.
AWS IAM Roles
IAM Role mirip dengan Users karena merupakan identitas AWS yang menentukan apa yang dapat dan tidak dapat
dilakukan oleh user di AWS. Namun, alih-alih secara unik terkait dengan satu user, role dimaksudkan untuk
diasumsikan oleh siapa saja yang membutuhkannya. Role tidak memiliki credential jangka panjang (kata sandi atau
access key) yang terkait dengannya. Sebaliknya, jika user mengambil role, temporary security credentials akan
dibuat secara dinamis dan diberikan kepada user. Anda dapat menggunakan role untuk mendelegasikan akses ke
user, aplikasi, atau layanan yang biasanya tidak memiliki akses ke resource AWS Anda. Misalnya, Anda mungkin ingin
memberi user akses akun AWS Anda ke resource yang biasanya tidak mereka miliki atau memberi user dalam satu
akses akun AWS ke resource di akun lain. Atau Anda mungkin ingin mengizinkan aplikasi seluler untuk menggunakan
resource AWS tetapi tidak ingin menanamkan kunci AWS di dalam aplikasi (akan sulit untuk dirotasi dan user dapat
mengekstraknya). Terkadang Anda ingin memberi akses ke user yang sudah memiliki identitas yang ditentukan di
luar AWS, seperti di direktori perusahaan Anda. Atau, Anda mungkin ingin memberikan akses ke akun Anda kepada
pihak ketiga sehingga mereka dapat melakukan audit terhadap sumber daya Anda. Role dapat digunakan sebagai
berikut:
user IAM di akun AWS yang sama sebagai role
user IAM di akun AWS yang berbeda sebagai role
Layanan web yang ditawarkan oleh AWS seperti Amazon Elastic Compute Cloud (Amazon EC2)
user eksternal yang diautentikasi oleh layanan external identity provider (IdP) yang kompatibel dengan SAML
2.0 atau OpenID Connect, atau broker identitas yang dibuat khusus.