Εκπαιδευτικό βίντεο για τη δημιουργία εφαρμογών στις υπηρεσίες Amazon Web Services (AWS)
Οι Υπηρεσίες Web της Amazon (AWS) είναι μία από τις πιο δημοφιλείς πλατφόρμες cloud computing στον κόσμο. Με την AWS, μπορείτε να δημιουργήσετε και να εκτελέσετε εφαρμογές χωρίς να αγοράσετε φυσικούς διακομιστές, να ρυθμίσετε χώρο διακομιστή ή να συντηρήσετε τη δική σας υποδομή. Αυτό το άρθρο θα σας καθοδηγήσει στη δημιουργία μιας απλής εφαρμογής στην AWS χρησιμοποιώντας μια κοινή προσέγγιση: ανάπτυξη μιας εφαρμογής web χρησιμοποιώντας υπηρεσίες compute services (EC2), μια διαχειριζόμενη βάση δεδομένων (RDS) ως επιλογή και χώρο αποθήκευσης και έναν τομέα, εάν χρειάζεται. Ενώ το ακόλουθο παράδειγμα είναι γενικό, μπορείτε να το εφαρμόσετε σε πολλούς τύπους εφαρμογών.
-
1. Αρχική Προετοιμασία: Λογαριασμοί και Βασικές Έννοιες
Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε λογαριασμό AWS. Πολλές υπηρεσίες AWS προσφέρουν ένα Δωρεάν Επίπεδο (δωρεάν εντός ορισμένων ορίων) που είναι ιδανικό για εξάσκηση.
Μερικές σημαντικές έννοιες που πρέπει να κατανοήσετε:
– Περιοχή: Τοποθεσία κέντρου δεδομένων AWS (παράδειγμα: Σιγκαπούρη/ap-southeast-1). Επιλέξτε την πλησιέστερη περιοχή για χαμηλή καθυστέρηση.
– IAM (Διαχείριση Ταυτότητας και Πρόσβασης): ένα σύστημα διαχείρισης πρόσβασης. Βέλτιστη πρακτική: μην χρησιμοποιείτε τον λογαριασμό root για καθημερινή εργασία.
– VPC (Εικονικό Ιδιωτικό Νέφος): ένα εικονικό δίκτυο όπου εκτελούνται οι υπηρεσίες σας.
– Ομάδα ασφαλείας: «τείχος προστασίας» για τη ρύθμιση της εισερχόμενης/εξερχόμενης πρόσβασης από τον διακομιστή.
Κατανοώντας αυτά τα τέσσερα πράγματα, θα είναι πολύ πιο εύκολο για εσάς να πλοηγηθείτε στα βασικά του AWS.
-
2. Δημιουργήστε χρήστες IAM και ασφαλείς λογαριασμούς
Η ασφάλεια είναι πάντα η πρώτη μας προτεραιότητα. Συνδεθείτε στην κονσόλα AWS ως root και, στη συνέχεια:
1. Ανοίξτε την υπηρεσία IAM.
2. Δημιουργήστε έναν νέο χρήστη (π.χ. `admin-dev`) και επιλέξτε Παροχή πρόσβασης χρήστη στην Κονσόλα Διαχείρισης AWS.
3. Χορήγηση άδειας: για εξάσκηση μπορείτε να χρησιμοποιήσετε το AdministratorAccess (αν και σε πραγματικά έργα θα πρέπει να είναι πιο περιορισμένο).
4. Ενεργοποιήστε το MFA (Πολλαπλών Παραγόντων Ελέγχου Αυθεντικοποίησης) για να αυξήσετε την ασφάλεια.
Μόλις τελειώσετε, αποσυνδεθείτε από τον root και συνδεθείτε χρησιμοποιώντας τον νέο χρήστη IAM.
-
3. Προσδιορίστε την Αρχιτεκτονική Εφαρμογής
Για αυτό το σεμινάριο, θα δημιουργήσουμε μια απλή αρχιτεκτονική:
– EC2: εκτέλεση εφαρμογών ιστού (π.χ. Node.js/Express, Python Flask ή PHP).
– Προαιρετικό RDS: διαχειριζόμενη βάση δεδομένων MySQL/PostgreSQL, ώστε τα δεδομένα να αποθηκεύονται με τάξη.
– S3 (προαιρετικό): αποθηκεύει στατικά αρχεία όπως εικόνες, έγγραφα ή αντίγραφα ασφαλείας.
– Διαδρομή 53 (προαιρετικά): διαχείριση τομέων.
– CloudWatch: βασική παρακολούθηση.
Αν μόλις ξεκινάτε, επικεντρωθείτε στο EC2 για να εκτελέσετε πρώτα τις εφαρμογές σας.
-
4. Δημιουργήστε έναν διακομιστή EC2
α) Δημιουργήστε μια παρουσία
1. Συνδεθείτε στην υπηρεσία EC2.
2. Κάντε κλικ στην επιλογή Εκκίνηση στιγμιότυπου.
3. Επιλέξτε λειτουργικό σύστημα, για παράδειγμα Ubuntu Server 22.04 LTS.
4. Επιλέξτε τον τύπο παρουσίας: για Ελεύθερο Επίπεδο χρησιμοποιήστε `t2.micro` ή `t3.micro` (ανάλογα με τη διαθεσιμότητα).
5. Δημιουργήστε ή επιλέξτε ένα ζεύγος κλειδιών (π.χ., `aws-key.pem`). Κρατήστε το αρχείο `.pem` ασφαλές, καθώς θα χρησιμοποιηθεί για SSH.
β) Ρύθμιση δικτύου και τείχους προστασίας
– Βεβαιωθείτε ότι η παρουσία βρίσκεται στο προεπιλεγμένο VPC (απλώς για εξάσκηση).
– Ορισμός ομάδας ασφαλείας:
– Θύρα 22 (SSH) μόνο από την IP σας (π.χ. `Η IP μου`)
– Θύρα 80 (HTTP) με `0.0.0.0/0` (δημόσια)
– Θύρα 443 (HTTPS) από `0.0.0.0/0` εάν αργότερα χρησιμοποιηθεί SSL
Σημείωση: Το άνοιγμα του SSH στο κοινό είναι επικίνδυνο. Να περιορίζετε πάντα τις διευθύνσεις IP.
Κάντε κλικ στην επιλογή Εκκίνηση και περιμένετε να εκτελεστεί η παρουσία.
-
5. Σύνδεση στον διακομιστή μέσω SSH
Στα Windows, μπορείτε να χρησιμοποιήσετε WSL ή PuTTY. Σε macOS/Linux, μπορείτε να το κάνετε απευθείας από το τερματικό.
1. Αλλαγή κλειδιού δικαιωμάτων:
""μπας
chmod 400 aws-key.pem
«"
2. SSH στον διακομιστή (χρησιμοποιήστε το δημόσιο IPv4 από το EC2):
""μπας
ssh -i aws-key.pem ubuntu@PUBLIC_IP
«"
Εάν είναι επιτυχής, βρίσκεστε στον διακομιστή AWS Ubuntu.
-
6. Εγκατάσταση διακομιστή ιστού και χρόνου εκτέλεσης εφαρμογών
Ακολουθεί ένα παράδειγμα για μια εφαρμογή Node.js, καθώς χρησιμοποιείται ευρέως για τον σύγχρονο ιστό.
α) Ενημέρωση και εγκατάσταση εξαρτήσεων
""μπας
sudo apt update && sudo apt upgrade -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
npm -v
«"
-
7. Δημιουργήστε μια απλή εφαρμογή
Δημιουργήστε έναν φάκελο έργου:
""μπας
mkdir myapp && cd myapp
npm init -y
npm εγκατάσταση express
«"
Δημιουργήστε ένα αρχείο `index.js`:
«js»
const express = require("έκφραση");
const app = express();
app.get("/", (απαιτείται, απάντηση) => {
res.send("Γεια σας! Η εφαρμογή σας εκτελείται σε AWS EC2.");
})?
app.listen(3000, () => console.log(“Διακομιστής που εκτελείται στη θύρα 3000”));
«"
Εκτελέστε την εφαρμογή:
""μπας
κόμβος index.js
«"
Δοκιμάστε να αποκτήσετε πρόσβαση από ένα πρόγραμμα περιήγησης:
– `http://PUBLIC_IP:3000`
Ωστόσο, η θύρα 3000 δεν είναι ανοιχτή αυτήν τη στιγμή στην Ομάδα ασφαλείας. Μπορείτε να κάνετε τα εξής:
1) ανοίξτε τη θύρα 3000 στην Ομάδα ασφαλείας ή
2) χρησιμοποιήστε ένα reverse proxy (συνιστάται περισσότερο) έτσι ώστε η εφαρμογή να παραμένει στην εσωτερική θύρα αλλά να είναι προσβάσιμη μέσω της θύρας 80/443.
-
8. Χρήση του Nginx ως αντίστροφου διακομιστή μεσολάβησης (Πρόσβαση μέσω της θύρας 80)
Εγκαταστήστε το Nginx:
""μπας
sudo apt install -y nginx
sudo systemctl επιτρέπει nginx
sudo systemctl ξεκινήσει nginx
«"
Ρύθμιση παραμέτρων 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 Σύνδεση 'αναβάθμιση';
proxy_set_header Υποδοχή $ host;
proxy_cache_bypass $http_upgrade;
}
}
«"
Ενεργοποίηση διαμόρφωσης:
""μπας
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx-t
sudo systemctl φόρτωση nginx
«"
Τώρα πρόσβαση:
– `http://ΔΗΜΟΣΙΑ_IP/`
Η εφαρμογή εκτελείται στη θύρα 3000, αλλά το κοινό έχει πρόσβαση σε αυτήν μέσω της θύρας 80.
-
9. Συνεχής εκτέλεση εφαρμογών με PM2
Για να αποτρέψετε την κατάρρευση της εφαρμογής όταν αποσυνδεθεί το SSH, χρησιμοποιήστε το PM2:
""μπας
sudo npm install -g pm2
pm2 έναρξη index.js – όνομα myapp
pm2 αποθήκευση
νεοσύστατη επιχείρηση pm2
«"
Η εντολή `pm2 startup` θα παρέχει πρόσθετες οδηγίες. Εκτελέστε την εμφανιζόμενη εντολή για να εκτελεστεί αυτόματα η εφαρμογή κατά την επανεκκίνηση του διακομιστή.
-
10. (Προαιρετικά) Προσθήκη βάσης δεδομένων με RDS
Εάν η εφαρμογή σας απαιτεί βάση δεδομένων, το RDS το διευκολύνει, επειδή το AWS διαχειρίζεται αντίγραφα ασφαλείας, ενημερώσεις κώδικα και κλιμάκωση.
Σύντομα βήματα:
1. Ανοίξτε την υπηρεσία RDS → Δημιουργία βάσης δεδομένων.
2. Επιλέξτε MySQL ή PostgreSQL (Οι κανόνες Free Tier είναι διαθέσιμοι σε ορισμένες διαμορφώσεις).
3. Ορίστε όνομα χρήστη/κωδικό πρόσβασης.
4. Βεβαιωθείτε ότι η παρουσία RDS βρίσκεται στο ίδιο VPC με το EC2.
5. Ρυθμίστε την Ομάδα ασφαλείας RDS ώστε να δέχεται μόνο συνδέσεις από την Ομάδα ασφαλείας EC2 (όχι από το κοινό).
Μόλις η βάση δεδομένων είναι ενεργή, πάρτε το τελικό σημείο RDS και συνδεθείτε σε αυτό από την εφαρμογή σας χρησιμοποιώντας το πρόγραμμα οδήγησης βάσης δεδομένων.
-
11. (Προαιρετικό) Ενεργοποίηση HTTPS με πιστοποιητικό SSL
Για την παραγωγή, το HTTPS είναι υποχρεωτικό. Τυπική μέθοδος:
– Χρησιμοποιήστε ένα domain (π.χ. από τη Route 53 ή άλλον καταχωρητή).
– Εγκατάσταση SSL μέσω του Let's Encrypt (Certbot) στο EC2.
Εν συντομία:
""μπας
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
«"
Ακολουθήστε τον οδηγό για να επιλέξετε έναν τομέα και να ενεργοποιήσετε την ανακατεύθυνση HTTPS.
-
12. Παρακολούθηση και Κόστος
Το AWS παρέχει το CloudWatch για την προβολή μετρήσεων όπως η CPU, το δίκτυο και συγκεκριμένα αρχεία καταγραφής. Θα πρέπει επίσης να παρακολουθείτε το κόστος σας για να μην χάσετε τίποτα.
Σημαντικές συμβουλές:
– Ενεργοποίηση ειδοποίησης χρέωσης στο CloudWatch (π.χ. ειδοποίηση εάν οι χρεώσεις υπερβαίνουν τα 5 $).
– Απενεργοποιήστε την παρουσία όταν δεν τη χρησιμοποιείτε.
– Αφαιρέστε τους αχρησιμοποίητους πόρους (εξισορροπητές φορτίου, EBS, ελαστικές διευθύνσεις IP, στιγμιότυπα), καθώς ενδέχεται να εξακολουθούν να επιβαρύνονται με κόστος.
-
Penutup
Συγχαρητήρια! Μάθατε τα βασικά για τη δημιουργία μιας εφαρμογής στο AWS χρησιμοποιώντας το EC2, την εκτέλεση μιας εφαρμογής web, τη ρύθμιση ενός Nginx reverse proxy και την μόνιμη λειτουργία του με το PM2. Αποκτήσατε επίσης μια επισκόπηση πρόσθετων υπηρεσιών όπως το RDS για βάσεις δεδομένων, το S3 για αποθήκευση και τα πιστοποιητικά HTTPS για ασφάλεια.
Αν θέλετε να ανεβάσετε επίπεδο, τα επόμενα βήματα είναι συνήθως:
– Αυτοματοποιημένη ανάπτυξη με CI/CD (GitHub Actions + SSH ή AWS CodeDeploy),
– Χρήση κοντέινερ με Docker και ενορχηστρώσεις όπως ECS ή EKS,
– Χρήση αρχιτεκτονικής χωρίς διακομιστή με Lambda + API Gateway.
Αν θέλετε, παρακαλώ προσδιορίστε τον τύπο της εφαρμογής που δημιουργείτε (Node.js, Laravel, Django, React, κ.λπ.) και τον σκοπό της (demo, production, μεγάλης κλίμακας). Μπορώ να προσαρμόσω το σεμινάριο με πιο συγκεκριμένα βήματα.