Lernilo pri kreado de aplikaĵoj ĉe Amazon Web Services (AWS)

Lernilo pri Kreado de Aplikaĵoj ĉe Amazon Web Services (AWS)

Amazon Web Services (AWS) estas unu el la plej popularaj nubkomputilaj platformoj de la mondo. Kun AWS, vi povas krei kaj funkciigi aplikaĵojn sen aĉeti fizikajn servilojn, starigi servilan spacon aŭ konservi vian propran infrastrukturon. Ĉi tiu artikolo gvidos vin tra la kreado de simpla aplikaĵo en AWS uzante oftan aliron: deploji retan aplikaĵon uzante komputajn servojn (EC2), administritan datumbazon (RDS) kiel opcion, kaj stokadon kaj domajnon se necese. Kvankam la sekva ekzemplo estas ĝenerala, vi povas apliki ĝin al multaj specoj de aplikaĵoj.

-

1. Komenca Preparo: Kontoj kaj Bazaj Konceptoj

Antaŭ ol vi komencos, certigu, ke vi havas AWS-konton. Multaj AWS-servoj ofertas Senpagan Nivelon (senpagan ene de certaj limoj), kiu estas perfekta por praktiko.

Kelkaj gravaj konceptoj, kiujn vi bezonas kompreni:

– Regiono: AWS-datencentro-loko (ekzemplo: Singapuro/ap-southeast-1). Elektu la plej proksiman regionon por malalta latenteco.
– IAM (Identeco kaj Aliradministrado): sistemo por aliradministrado. Plej bona praktiko: ne uzu la administran konton por ĉiutaga laboro.
– VPC (Virtuala Privata Nubo): virtuala reto kie viaj servoj funkcias.
– Sekureca Grupo: “fajromuro” por reguligi alvenantan/eliĝantan aliron de la servilo.

Komprenante ĉi tiujn kvar aferojn, estos multe pli facile por vi navigi la bazaĵojn de AWS.

-

2. Kreu IAM-uzantojn kaj sekurigu kontojn

Sekureco ĉiam estas nia ĉefa prioritato. Ensalutu al la AWS-konzolo kiel administranto, poste:

1. Malfermu la IAM-servon.
2. Kreu novan uzanton (ekz. `admin-dev`) kaj marku la opcion "Provizu uzantan aliron al la AWS-administra konzolo".
3. Donu permeson: por praktiko vi povas uzi AdministratorAccess (kvankam en realaj projektoj ĝi devus esti pli limigita).
4. Ebligi MFA (Plurfaktoran Aŭtentigon) por pliigi sekurecon.

Post tio, elsalutu el la administra uzanto-gvidilo kaj ensalutu per la nove kreita IAM-uzanto.

-

3. Difinu la Aplikaĵan Arkitekturon

Por ĉi tiu lernilo, ni konstruos simplan arkitekturon:

– EC2: funkciigi TTT-aplikaĵojn (ekz. Node.js/Express, Python Flask, aŭ PHP).
– Laŭvola RDS: administrata MySQL/PostgreSQL datumbazo, por ke datumoj estu ordigite konservitaj.
– S3 (nedeviga): stokas statikajn dosierojn kiel bildojn, dokumentojn aŭ sekurkopiojn.
– Itinero 53 (nedeviga): administri domajnojn.
– CloudWatch: baza monitorado.

LEĜO  La diferenco inter virtualigo kaj kontenerigo

Se vi nur komencas, koncentriĝu pri EC2 por unue funkciigi viajn aplikaĵojn.

-

4. Kreu EC2-servilon

a) Krei Instancon
1. Ensalutu al la EC2-servo.
2. Alklaku Lanĉi Instancon.
3. Elektu operaciumon, ekzemple Ubuntu Server 22.04 LTS.
4. Elektu la instancan tipon: por Senpaga Nivelo uzu `t2.micro` aŭ `t3.micro` (laŭ havebleco).
5. Kreu aŭ elektu ŝlosilparon (ekz., `aws-key.pem`). Konservu la dosieron `.pem` sekure, ĉar ĝi estos uzata por SSH.

b) Agordo de Reto kaj Fajromuro
– Certigu, ke la instanco estas en la defaŭlta VPC (nur por praktiko).
– Agordi Sekurecgrupon:
– Pordo 22 (SSH) nur de via IP-adreso (ekz. `Mia IP-adreso`)
– Pordo 80 (HTTP) de `0.0.0.0/0` (publika)
– Pordo 443 (HTTPS) de `0.0.0.0/0` se poste uzante SSL

Noto: Malfermi SSH al la publiko estas riska. Ĉiam limigu IP-adresojn.

Alklaku Lanĉi kaj atendu ĝis la instanco funkcios.

-

5. Ensaluti al Servilo per SSH

En Vindozo, vi povas uzi WSL aŭ PuTTY. En macOS/Linukso, vi povas fari ĝin rekte el la terminalo.

1. Ŝanĝi permesŝlosilon:
“`bash
chmod 400 aws-ŝlosilo.pem

2. SSH al la servilo (uzu publikan IPv4 de EC2):
“`bash
ssh -i aws-ŝlosilo.pem ubuntu@PUBLIKA_IP

Se sukcesas, vi estas sur la AWS Ubuntu-servilo.

-

6. Instalu TTT-servilon kaj Aplikaĵan Rultempan Programon

Jen ekzemplo por Node.js-aplikaĵo, ĉar ĝi estas vaste uzata por la moderna reto.

a) Ĝisdatigu kaj instalu dependecojn
“`bash
sudo apt ĝisdatigi && sudo apt ĝisdatigi -y
sudo apt install -y curl git

b) Instalu Node.js (LTS-versio)
“`bash
buklo -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E baŝo –
sudo apt install -y nodejs
nodo -v
npm -v

-

7. Kreu Simplan Aplikaĵon

LEĜO  Lernilo pri kreado de virtuala maŝino (VM) en VirtualBox kaj VMware

Krei projektan dosierujon:

“`bash
mkdir miaaplikaĵo && cd miaaplikaĵo
npm init -y
npm instali ekspreson

Kreu dosieron `index.js`:

“`js
konstanto esprimas = postuli("esprimas");
const app = express();

aplikaĵo.akiri("/", (peto, rez) => {
res.send("Saluton! Via aplikaĵo funkcias sur AWS EC2.");
});

aplikaĵo.aŭskultu(3000, () => konzolo.registro("Servilo funkcias ĉe pordo 3000"));

Rulu la aplikaĵon:

“`bash
nodo indekso.js

Provu aliri per retumilo:
– `http://PUBLIC_IP:3000`

Tamen, pordo 3000 nuntempe ne estas malfermita en la Sekureca Grupo. Vi povas:
1) malfermi pordon 3000 en la Sekureca Grupo, aŭ
2) uzu inversan prokurilon (pli rekomendinda) por ke la aplikaĵo restu sur la interna pordo sed estu alirebla per pordo 80/443.

-

8. Uzante Nginx kiel Inversan Prokurilon (Aliro per Pordo 80)

Instalu Nginx:
“`bash
sudo apt install -y nginx
sudo systemctl ebligi nginx
sudo systemctl start nginx

Agordi Nginx-agordon:
“`bash
sudo nano /etc/nginx/sites-available/myapp

Agorda enhavo:
“`nginx
servilo {
aŭskultu 80;
servilo_nomo _;

loko / {
prokurilo_paso http://127.0.0.1:3000;
prokurilo_http_versio 1.1;
proxy_set_header Ĝisdatigu $http_upgrade;
proxy_set_header Konekto 'ĝisdatigo';
proxy_set_header Gastiganto $gastiganto;
proxy_cache_bypass $http_upgrade;
}
}

Ebligi agordon:
“`bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reŝargi nginx

Nun aliru:
– `http://PUBLIC_IP/`

La aplikaĵo funkcias per pordo 3000 sed la publiko aliras ĝin per pordo 80.

-

9. Persista Funkciigo de Aplikaĵoj per PM2

Por malebligi, ke la aplikaĵo kraŝu kiam SSH estas malkonektita, uzu PM2:

“`bash
sudo npm instali -g pm2
pm2 start index.js –nomo miaaplikaĵo
pm2 savi
pm2-noventrepreno

La komando `pm2 startup` donos pliajn instrukciojn. Rulu la montritan komandon por ke la aplikaĵo aŭtomate funkciu kiam la servilo rekomenciĝas.

-

10. (Nedeviga) Aldonado de datumbazo per RDS

Se via aplikaĵo postulas datumbazon, RDS faciligas ĝin ĉar AWS administras sekurkopiojn, flikaĵojn kaj skaladon.

Mallongaj paŝoj:
1. Malfermu RDS-servon → Krei datumbazon.
2. Elektu MySQL aŭ PostgreSQL (Senpagaj Tier-reguloj haveblas ĉe certaj konfiguracioj).
3. Agordi uzantnomon/pasvorton.
4. Certigu, ke la RDS-instanco estas en la sama VPC kiel la EC2.
5. Agordu la RDS-Sekurecgrupon por akcepti nur konektojn de la EC2-Sekurecgrupo (ne de la publiko).

LEĜO  Kiel elekti la plej bonan retgastigadon por persona retejo

Post kiam la datumbazo estas aktiva, prenu la RDS-finpunkton kaj konektu al ĝi el via aplikaĵo uzante la datumbazan pelilon.

-

11. (Nedeviga) Ebligi HTTPS per SSL-Atesto

Por produktado, HTTPS estas deviga. Tipa metodo:
– Uzu domajnon (ekz. de Route 53 aŭ alia registristo).
– Instalu SSL per Let's Encrypt (Certbot) sur EC2.

Mallonge:
“`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx

Sekvu la asistanton por elekti domajnon kaj ebligi HTTPS-alidirektadon.

-

12. Monitorado kaj Kostoj

AWS provizas CloudWatch por vidi metrikojn kiel CPU, reto, kaj specifajn protokolojn. Vi ankaŭ volos monitori viajn kostojn por eviti maltrafi ion.

Gravaj konsiloj:
– Ebligi Fakturan Alarmon en CloudWatch (ekz. alarmon se fakturoj superas 5 USD).
– Malŝaltu la instancon kiam ĝi ne estas uzata.
– Forigu neuzatajn rimedojn (ŝarĝekvilibrilojn, EBS, elastajn IP-adresojn, momentfotojn), ĉar ili ankoraŭ povus kaŭzi kostojn.

-

Fermo

Gratulon! Vi lernis la bazaĵojn pri konstruado de aplikaĵo en AWS uzante EC2, funkciigado de TTT-aplikaĵo, agordado de inversa prokurilo de Nginx, kaj ĉiam-aktivigo per PM2. Vi ankaŭ akiris superrigardon pri aldonaj servoj kiel RDS por datumbazoj, S3 por stokado, kaj HTTPS-atestiloj por sekureco.

Se vi volas plialtigi la nivelon, la sekvaj paŝoj kutime estas:
– Aŭtomata deplojo per CI/CD (GitHub Actions + SSH, aŭ AWS CodeDeploy),
– Uzante ujojn kun Docker kaj orkestradoj kiel ECS aŭ EKS,
– Uzante senservilan arkitekturon kun Lambda + API Gateway.

Se vi deziras, bonvolu specifi la tipon de aplikaĵo, kiun vi konstruas (Node.js, Laravel, Django, React, ktp.) kaj ĝian celitan celon (demonstraĵo, produktado, grandskala). Mi povas adapti la lernilon per pli specifaj paŝoj.

Lasi komenton