EC2 এর পূর্ণরুপ হচ্ছে ইলাস্টিক ক্লাউড কম্পিউটিং। যা হচ্ছে ভার্চুয়াল কম্পিউটার, যার কনফিগারেশন প্রয়োজন অনুযায়ী বাড়ানো কমানো যায়। আমরা একটা EC2 ইনিস্ট্যান্স তৈরি করব এবং একটা সিম্পল নোড প্রজেক্ট রান করব।
EC2 নিয়ে কাজ করার জন্য AWS একাউন্ট থাকা লাগবে। একাউন্ট তৈরি করা যাবে https://aws.amazon.com ঠিকানায়। সাইনআপ করার সময় পেমেন্ট প্রোফাইল যোগ করতে হবে। যদিও শুরুর দিকে কোন বিল কাটবে না। উল্টো ১০০ ডলার ক্রেডিট পাওয়া যাবে।
একাউন্ট তৈরি করার পর AWS কনসোলে যাবো। এরপর সার্চবারে EC2 লিখে সার্চ করব।

এখান থেকে Launch Instance এ ক্লিক করব। ডিফল্ট ভাবে Amazon Linux সিলেক্ট করা থাকবে। এবং Instance type সিলেক্ট করা থাকবে। t3.micro। এই t3.micro ব্যবহার করব, ইউজেজ বেশি না হলে এটাতে কোন বিল আসবে না। এরপর Key pair অপশনে যাবো।

এখানে যদি আগের কোন কী তৈরি করা না থাকে, তাহলে নতুন একটা key pair তৈরি করব। এটা গুরুত্বপূর্ণ। এটা দিয়ে আমরা আমাদের সার্ভারে (EC2 ইনিস্ট্যান্সে) লগিন করব।

একটা নাম দিয়ে create key pair এ ক্লিক করলে তা ডাউনলোড হবে। যা ব্যবহার করে আমরা EC2 তে লগিন করব।
বাকি কনফিগারেশন যেভাবে আছে, সেভাবে রেখে Launch instance এ ক্লিক করব। তাহলে আমাদের প্রথম EC2 ইন্সট্যান্স তৈরি হয়ে যাবে।
EC2 ইনিস্ট্যান্স এক্সেস
EC2 এক্সেস অন্য যে কোন VPS এক্সেসের মতই। এর জন্য প্রথমে ডাউনলোডকৃত .pem ফাইল এর পারমিশন পরিবর্তন করে নিব। নিজ কম্পিউটারের কমান্ডলাইন বা টার্মিনাল থেকে নিচের কমান্ড রান করবঃ
chmod 400 mykey.pem
এরপর কমান্ডলাইন থেকে ec2 ইনিস্ট্যান্স এভাবে এক্সেস করবঃ
ssh -i mykey.pem ec2-user@<EC2_PUBLIC_IP>
এখানে EC2 এর পাবলিক আইপি পাওয়া যাবে aws কনসোল থেকে। EC2 তে গিয়ে বামপাশে Instance এ ক্লিক করব। এরপর যে ইনিস্ট্যান্সের পাবলিক আইপি লাগবে, তা ক্লিক করলে বিস্তারিত তথ্য দেখা যাবে। সেখানে পাবলিক আইপিও পাওয়া যাবে।
একটা নড প্রজেক্ট ডিপ্লয়
আমরা অ্যামাজন লিনাক্স ব্যবহার করছি। যা apt এর পরিবর্তে yum প্যাকেজ ম্যানেজার ব্যবহার করে। তাই এভাবে প্রথমে সিস্টেম আপডেট করে নিবঃ
sudo yum update -y
এরপর Node JS ইন্সটল করবঃ
sudo dnf install nodejs -y
ইন্সটল হয়েছে কিনা, তা ভেরিফাই করবঃ
node -v
npm -v
প্রজেক্ট তৈরি
আমরা সাধারণত ইউজার ফোল্ডারে থাকব। সেখানে একটা ফোল্ডার তৈরি করে নিবঃ
mkdir myproject
cd myproject
এই প্রজেক্টে একটা নোড প্রজেক্ট তৈরি করব এবং এক্সপ্রেস ইন্সটল করবঃ
npm init -y
npm install express
এবার একটা সিম্পল এক্সপ্রেস অ্যাপ তৈরি করবঃ
nano index.js
এখানে লিখবঃ
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello from Amazon Linux EC2!');
});
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
প্রথমে Ctrl+O প্রেস করে এন্টার প্রেস করব। এরপর Ctrl+X প্রেস করে বের হবো।
এবার এই প্রজেক্ট রান করবঃ
node index.js
এখন http://EC2_PUBLIC_IP:3000 ঠিকানায় গেলে Hello from Amazon Linux EC2! লেখা দেখতে পারার কথা। না পারলে আমাদের EC2 ইনিস্ট্যান্সের 3000 পোর্ট ওপেন করে নিতে হবে।
পোর্ট ওপেন করা
EC2 → Instances → এরপর নির্দিষ্ট ইনিস্টয়ান্স সিলেক্ট করার পর Security ট্যাবে ক্লিক করবঃ

এখানে সিকিউরিটি গ্রুপ দেখাবে। এই সিকিউরিটি গ্রুপ ওপেন করব। তারপর Edit inbound rules এ ক্লিক করব।

এখানে Add rule এ ক্লিক করব।
- Type: Custom TCP
- Port range:
3000 - Source:
0.0.0.0/0সেট করব।
0.0.0.0/0 মানে হচ্ছে যে কেউ এই সার্ভারের এই পোর্ট এক্সেস করতে পারবে।
এবার ব্রাউজারে http://EC2_PUBLIC_IP:3000 গেলে লেখা দেখব Hello from Amazon Linux EC2!। এখানে মনে রাখতে হবে http তেই যেন কল করি। https এ কল করলে লোড হবে না।
এখন যদি আমরা টার্মিনাল ক্লোজ করি, তাহলে নোড প্রজেক্টও ক্লোজ হয়ে যাবে। এটা কন্টিনিউয়াসলি রান করতে চাইলে pm2 এর সাহায্য নিতে পারি। তার জন্য নিচের কমান্ড গুলো রান করবঃ
sudo npm install -g pm2
pm2 start index.js --name mynodeapp
pm2 startup
pm2 save
এর আগে VPS ম্যানেজমেন্ট নিয়ে বিস্তারিত লিখেছি, তা দেখতে পারেন। এছাড়া নিচের লেখা গুলোও দেখতে পারেনঃ