Opastus sovellusten luomiseen Amazon Web Servicesissä (AWS)

Opastus sovellusten luomiseen Amazon Web Servicesissä (AWS)

Amazon Web Services (AWS) on yksi maailman suosituimmista pilvipalveluista. AWS:n avulla voit rakentaa ja suorittaa sovelluksia ostamatta fyysisiä palvelimia, perustamatta palvelintilaa tai ylläpitämättä omaa infrastruktuuria. Tässä artikkelissa käydään läpi yksinkertaisen sovelluksen luominen AWS:ssä yleisen lähestymistavan avulla: verkkosovelluksen käyttöönotto laskentapalveluiden (EC2) avulla, hallitun tietokannan (RDS) avulla valinnaisesti sekä tallennustilan ja verkkotunnuksen avulla tarvittaessa. Vaikka seuraava esimerkki on yleinen, voit soveltaa sitä monenlaisiin sovelluksiin.

-

1. Alustava valmistelu: Tilinpäätös ja peruskäsitteet

Ennen kuin aloitat, varmista, että sinulla on AWS-tili. Monet AWS-palvelut tarjoavat ilmaisen tason (tietyissä rajoissa ilmainen), joka sopii täydellisesti harjoitteluun.

Joitakin tärkeitä käsitteitä, jotka sinun on ymmärrettävä:

– Alue: AWS-datakeskuksen sijainti (esimerkki: Singapore/ap-southeast-1). Valitse lähin alue, jos haluat pienen viiveen.
– IAM (Identity and Access Management): pääsynhallintajärjestelmä. Parhaat käytännöt: älä käytä pääkäyttäjän tiliä päivittäisessä työssä.
– VPC (Virtual Private Cloud): virtuaaliverkko, jossa palvelusi toimivat.
– Suojausryhmä: ”palomuuri” palvelimelle saapuvan/lähtevän käytön säätelemiseksi.

Ymmärtämällä nämä neljä asiaa sinun on paljon helpompi navigoida AWS:n perusteissa.

-

2. Luo IAM-käyttäjiä ja suojaa tilejä

Tietoturva on aina tärkein prioriteettimme. Kirjaudu AWS-konsoliin pääkäyttäjänä ja toimi seuraavasti:

1. Avaa IAM-palvelu.
2. Luo uusi käyttäjä (esim. `admin-dev`) ja valitse kohta Anna käyttäjälle pääsy AWS Management Consoleen.
3. Myönnä käyttöoikeudet: harjoitteluun voit käyttää AdministratorAccess-käyttöoikeutta (vaikka oikeissa projekteissa sen pitäisi olla rajoitetumpi).
4. Ota käyttöön MFA (monivaiheinen todennus) turvallisuuden parantamiseksi.

Kun olet valmis, kirjaudu ulos pääkäyttäjänä ja kirjaudu sisään käyttämällä juuri luotua IAM-käyttäjää.

-

3. Sovellusarkkitehtuurin määrittäminen

Tässä opetusohjelmassa rakennamme yksinkertaisen arkkitehtuurin:

– EC2: verkkosovellusten suorittaminen (esim. Node.js/Express, Python Flask tai PHP).
– Valinnainen RDS: hallittu MySQL/PostgreSQL-tietokanta, jotta tiedot tallennetaan siististi.
– S3 (valinnainen): tallentaa staattisia tiedostoja, kuten kuvia, asiakirjoja tai varmuuskopioita.
– Reitti 53 (valinnainen): verkkotunnusten hallinta.
– CloudWatch: perusvalvonta.

Jos olet vasta aloittamassa, keskity ensin EC2:een sovellustesi ajamiseen.

-

4. Luo EC2-palvelin

a) Luo instanssi
1. Kirjaudu EC2-palveluun.
2. Napsauta Käynnistä instanssi.
3. Valitse käyttöjärjestelmä, esimerkiksi Ubuntu Server 22.04 LTS.
4. Valitse instanssityyppi: ilmaiselle tasolle käytä `t2.micro`- tai `t3.micro`-tyyppiä (saatavuuden mukaan).
5. Luo tai valitse avainpari (esim. `aws-key.pem`). Säilytä `.pem`-tiedostoa turvassa, sillä sitä käytetään SSH:n kanssa.

b) Verkko- ja palomuuriasetukset
– Varmista, että instanssi on oletus-VPC:ssä (harjoituksen vuoksi).
– Aseta käyttöoikeusryhmä:
– Portti 22 (SSH) vain IP-osoitteestasi (esim. `Oma IP`)
– Portti 80 (HTTP) `0.0.0.0/0` (julkinen)
– Portti 443 (HTTPS) kohdasta `0.0.0.0/0`, jos myöhemmin käytetään SSL:ää

Huomautus: SSH:n avaaminen yleisölle on riskialtista. Rajoita aina IP-osoitteita.

Napsauta Käynnistä ja odota, että instanssi suoritetaan.

-

5. Kirjaudu palvelimelle SSH:n kautta

Windowsissa voit käyttää WSL:ää tai PuTTY:tä. macOS:ssä/Linuxissa voit tehdä sen suoraan terminaalista.

1. Vaihda käyttöoikeusavain:
"'bash
chmod 400 aws-key.pem
”`
2. SSH palvelimelle (käytä EC2:n julkista IPv4:ää):
"'bash
ssh -i aws-key.pem ubuntu@JULKINEN_IP
”`

Jos tämä onnistuu, olet AWS Ubuntu -palvelimella.

-

6. Asenna web-palvelin ja sovelluksen suoritusympäristö

Tässä on esimerkki Node.js-sovelluksesta, jota käytetään laajalti nykyaikaisessa verkossa.

a) Päivitä ja asenna riippuvuudet
"'bash
sudo apt päivitys && sudo apt päivitys -y
sudo apt install -y curl git
”`

b) Asenna Node.js (LTS-versio)
"'bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y nodejs
solmu -v
npm -v
”`

-

7. Luo yksinkertainen sovellus

Luo projektikansio:

"'bash
mkdir sovellukseni && cd sovellukseni
npm init -y
npm install express
”`

Luo `index.js`-tiedosto:

js
const express = require(“express”);
const app = express();

app.get(“/”, (pyyntö, vastaus) => {
res.send("Hei! Sovelluksesi toimii AWS EC2:ssa.");
});

app.listen(3000, () => console.log(“Palvelin käynnissä portissa 3000”));
”`

Suorita sovellus:

"'bash
solmu index.js
”`

Kokeile käyttää sitä selaimella:
– `http://JULKINEN_IP:3000`

Portti 3000 ei kuitenkaan ole tällä hetkellä avoinna käyttöoikeusryhmässä. Voit:
1) avaa portti 3000 suojausryhmässä tai
2) käytä käänteistä välityspalvelinta (suositeltavampaa), jotta sovellus pysyy sisäisessä portissa, mutta siihen pääsee käsiksi portin 80/443 kautta.

-

8. Nginxin käyttö käänteisenä välityspalvelimena (käyttö portin 80 kautta)

Asenna Nginx:
"'bash
sudo apt install -y nginx
sudo systemctl mahdollistaa nginx
sudo systemctl start nginx
”`

Nginx-kokoonpanon määrittäminen:
"'bash
sudo nano /etc/nginx/sites-available/myapp
”`

Konfiguraatioiden sisältö:
"nginx"
palvelin {
kuunnella 80;
palvelimen_nimi _;

sijainti /
proxy_pass http://127.0.0.1:3000;
välityspalvelimen_http_versio 1.1;
proxy_set_header Päivitys $http_upgrade;
proxy_set_header Yhteys 'päivitys';
proxy_set_header Host $ host;
välityspalvelimen_välimuistin_ohitus $http_päivitys;
}
}
”`

Ota käyttöön määritys:
"'bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl lataa nginx uudelleen
”`

Nyt pääsy:
– `http://JULKINEN_IP/`

Sovellus toimii portissa 3000, mutta yleisö käyttää sitä portin 80 kautta.

-

9. Sovellusten jatkuva suorittaminen PM2:lla

Estääksesi sovelluksen kaatumisen, kun SSH-yhteys katkeaa, käytä PM2:ta:

"'bash
sudo npm install -g pm2
pm2 start index.js –nimi sovellukseni
pm2-tallennus
pm2-käynnistys
”`

Komento `pm2 startup` antaa lisäohjeita. Suorita näytetty komento, jos haluat sovelluksen käynnistyvän automaattisesti palvelimen uudelleenkäynnistyksen yhteydessä.

-

10. (Valinnainen) Tietokannan lisääminen RDS:n avulla

Jos sovelluksesi vaatii tietokannan, RDS helpottaa sitä, koska AWS hallitsee varmuuskopioita, korjauksia ja skaalausta.

Lyhyet askeleet:
1. Avaa RDS-palvelu → Luo tietokanta.
2. Valitse MySQL tai PostgreSQL (ilmaiset tasosäännöt ovat saatavilla tietyissä kokoonpanoissa).
3. Aseta käyttäjätunnus/salasana.
4. Varmista, että RDS-instanssi on samassa VPC:ssä kuin EC2.
5. Aseta RDS-suojausryhmä hyväksymään yhteyksiä vain EC2-suojausryhmästä (ei julkisista yhteyksistä).

Kun tietokanta on julkaistu, ota RDS-päätepiste ja muodosta yhteys siihen sovelluksestasi tietokanta-ajurin avulla.

-

11. (Valinnainen) Ota käyttöön HTTPS SSL-varmenteella

Tuotannossa HTTPS on pakollinen. Tyypillinen menetelmä:
– Käytä verkkotunnusta (esim. Route 53:lta tai toiselta rekisterinpitäjältä).
– Asenna SSL Let's Encryptin (Certbot) kautta EC2:een.

Lyhyesti:
"'bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
”`

Valitse verkkotunnus ja ota HTTPS-uudelleenohjaus käyttöön ohjatun toiminnon avulla.

-

12. Seuranta ja kustannukset

AWS tarjoaa CloudWatchin mittareiden, kuten suorittimen, verkon ja tiettyjen lokien, tarkasteluun. Haluat myös seurata kustannuksiasi, jotta et jää paitsi mistään.

Tärkeitä vinkkejä:
– Ota käyttöön laskutushälytys CloudWatchissa (esim. hälytys, jos veloitukset ylittävät 5 dollaria).
– Sammuta instanssi, kun sitä ei käytetä.
– Poista käyttämättömät resurssit (kuormituksen tasaajat, EBS, joustavat IP-osoitteet, tilannevedokset), koska ne voivat silti aiheuttaa kustannuksia.

-

Sulkeminen

Onnittelut! Olet oppinut sovelluksen rakentamisen AWS:ssä EC2:lla, web-sovelluksen suorittamisen , Nginx-käänteisen välityspalvelimen määrittämisen ja sen pitämisen aina päällä PM2:lla. Olet myös saanut yleiskuvan lisäpalveluista, kuten RDS:stä tietokantoja varten, S3:sta tallennukseen ja HTTPS-varmenteista tietoturvaa varten.

Jos haluat nousta tasolle, seuraavat vaiheet ovat yleensä:
– Automaattinen käyttöönotto CI/CD:n avulla (GitHub Actions + SSH tai AWS CodeDeploy),
– Konttien käyttö Dockerin ja orkestrointien, kuten ECS:n tai EKS:n, kanssa,
– Käytetään palvelimetonta arkkitehtuuria Lambdan ja API-yhdyskäytävän avulla.

Halutessasi voit määrittää rakentamasi sovelluksen tyypin (Node.js, Laravel, Django, React jne.) ja sen käyttötarkoituksen (demo, tuotanto, laajamittainen). Voin mukauttaa tutoriaalia tarkemmilla vaiheilla.

Jätä kommentti