Vejledning i oprettelse af applikationer på Amazon Web Services (AWS)

Vejledning i oprettelse af applikationer på Amazon Web Services (AWS)

Amazon Web Services (AWS) er en af ​​verdens mest populære cloud computing-platforme. Med AWS kan du bygge og køre applikationer uden at købe fysiske servere, oprette serverplads eller vedligeholde din egen infrastruktur. Denne artikel vil guide dig gennem oprettelsen af ​​en simpel applikation på AWS ved hjælp af en almindelig tilgang: implementering af en webapplikation ved hjælp af computertjenester (EC2), en administreret database (RDS) som en mulighed og lagerplads og et domæne, hvis det er nødvendigt. Selvom følgende eksempel er generelt, kan du anvende det på mange typer applikationer.

—

1. Indledende forberedelse: Regnskaber og grundlæggende begreber

Før du begynder, skal du sørge for at have en AWS-konto. Mange AWS-tjenester tilbyder et gratis niveau (gratis inden for visse grænser), der er perfekt til øvelse.

Nogle vigtige begreber, du skal forstå:

– Region: AWS datacenterplacering (eksempel: Singapore/ap-sydøst-1). Vælg den nærmeste region for lav latenstid.
– IAM (Identitets- og Adgangsstyring): et adgangsstyringssystem. Bedste praksis: Brug ikke root-kontoen til det daglige arbejde.
– VPC (Virtual Private Cloud): et virtuelt netværk, hvor dine tjenester kører.
– Sikkerhedsgruppe: “firewall” til at regulere indgående/udgående adgang fra serveren.

Ved at forstå disse fire ting, vil det være meget nemmere for dig at navigere i det grundlæggende i AWS.

—

2. Opret IAM-brugere og sikre konti

Sikkerhed er altid vores førsteprioritet. Log ind på AWS-konsollen som root, og gør derefter følgende:

1. Åbn IAM-tjenesten.
2. Opret en ny bruger (f.eks. `admin-dev`) og marker Giv brugeradgang til AWS Management Console.
3. Giv tilladelse: Til øvelse kan du bruge AdministratorAccess (selvom det i virkelige projekter burde være mere begrænset).
4. Aktivér MFA (Multifaktorgodkendelse) for at øge sikkerheden.

Når det er gjort, skal du logge ud fra root og logge ind med den nyoprettede IAM-bruger.

—

3. Bestem applikationsarkitekturen

Til denne vejledning vil vi bygge en simpel arkitektur:

– EC2: kørsel af webapplikationer (f.eks. Node.js/Express, Python Flask eller PHP).
– Valgfri RDS: administreret MySQL/PostgreSQL-database, så data gemmes pænt.
– S3 (valgfrit): gemmer statiske filer såsom billeder, dokumenter eller sikkerhedskopier.
– Rute 53 (valgfri): administrer domæner.
– CloudWatch: grundlæggende overvågning.

Hvis du lige er startet, så fokuser på EC2 til at køre dine applikationer først.

—

4. Opret en EC2-server

a) Opret en instans
1. Log ind på EC2-tjenesten.
2. Klik på Start instans.
3. Vælg operativsystem, for eksempel Ubuntu Server 22.04 LTS.
4. Vælg instanstypen: for Free Tier skal du bruge `t2.micro` eller `t3.micro` (afhængigt af tilgængelighed).
5. Opret eller vælg et nøglepar (f.eks. `aws-key.pem`). Opbevar `.pem`-filen sikkert, da den vil blive brugt til SSH.

b) Netværks- og firewallkonfiguration
– Sørg for, at instansen er i standard-VPC'en (kun til øvelse).
– Indstil sikkerhedsgruppe:
– Port 22 (SSH) kun fra din IP (f.eks. `Min IP`)
– Port 80 (HTTP) på `0.0.0.0/0` (offentlig)
– Port 443 (HTTPS) fra `0.0.0.0/0` hvis der senere anvendes SSL

Bemærk: Det er risikabelt at åbne SSH for offentligheden. Begræns altid IP-adresser.

Klik på Start, og vent på, at instansen kører.

—

5. Log ind på serveren via SSH

På Windows kan du bruge WSL eller PuTTY. På macOS/Linux kan du gøre det direkte fra terminalen.

1. Skift adgangsnøgle:
"` bash
chmod 400 aws-key.pem
”`
2. SSH til serveren (brug offentlig IPv4 fra EC2):
"` bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
”`

Hvis det lykkes, er du på AWS Ubuntu-serveren.

—

6. Installer webserver og applikationskørsel

Her er et eksempel på en Node.js-applikation, da den er meget brugt til det moderne web.

a) Opdater og installer afhængigheder
"` bash
sudo apt opdatering && sudo apt opgradering -y
sudo apt install -y curl git
”`

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

—

7. Opret en simpel applikation

Opret en projektmappe:

"` bash
mkdir myapp && cd myapp
npm init -y
npm install Express
”`

Opret en `index.js`-fil:

"`js
const udtrykke = require("udtrykkelig");
const app = express();

app.get("/", (krav, res) => {
res.send(“Hej! Din applikation kører på AWS EC2.”);
});

app.listen(3000, () => console.log(“Server kører på port 3000”));
”`

Kør applikationen:

"` bash
node index.js
”`

Prøv at tilgå fra en browser:
– `http://OFFENTLIG_IP:3000`

Port 3000 er dog i øjeblikket ikke åben i sikkerhedsgruppen. Du kan:
1) åbn port 3000 i sikkerhedsgruppen, eller
2) brug en reverse proxy (mere anbefalet), så applikationen forbliver på den interne port, men kan tilgås via port 80/443.

—

8. Brug af Nginx som en reverse proxy (adgang via port 80)

Installer Nginx:
"` bash
sudo apt install -y nginx
sudo systemctl aktivere nginx
sudo systemctl start nginx
”`

Opsæt Nginx-konfiguration:
"` bash
sudo nano /etc/nginx/sites-available/myapp
”`

Konfigurationsindhold:
"`nginx
server {
lyt 80;
server_navn _;

placering /
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Opgradering $http_upgrade;
proxy_set_header Forbindelse 'opgradering';
proxy_set_header Host $ vært;
proxy_cache_bypass $http_upgrade;
}
}
”`

Aktivér konfiguration:
"` bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl genindlæse nginx
”`

Nu adgang:
– `http://OFFENTLIG_IP/`

Applikationen kører på port 3000, men offentligheden tilgår den via port 80.

—

9. Vedvarende kørsel af applikationer med PM2

For at forhindre applikationen i at gå ned, når SSH er frakoblet, skal du bruge PM2:

"` bash
sudo npm install -g pm2
pm2 start index.js –navngiv minapp
pm2 spar
pm2 opstart
”`

Kommandoen `pm2 startup` giver yderligere instruktioner. Kør den viste kommando for at få programmet til at køre automatisk, når serveren genstarter.

—

10. (Valgfrit) Tilføjelse af en database med RDS

Hvis din applikation kræver en database, gør RDS det nemt, fordi AWS administrerer sikkerhedskopier, patching og skalering.

Korte trin:
1. Åbn RDS-tjenesten → Opret database.
2. Vælg MySQL eller PostgreSQL (Free Tier-regler er tilgængelige på visse konfigurationer).
3. Indstil brugernavn/adgangskode.
4. Sørg for, at RDS-instansen er i den samme VPC som EC2.
5. Indstil RDS-sikkerhedsgruppen til kun at acceptere forbindelser fra EC2-sikkerhedsgruppen (ikke fra den offentlige).

Når databasen er live, skal du hente RDS-slutpunktet og oprette forbindelse til det fra din applikation ved hjælp af databasedriveren.

—

11. (Valgfrit) Aktivér HTTPS med SSL-certifikat

Til produktion er HTTPS obligatorisk. Typisk metode:
– Brug et domæne (f.eks. fra Route 53 eller en anden registrator).
– Installer SSL via Let's Encrypt (Certbot) på EC2.

Kort sagt:
"` bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
”`

Følg guiden for at vælge et domæne og aktivere HTTPS-omdirigering.

—

12. Overvågning og omkostninger

AWS tilbyder CloudWatch til at se målinger som CPU, netværk og specifikke logs. Du bør også overvåge dine omkostninger for at undgå at gå glip af noget.

Vigtige tips:
– Aktiver faktureringsalarm i CloudWatch (f.eks. alarm hvis gebyrerne overstiger $5).
– Sluk for instansen, når den ikke er i brug.
– Fjern ubrugte ressourcer (load balancers, EBS, elastiske IP'er, snapshots), da de stadig kan medføre omkostninger.

—

Lukker

Tillykke! Du har lært det grundlæggende i at bygge en applikation på AWS ved hjælp af EC2, køre en webapplikation , konfigurere en Nginx reverse proxy og gøre den altid tændt med PM2. Du har også fået et overblik over yderligere tjenester som RDS til databaser, S3 til lagring og HTTPS-certifikater til sikkerhed.

Hvis du vil stige i niveau, er de næste trin normalt:
– Automatiseret implementering med CI/CD (GitHub Actions + SSH eller AWS CodeDeploy),
– Brug af containere med Docker og orkestreringer som ECS eller EKS,
– Brug af serverløs arkitektur med Lambda + API Gateway.

Hvis du ønsker det, bedes du angive den type applikation, du bygger (Node.js, Laravel, Django, React osv.) og dens tilsigtede formål (demo, produktion, storskala). Jeg kan tilpasse vejledningen med mere specifikke trin.

Tinggalkan kommentarer