अमेझॉन वेब सर्व्हिसेस (AWS) वर ॲप्लिकेशन्स तयार करण्यावरील ट्यूटोरियल
ॲमेझॉन वेब सर्व्हिसेस (AWS) हे जगातील सर्वात लोकप्रिय क्लाउड कंप्युटिंग प्लॅटफॉर्मपैकी एक आहे. AWS वापरून, तुम्ही प्रत्यक्ष सर्व्हर खरेदी न करता, सर्व्हर स्पेस सेट न करता किंवा तुमच्या स्वतःच्या पायाभूत सुविधांची देखभाल न करता ॲप्लिकेशन्स तयार करू शकता आणि चालवू शकता. हा लेख तुम्हाला एका सामान्य पद्धतीचा वापर करून AWS वर एक साधे ॲप्लिकेशन तयार करण्याची प्रक्रिया समजावून सांगेल: कंप्युट सर्व्हिसेस (EC2) वापरून वेब ॲप्लिकेशन डिप्लॉय करणे, एक पर्याय म्हणून मॅनेज्ड डेटाबेस (RDS), आणि आवश्यक असल्यास स्टोरेज व डोमेन वापरणे. खालील उदाहरण जरी सर्वसाधारण असले तरी, तुम्ही ते अनेक प्रकारच्या ॲप्लिकेशन्ससाठी लागू करू शकता.
-
१. प्राथमिक तयारी: लेखा आणि मूलभूत संकल्पना
सुरुवात करण्यापूर्वी, तुमच्याकडे AWS खाते असल्याची खात्री करा. अनेक AWS सेवांमध्ये एक फ्री टियर (ठराविक मर्यादेत विनामूल्य) उपलब्ध असतो, जो सरावासाठी उत्तम आहे.
तुम्हाला समजून घेणे आवश्यक असलेल्या काही महत्त्वाच्या संकल्पना:
– प्रदेश: AWS डेटा सेंटरचे स्थान (उदाहरण: Singapore/ap-southeast-1). कमी लेटन्सीसाठी सर्वात जवळचा प्रदेश निवडा.
– IAM (आयडेंटिटी अँड ॲक्सेस मॅनेजमेंट): एक प्रवेश व्यवस्थापन प्रणाली. सर्वोत्तम पद्धत: दैनंदिन कामासाठी रूट अकाउंट वापरू नका.
– व्हीपीसी (व्हर्च्युअल प्रायव्हेट क्लाउड): एक आभासी नेटवर्क जिथे तुमच्या सेवा चालतात.
– सुरक्षा गट: सर्व्हरवरून येणाऱ्या/जाणाऱ्या प्रवेशाचे नियमन करण्यासाठी “फायरवॉल”.
या चार गोष्टी समजून घेतल्याने, तुम्हाला AWS च्या मूलभूत गोष्टी हाताळणे खूप सोपे जाईल.
-
२. IAM वापरकर्ते तयार करा आणि खाती सुरक्षित करा
सुरक्षा हे नेहमीच आमचे सर्वोच्च प्राधान्य आहे. रूट म्हणून AWS कन्सोलमध्ये लॉग इन करा, त्यानंतर:
१. IAM सेवा उघडा.
२. एक नवीन वापरकर्ता तयार करा (उदा. `admin-dev`) आणि AWS व्यवस्थापन कन्सोलमध्ये वापरकर्त्याला प्रवेश प्रदान करा तपासा.
३. परवानगी द्या: सरावासाठी तुम्ही AdministratorAccess वापरू शकता (परंतु प्रत्यक्ष प्रकल्पांमध्ये ते अधिक मर्यादित असावे).
4. सुरक्षा वाढवण्यासाठी MFA (मल्टी-फॅक्टर ऑथेंटिकेशन) सक्षम करा.
हे झाल्यावर, रूटमधून लॉग आउट करा आणि नव्याने तयार केलेल्या IAM युझरचा वापर करून लॉग इन करा.
-
३. ॲप्लिकेशन आर्किटेक्चर निश्चित करा
या ट्युटोरियलमध्ये, आपण एक साधे आर्किटेक्चर तयार करणार आहोत:
– EC2 : वेब ऍप्लिकेशन्स चालवणे (उदा. Node.js/Express, Python Flask, किंवा PHP).
– ऐच्छिक RDS: व्यवस्थापित MySQL/PostgreSQL डेटाबेस, जेणेकरून डेटा व्यवस्थितपणे साठवला जाईल.
– S3 (ऐच्छिक): प्रतिमा, दस्तऐवज किंवा बॅकअप यांसारख्या स्थिर फाइल्स साठवते.
– रूट 53 (पर्यायी): डोमेन व्यवस्थापित करा.
– क्लाउडवॉच : मूलभूत देखरेख.
जर तुम्ही नुकतीच सुरुवात करत असाल, तर सुरुवातीला तुमचे ॲप्लिकेशन्स चालवण्यासाठी EC2 वर लक्ष केंद्रित करा.
-
४. EC2 सर्व्हर तयार करा
अ) एक इन्स्टन्स तयार करा
१. EC2 सेवेमध्ये लॉग इन करा.
२. लाँच इन्स्टन्सवर क्लिक करा.
3. ऑपरेटिंग सिस्टम निवडा, उदाहरणार्थ उबंटू सर्व्हर 22.04 LTS.
४. इन्स्टन्सचा प्रकार निवडा: फ्री टियरसाठी `t2.micro` किंवा `t3.micro` वापरा (उपलब्धतेनुसार).
५. एक की पेअर तयार करा किंवा निवडा (उदा., `aws-key.pem`). `.pem` फाईल सुरक्षित ठेवा कारण ती SSH साठी वापरली जाईल.
ब) नेटवर्क आणि फायरवॉल कॉन्फिगरेशन
– इन्स्टन्स डिफॉल्ट VPC मध्ये असल्याची खात्री करा (फक्त सरावासाठी).
– सुरक्षा गट सेट करा:
– पोर्ट 22 (SSH) फक्त तुमच्या IP वरून (उदा. `My IP`)
– `0.0.0.0/0` चे पोर्ट 80 (HTTP) (सार्वजनिक)
– नंतर SSL वापरल्यास `0.0.0.0/0` वरून पोर्ट 443 (HTTPS).
टीप: SSH सर्वांसाठी खुले करणे धोकादायक आहे. IP पत्ते नेहमी प्रतिबंधित ठेवा.
लाँचवर क्लिक करा आणि इन्स्टन्स सुरू होण्याची प्रतीक्षा करा.
-
५. SSH द्वारे सर्व्हरवर लॉग इन करा.
विंडोजवर, तुम्ही WSL किंवा PuTTY वापरू शकता. macOS/Linux वर, तुम्ही ते थेट टर्मिनलवरून करू शकता.
१. परवानगी की बदला:
"`बॅश
chmod 400 aws-key.pem
"`
२. सर्वरवर SSH करा (EC2 वरील पब्लिक IPv4 वापरा):
"`बॅश
ssh -i aws-key.pem ubuntu@PUBLIC_IP
"`
यशस्वी झाल्यास, तुम्ही AWS उबंटू सर्व्हरवर असाल.
-
६. वेब सर्व्हर आणि ॲप्लिकेशन रनटाइम स्थापित करा
आधुनिक वेबसाठी मोठ्या प्रमाणावर वापरल्या जाणाऱ्या Node.js ॲप्लिकेशनचे हे एक उदाहरण आहे.
अ) आवश्यक गोष्टी अद्ययावत आणि स्थापित करा
"`बॅश
sudo apt update && sudo apt -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
नोड -व्ही
npm -v
"`
-
७. एक साधा अर्ज तयार करा
प्रोजेक्ट फोल्डर तयार करा:
"`बॅश
mkdir myapp && cd myapp
npm init -y
npm install express
"`
`index.js` फाईल तयार करा:
`js
const express = require(“express”);
const app = express();
app.get(“/”, (req, res) => {
res.send(“नमस्कार! तुमचे ॲप्लिकेशन AWS EC2 वर चालू आहे.”);
});
app.listen(3000, () => console.log(“सर्व्हर पोर्ट 3000 वर चालू आहे”));
"`
ॲप्लिकेशन चालवा:
"`बॅश
नोड इंडेक्स.जेएस
"`
ब्राउझरमधून ॲक्सेस करण्याचा प्रयत्न करा:
– `http://PUBLIC_IP:3000`
तथापि, सुरक्षा गटामध्ये पोर्ट 3000 सध्या उघडे नाही. आपण हे करू शकता:
१) सुरक्षा गटामध्ये पोर्ट ३००० उघडा, किंवा
२) रिव्हर्स प्रॉक्सी वापरा (अधिक शिफारसित) जेणेकरून ऍप्लिकेशन अंतर्गत पोर्टवर राहील परंतु पोर्ट 80/443 द्वारे ऍक्सेस केले जाऊ शकेल.
-
८. Nginx चा रिव्हर्स प्रॉक्सी म्हणून वापर (पोर्ट ८० द्वारे प्रवेश)
Nginx स्थापित करा:
"`बॅश
sudo apt install -y nginx
sudo systemctl nginx सक्षम करते
sudo systemctl nginx सुरू करा
"`
Nginx कॉन्फिगरेशन सेट अप करा:
"`बॅश
sudo nano /etc/nginx/sites-available/myapp
"`
कॉन्फिगरेशन सामग्री:
“`nginx
सर्व्हर {
80 ऐका;
सर्व्हर_नाव _;
स्थान / {
प्रॉक्सी_पास http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header अपग्रेड $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header होस्ट $host;
प्रॉक्सी_कॅशे_बायपास $http_अपग्रेड;
}
}
"`
कॉन्फिगरेशन सक्षम करा:
"`बॅश
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
सुडो nginx -t
sudo systemctl reload nginx
"`
आता प्रवेश करा:
– `http://PUBLIC_IP/`
ॲप्लिकेशन पोर्ट 3000 वर चालते, परंतु सर्वसामान्य जनता ते पोर्ट 80 द्वारे वापरते.
-
९. PM2 सह ॲप्लिकेशन्स कायमस्वरूपी चालवणे
SSH डिस्कनेक्ट झाल्यावर ॲप्लिकेशन क्रॅश होऊ नये यासाठी, PM2 वापरा:
"`बॅश
sudo npm install -g pm2
pm2 start index.js –name myapp
pm2 जतन करा
पीएम२ स्टार्टअप
"`
`pm2 startup` कमांड अतिरिक्त सूचना देईल. सर्व्हर रीस्टार्ट झाल्यावर ॲप्लिकेशन आपोआप सुरू होण्यासाठी, दाखवलेली कमांड चालवा.
-
१०. (ऐच्छिक) आरडीएस (RDS) सह डेटाबेस जोडणे
जर तुमच्या ॲप्लिकेशनला डेटाबेसची आवश्यकता असेल, तर RDS मुळे ते सोपे होते कारण AWS बॅकअप, पॅचिंग आणि स्केलिंगचे व्यवस्थापन करते.
लहान पावले:
१. आरडीएस सेवा उघडा → डेटाबेस तयार करा.
२. MySQL किंवा PostgreSQL निवडा (विशिष्ट कॉन्फिगरेशनवर फ्री टियर नियम उपलब्ध आहेत).
३. युझरनेम/पासवर्ड सेट करा.
4. RDS इन्स्टन्स EC2 च्या त्याच VPC मध्ये असल्याची खात्री करा.
5. RDS सुरक्षा गट फक्त EC2 सुरक्षा गटाकडून कनेक्शन स्वीकारेल (सार्वजनिक गटाकडून नाही) असे सेट करा.
एकदा डेटाबेस सुरू झाल्यावर, RDS एंडपॉइंट मिळवा आणि तुमच्या ॲप्लिकेशनमधून डेटाबेस ड्रायव्हर वापरून त्याला कनेक्ट करा.
-
११. (ऐच्छिक) SSL प्रमाणपत्रासह HTTPS सक्षम करा.
उत्पादनासाठी HTTPS अनिवार्य आहे. सर्वसाधारण पद्धत:
– डोमेन वापरा (उदा. Route 53 किंवा अन्य रजिस्ट्रारकडून).
– EC2 वर Let's Encrypt (Certbot) द्वारे SSL स्थापित करा.
थोडक्यात:
"`बॅश
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
"`
डोमेन निवडण्यासाठी आणि HTTPS पुनर्निर्देशन सक्षम करण्यासाठी विझार्डच्या सूचनांचे पालन करा.
-
१२. देखरेख आणि खर्च
AWS, CPU, नेटवर्क आणि विशिष्ट लॉग्स यांसारखे मेट्रिक्स पाहण्यासाठी CloudWatch पुरवते. तसेच, कोणतीही संधी गमावू नये म्हणून तुम्ही तुमच्या खर्चावरही लक्ष ठेवले पाहिजे.
महत्त्वाच्या सूचना:
– क्लाउडवॉचमध्ये बिलिंग अलार्म सक्षम करा (उदा. शुल्क $5 पेक्षा जास्त झाल्यास अलार्म).
वापरात नसताना इन्स्टन्स बंद करा.
– न वापरलेली संसाधने (लोड बॅलेंसर, ईबीएस, इलास्टिक आयपी, स्नॅपशॉट) काढून टाका कारण त्यांच्यामुळे खर्च येऊ शकतो.
-
बंद होत आहे
अभिनंदन! तुम्ही EC2 वापरून AWS वर ॲप्लिकेशन तयार करणे, वेब ॲप्लिकेशन चालवणे, Nginx रिव्हर्स प्रॉक्सी सेट करणे आणि PM2 वापरून ते नेहमी-चालू (always-on) ठेवणे याच्या मूलभूत गोष्टी शिकला आहात. तसेच, तुम्ही डेटाबेससाठी RDS, स्टोरेजसाठी S3 आणि सुरक्षेसाठी HTTPS सर्टिफिकेट्स यांसारख्या अतिरिक्त सेवांचा आढावा देखील घेतला आहे.
जर तुम्हाला लेव्हल वाढवायची असेल, तर पुढील पायऱ्या सहसा अशा असतात:
– CI/CD सह स्वयंचलित डिप्लॉयमेंट (GitHub Actions + SSH, किंवा AWS CodeDeploy),
– डॉकर आणि ईसीएस (ECS) किंवा ईकेएस (EKS) सारख्या ऑर्केस्ट्रेशनसह कंटेनर वापरणे,
– लॅम्डा + एपीआय गेटवेसह सर्वरलेस आर्किटेक्चरचा वापर करणे.
तुमची इच्छा असल्यास, कृपया तुम्ही तयार करत असलेल्या ॲप्लिकेशनचा प्रकार (Node.js, Laravel, Django, React, इत्यादी) आणि त्याचा उद्देश (डेमो, प्रोडक्शन, मोठ्या प्रमाणावर) नमूद करा. म्हणजे मी अधिक विशिष्ट पायऱ्यांसह ट्युटोरियलमध्ये बदल करू शकेन.