Elastic Compute Cloud

EC2 এর পূর্ণরূপ হলো Elastic Compute Cloud। সহজ বাংলায় এটি একটি Virtual Computer। আপনার ল্যাপটপে যেমন CPU, RAM, এবং Hard Disk আছে, AWS-এর বিশাল ডাটা সেন্টারে থাকা হাজার হাজার শক্তিশালী সার্ভার থেকে আপনি আপনার প্রয়োজনমতো অংশ ভাড়া নিচ্ছেন।

EC2 এর ‘Under-the-hood’ মেকানিক্স (৫টি পিলার)

একটি সার্ভার লঞ্চ করার সময় আপনাকে এই ৫টি জিনিস সিলেক্ট করতে হয়। এগুলো বুঝলে আপনি যেকোনো ক্লাউড ইন্টারভিউ ক্র্যাক করতে পারবেন:

  1. AMI (Amazon Machine Image): এটি হলো সার্ভারের Operating System (OS)। আপনি কি Windows চালাবেন নাকি Linux? AMI হলো সেই ওএস-এর একটি ব্লুপ্রিন্ট বা টেম্পলেট।
  1. Instance Type (Family): এটি ঠিক করে আপনার সার্ভারের শক্তি কত হবে।

T3.micro/T2.micro: এগুলো ছোট কাজ বা শেখার জন্য (ফ্রি টিয়ারে পাওয়া যায়)।

C-Series (Compute): যদি অনেক বেশি ক্যালকুলেশন লাগে।

R-Series (RAM): যদি ডাটাবেসের মতো ভারি মেমোরি লাগে।

  1. Storage (EBS - Elastic Block Store): এটি হলো আপনার সার্ভারের Hard Drive। সার্ভার ডিলিট করে দিলেও আপনি চাইলে এই হার্ড ড্রাইভের ডাটা সেভ করে রাখতে পারেন।

  2. Security Groups (The Firewall): এটি ইন্টারভিউয়ের জন্য খুব ইম্পর্ট্যান্ট। এটি একটি Virtual Firewall।

  1. Key Pair: এটি হলো আপনার ডিজিটাল পাসওয়ার্ড। সার্ভারে সিকিউরভাবে লগইন করার জন্য একটি .pem বা .ppk ফাইল ডাউনলোড করতে হয়। এটি ছাড়া আপনি সার্ভারে ঢুকতে পারবেন না।

আপনার সার্ভারে ওয়েবসাইট চলছে না, ট্রাবলশুট করার প্রথম ধাপ কী?

AWS EC2 Learning Note - Day 01

Topic: Basics of EC2 Instance Launching


☁️ Core Concepts


🛠️ Key Components during Launch

| Component | Purpose | | :— | :— | | Tags | সার্ভার চেনার লেবেল। (Key: Name, Value: My-Server) | | Key Pair | সার্ভারে ঢোকার ডিজিটাল চাবি (.pem ফাইল)। এটি ছাড়া লগইন করা অসম্ভব। | | Security Group | ভার্চুয়াল ফায়ারওয়াল। কোন পোর্ট (SSH-22, HTTP-80) খোলা থাকবে তা ঠিক করে। | | User Data | অটোমেশন স্ক্রিপ্ট। সার্ভার প্রথমবার চালু হওয়ার সময় এটি রান হয়। |


🚀 Important Linux Commands (Ubuntu)

সার্ভারে লগইন করার পর প্রাথমিক কাজ:

  1. sudo apt update -y : সিস্টেম প্যাকেজ লিস্ট আপডেট করা।
  2. sudo apt install apache2 -y : ওয়েব সার্ভার ইনস্টল করা।
  3. sudo systemctl status apache2 : সার্ভার চলছে কি না চেক করা।
  4. uptime : সার্ভার কতক্ষণ ধরে চলছে তা দেখা।

⚠️ Safety Warning (Cost Saving)

AWS Security Group: Inbound vs Outbound

📥 Inbound Rules (Traffic coming IN)

📤 Outbound Rules (Traffic going OUT)

💡 Pro-Tip: Stateful Nature

🚀 Nginx vs Apache

🤖 Infrastructure Automation (User Data)

📋 Snapshot vs Image vs Template

#!/bin/bash
# সিস্টেম আপডেট করা
sudo apt update -y

# Nginx ইনস্টল করা
sudo apt install nginx -y

# index.html ফাইলে আপনার কাস্টম মেসেজটি লিখে দেওয়া
# এখানে 'tee' কমান্ড ব্যবহার করা হয়েছে যাতে রুট পারমিশন নিয়ে ফাইল রাইট করা যায়
sudo echo "Hello from awolad template pc, IP is $(hostname -i)" | sudo tee /var/www/html/index.html

Auto Scaling (অটো স্কেলিং)

অটো স্কেলিং হলো একটি মেকানিজম বা ব্যবস্থা যা আপনার ওয়েবসাইটের ট্রাফিক বা লোড অনুযায়ী সার্ভারের সংখ্যা অটোমেটিক বাড়ায় বা কমায়।

উদাহরণ: ধরুন, আপনি AWS-এ একটি “Auto Scaling Group” তৈরি করলেন এবং বলে দিলেন যে আপনার সবসময় অন্তত ২টো সার্ভার রানিং থাকতে হবে। এখন যদি কোনো কারণে ১টা সার্ভার ক্রাশ করে বা আপনি ডিলিট করে দেন, অটো স্কেলিং সাথে সাথে সেটা বুঝতে পারবে এবং নিজে থেকেই নতুন আরেকটি সার্ভার লঞ্চ করে দেবে (যাকে বলে Self-healing)।

২. Dynamic Scaling (ডাইনামিক স্কেলিং)

ডাইনামিক স্কেলিং হলো অটো স্কেলিংয়ের একটি উন্নত নিয়ম (Policy)। এটি রিয়েল-টাইম ডিমান্ডের ওপর ভিত্তি করে কাজ করে। অর্থাৎ, আপনি কিছু কন্ডিশন বা শর্ত সেট করে দেবেন।

শর্তগুলো হতে পারে এমন:

📈 Auto Scaling vs Dynamic Scaling

অটো স্কেলিং (Auto Scaling) সেটআপ করার প্রসেসটি অনেকটা একটি চেইন রিঅ্যাকশনের মতো।

1. ১. ধাপ: AMI (Amazon Machine Image) তৈরি করা

সবার আগে আপনাকে একটি “মাস্টার কপি” বা ইমেজ তৈরি করতে হবে।

2. ২. ধাপ: Launch Template তৈরি করা এটি হলো আপনার সার্ভারের “রেসিপি”।

3. ৩. ধাপ: Auto Scaling Group (ASG) তৈরি করা এখন আমরা সেই সিস্টেম বানাবো যা পিসি সংখ্যা কন্ট্রোল করবে।

*4. ৪. ধাপ: Dynamic Scaling Policy সেটআপ করা (The “Brain”)

ASG তৈরি করার সময় বা পরে আপনি Scaling Policies সেট করতে পারবেন।

5. ৫. ধাপ: টেস্টিং (The “Fire” Test)

সব সেট হয়ে গেলে এখন পরীক্ষা করার পালা:

আপনি যখন Horizontal Scaling করে অনেকগুলো সার্ভার (EC2) তৈরি করবেন, তখন আপনার সামনে একটি বড় সমস্যা আসবে: “ইউজার কোন আইপি-তে রিকোয়েস্ট পাঠাবে?”

ইউজার তো আর ৫টা আইপি মনে রাখবে না। এখানেই আসে Load Balancer। এটি একটি ট্রাফিক পুলিশের মতো কাজ করে যে আগত ইউজারদের বিভিন্ন সার্ভারে ভাগ করে দেয়।AWS-এ এই Load Balancer-কে সাধারণভাবে বলা হয় ELB (Elastic Load Balancing)। এর ভেতরেই মূলত ALB এবং NLB থাকে। সহজভাবে বুঝে নিন:

১. ELB (Elastic Load Balancing)

এটি হলো মেইন আমব্রেলা বা ক্যাটাগরি। AWS-এর যেকোনো লোড ব্যালেন্সিং সার্ভিসকে একত্রে ELB বলা হয়। এর তিনটি প্রধান প্রকারভেদ আছে:

২. ALB (Application Load Balancer) — স্মার্ট পুলিশ

এটি সবচেয়ে বেশি ব্যবহৃত হয় (আপনার ChatApp বা পোরফোলিওর জন্য এটি সেরা)। এটি Layer 7 (HTTP/HTTPS) এ কাজ করে।

৩. NLB (Network Load Balancer) — সুপার ফাস্ট পুলিশ

এটি Layer 4 (TCP/UDP) এ কাজ করে। এটি রিকোয়েস্টের ভেতর কী আছে তা দেখে না, শুধু আইপি আর পোর্ট দেখে।

⚖️ Load Balancing (ELB)