Amazon Web Services (AWS) сайтында тиркемелерди түзүү боюнча окуу куралы
Amazon Web Services (AWS) adalah salah satu platform komputasi awan (cloud) paling populer di dunia. Dengan AWS, Anda bisa membangun dan menjalankan aplikasi tanpa harus membeli server fisik, mengatur ruang server, atau melakukan perawatan infrastruktur sendiri. Artikel ini akan memandu Anda membuat aplikasi sederhana di AWS dengan pendekatan yang umum dipakai: men-deploy веб тиркеме menggunakan layanan komputasi (EC2), database terkelola (RDS) sebagai opsi, serta penyimpanan dan domain jika diperlukan. Meski contoh berikut bersifat umum, Anda dapat menerapkannya untuk banyak jenis aplikasi.
-
1. Баштапкы даярдык: Эсептер жана негизги түшүнүктөр
Sebelum memulai, pastikan Anda memiliki akun AWS. Banyak layanan AWS menyediakan Free Tier (gratis dalam batas tertentu) yang cocok untuk latihan.
Түшүнүшүңүз керек болгон кээ бир маанилүү түшүнүктөр:
– Region : lokasi pusat data AWS (contoh: Singapore/ap-southeast-1). Pilih region terdekat agar latensi rendah.
– IAM (Identity and Access Management) : sistem manajemen akses. Praktik terbaik: jangan gunakan akun root untuk pekerjaan harian.
– VPC (Virtual Private Cloud) : jaringan virtual tempat layanan Anda berjalan.
– Security Group : “firewall” untuk mengatur akses masuk/keluar dari server.
Бул төрт нерсени түшүнүү менен, сизге AWS негиздерин үйрөнүү бир топ жеңил болот.
-
2. IAM колдонуучуларын түзүңүз жана аккаунттарды коопсуздандырыңыз
Коопсуздук ар дайым биздин биринчи кезектеги артыкчылыгыбыз. AWS консолуна root катары кириңиз, андан кийин:
1. Buka layanan IAM .
2. Buat User baru (misalnya `admin-dev`) dan centang Provide user access to the AWS Management Console .
3. Berikan permission: untuk latihan bisa gunakan AdministratorAccess (meski di proyek nyata sebaiknya lebih terbatas).
4. Aktifkan MFA (Multi-Factor Authentication) untuk meningkatkan keamanan.
Бүткөндөн кийин, root дан чыгып, жаңы түзүлгөн IAM колдонуучусун колдонуп кириңиз.
-
3. Колдонмо архитектурасын аныктоо
Бул окуу куралы үчүн биз жөнөкөй архитектураны курабыз:
– EC2 : menjalankan aplikasi web (misalnya Node.js/Express, Python Flask, atau PHP).
– Opsional RDS : database MySQL/PostgreSQL terkelola, agar data tersimpan rapi.
– S3 (opsional) : menyimpan file statis seperti gambar, dokumen, atau backup.
– Route 53 (opsional) : mengelola domain.
– CloudWatch : monitoring dasar.
Эгер сиз жаңыдан баштап жатсаңыз, алгач тиркемелериңизди иштетүү үчүн EC2ге көңүл буруңуз.
-
4. EC2 серверин түзүңүз
а) Инстанция түзүү
1. Masuk ke layanan EC2 .
2. Klik Launch Instance .
3. Pilih OS, misalnya Ubuntu Server 22.04 LTS .
4. Инстанциянын түрүн тандаңыз: Free Tier үчүн `t2.micro` же `t3.micro` колдонуңуз (мүмкүнчүлүгүнө жараша).
5. Buat atau pilih Key Pair (misalnya `aws-key.pem`). Simpan file `.pem` dengan aman karena dipakai untuk SSH.
б) Тармак жана брандмауэр конфигурациясы
– Pastikan instance berada di VPC default (untuk latihan boleh).
– Atur Security Group :
– Port 22 (SSH) hanya dari IP Anda (misal: `My IP`)
– Port 80 (HTTP) dari `0.0.0.0/0` (publik)
– Port 443 (HTTPS) dari `0.0.0.0/0` jika nanti pakai SSL
Эскертүү: SSH'ти коомчулукка ачуу кооптуу. IP даректерди ар дайым чектеңиз.
Klik Launch dan tunggu instance berjalan.
-
5. SSH аркылуу серверге кириңиз
Windows'то WSL же PuTTY'ни колдонсоңуз болот. macOS/Linux'та муну түздөн-түз терминалдан жасай аласыз.
1. Уруксат ачкычын өзгөртүү:
"`баш
chmod 400 aws-key.pem
""
2. Серверге SSH аркылуу туташуу (EC2ден Public IPv4 колдонуңуз):
"`баш
ssh -i aws-key.pem ubuntu@PUBLIC_IP
""
Эгер ийгиликтүү болсо, сиз AWS Ubuntu сервериндесиз.
-
6. Веб-серверди жана тиркеменин иштөө убактысын орнотуңуз
Бул жерде Node.js тиркемесинин мисалы келтирилген, анткени ал заманбап веб үчүн кеңири колдонулат.
а) Көз карандылыктарды жаңыртуу жана орнотуу
"`баш
sudo apt update && sudo apt up -y
sudo apt install -y curl git
""
б) Node.js орнотуу (LTS версиясы)
"`баш
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
түйүн -v
КЭУБ -v
""
-
7. Жөнөкөй тиркеме түзүңүз
Долбоор папкасын түзүү:
"`баш
mkdir myapp && cd myapp
npm init -y
npm орнотуу экспресс
""
`index.js` файлын түзүңүз:
“`js
const express = require(“express”);
const app = express();
app.get(“/”, (талап, жооп) => {
res.send(“Саламатсызбы! Сиздин тиркемеңиз AWS EC2де иштеп жатат.”);
});
app.listen(3000, () => console.log(“Сервер 3000-портто иштеп жатат”));
""
Тиркемени иштетиңиз:
"`баш
node index.js
""
Браузерден кирип көрүңүз:
– `http://PUBLIC_IP:3000`
Бирок, 3000-порт учурда Коопсуздук тобунда ачык эмес. Сиз төмөнкүлөрдү жасай аласыз:
1) Коопсуздук тобунда 3000 портун ачуу, же
2) тиркеме ички портто калышы үчүн, бирок 80/443 порту аркылуу кирүүгө мүмкүн болушу үчүн тескери прокси колдонуңуз (сунушталат).
-
8. Nginxти тескери прокси катары колдонуу (80-порт аркылуу кирүү)
Nginx орнотуу:
"`баш
sudo apt орнотуу -y nginx
Sudo жөргөмүш иштетүү systemctl
Sudo жөргөмүш баштоо systemctl
""
Nginx конфигурациясын орнотуу:
"`баш
sudo nano /etc/nginx/sites-available/myapp
""
Конфигурациянын мазмуну:
"`nginx
Server {
80 угуу;
сервердин аты _;
жайгашуу / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Жаңыртуу $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Хост $ хост;
proxy_cache_bypass $http_upgrade;
}
}
""
Конфигурацияны иштетүү:
"`баш
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
Sudo жөргөмүш -t
sudo systemctl кайра жүктөө nginx
""
Эми мүмкүнчүлүк:
– `http://PUBLIC_IP/`
Тиркеме 3000-портто иштейт, бирок коомчулук ага 80-порт аркылуу кирет.
-
9. PM2 менен тиркемелерди тынымсыз иштетүү
Agar aplikasi tidak mati ketika SSH terputus, gunakan PM2 :
"`баш
sudo npm орнотуу -g pm2
pm2 баштоо index.js –myapp аталышы
pm2 сакта
pm2 ишке киргизүү
""
`pm2 startup` буйругу кошумча көрсөтмөлөрдү берет. Сервер кайра иштетилгенде тиркеме автоматтык түрдө иштеши үчүн көрсөтүлгөн буйрукту аткарыңыз.
-
10. (Милдеттүү эмес) RDS менен маалымат базасын кошуу
Эгерде сиздин тиркемеңиз маалымат базасын талап кылса, RDS муну жеңилдетет, анткени AWS камдык көчүрмөлөрдү, патчтарды жана масштабдоону башкарат.
Кыска кадамдар:
1. Buka layanan RDS → Create database .
2. MySQL же PostgreSQL тандаңыз (Акысыз деңгээлдеги эрежелер айрым конфигурацияларда жеткиликтүү).
3. Колдонуучу атын/сырсөздү коюңуз.
4. RDS инстанциясы EC2 менен бир VPCде экенин текшериңиз.
5. Atur Security Group RDS agar hanya menerima koneksi dari Security Group EC2 (bukan dari publik).
Маалымат базасы иштеп баштагандан кийин, RDS акыркы чекитин алып, ага маалымат базасынын драйверин колдонуп, тиркемеңизден туташыңыз.
-
11. (Милдеттүү эмес) SSL сертификаты менен HTTPSти иштетүү
Өндүрүш үчүн HTTPS милдеттүү түрдө колдонулат. Типтүү ыкма:
– Доменди колдонуңуз (мисалы, 53-жолдон же башка каттоочудан).
– Pasang SSL via Let’s Encrypt (Certbot) di EC2.
Кыскача айтканда:
"`баш
sudo apt орнотуу -y certbot python3-certbot-nginx
sudo certbot –nginx
""
Доменди тандоо жана HTTPS багыттоосун иштетүү үчүн устанын көрсөтмөлөрүн аткарыңыз.
-
12. Мониторинг жана чыгымдар
AWS menyediakan CloudWatch untuk melihat metrik seperti CPU, network, dan log tertentu. Anda juga perlu memantau biaya agar tidak “kecolongan”.
Маанилүү кеңештер:
– Aktifkan Billing Alarm di CloudWatch (misal alarm jika biaya melebihi $5).
– Колдонулбай турган учурда инстанцияны өчүрүп коюңуз.
– Колдонулбаган ресурстарды (жүк баланстагычтар, EBS, ийкемдүү IPлер, сүрөттөр) алып салыңыз, анткени алар дагы эле чыгымдарды жаратышы мүмкүн.
-
Penutup
Selamat! Anda sudah mempelajari langkah dasar membuat aplikasi di AWS menggunakan EC2, menjalankan веб тиркеме, mengatur reverse proxy Nginx, dan menjadikannya selalu aktif dengan PM2. Anda juga sudah mendapat gambaran layanan tambahan seperti RDS untuk database, S3 untuk storage, serta sertifikat HTTPS untuk keamanan.
Эгер сиз деңгээлди көтөргүңүз келсе, адатта, кийинки кадамдар:
– Deploy otomatis dengan CI/CD (GitHub Actions + SSH, atau AWS CodeDeploy),
– Menggunakan container dengan Docker dan orkestrasi seperti ECS atau EKS ,
– Memakai arsitektur serverless dengan Lambda + API Gateway .
Кааласаңыз, куруп жаткан тиркеменин түрүн (Node.js, Laravel, Django, React ж.б.) жана анын максаттуу максатын (демо, өндүрүш, ири масштабдуу) көрсөтүңүз. Мен окуу куралын конкреттүү кадамдар менен ыңгайлаштыра алам.