AWS
২২টি module — অফিসের সার্ভার র্যাক থেকে ঘণ্টার হিসাবে ভাড়া — ক্লাউড কেন, region ও availability zone, EC2 সার্ভার, IAM অনুমতি, S3 ও Boto3, Lambda ও DynamoDB, CloudFormation দিয়ে অবকাঠামো, আর load balancer সহ নিজে সেরে ওঠা আর্কিটেকচার। প্রতিটা ধাপ হাতে চালিয়ে।
কোন মডিউলে আছে মনে নেই? টপিকের নাম লিখলেই মডিউল দেখাবে।
ক্লাউড কেন — অফিসের র্যাক থেকে মিটারের বিলে
ক্লাউড আসার আগে সার্ভার কেনা মানে কী ছিল, CapEx আর OpEx-এর পার্থক্যটা আসলে কোথায়, ক্লাউড কোম্পানিগুলো কী বেচে, আর নিরাপত্তার দায় কোথায় AWS-এর শেষ হয়ে তোমার শুরু হয়।
সার্ভিস মডেল — IaaS, PaaS, SaaS
একই স্তূপ, শুধু হাতবদলের রেখাটা আলাদা জায়গায়। কোন মডেলে কে কী সামলায়, EC2 থেকে Lambda পর্যন্ত কী কী হারিয়ে যায়, তৈরি প্ল্যাটফর্ম কোথায় গিয়ে আর যথেষ্ট থাকে না, আর সবচেয়ে দামি ভুলটা — EC2-র OS কে প্যাচ করে।
গ্লোবাল ইনফ্রাস্ট্রাকচার — region, zone আর edge
AWS-এর মানচিত্র। region কী আর নামগুলো কীভাবে পড়তে হয়, availability zone কেন তিনটে, local zone ও edge location কোথায় বসে, কোন region বাছবে সেটা কোন তিনটে প্রশ্নে ঠিক হয়, আর এক জোনে সব রাখার যে ফাঁদ।
খরচ — মিটার, free tier আর হাত পুড়িয়ে না ফেলা
AWS আসলে কী কী মাপে, বিল কীভাবে অপ্রত্যাশিত হয়ে যায়, free tier কোথায় শেষ, budget alarm কীভাবে বসায়, tag দিয়ে খরচ কীভাবে চিনবে, আর কাজ শেষে কী কী মুছতে হয়।
EC2 — প্রথম সার্ভারটা চালু করা
ভার্চুয়াল সার্ভার আসলে কী, AMI দিয়ে কোন নকশা বাছো, instance type-এর নামে কী লেখা থাকে, key pair-এর দুটো চাবি কে কী করে, chmod 400 কেন বাধ্যতামূলক, launch-এর পাঁচটা অবস্থা, আর SSH হ্যান্ডশেক ধাপে ধাপে।
নেটওয়ার্ক নিরাপত্তা — security group আর NACL
Security group আসলে একটা অতিথি-তালিকা, দেয়াল নয়। নিয়মের চারটে ঘর, `0.0.0.0/0` আসলে কতটা খোলা, stateful মানে কী, NACL কেন আলাদা, একটা আসল ঘটনার মতো firewall অডিট, আর যে একটা অভ্যাস firewall-কে নিজে থেকে ঠিক রাখে।
User data আর cloud-init — সার্ভার নিজেই নিজেকে সাজায়
Launch-এর সময় একটা স্ক্রিপ্ট দিয়ে দিলে সার্ভার প্রথম boot-এই নিজেকে সাজিয়ে নেয়। স্ক্রিপ্টের অংশগুলো, root হিসেবে একবারই চলার মানে, cloud-init-এর লগ কীভাবে পড়বে, apt-dnf গোলমাল, আর একটা পুরো ব্যর্থতা ধাপে ধাপে খুঁজে বের করা।
Launch template — একবার লেখো, যতবার দরকার চালাও
পঞ্চাশটা সার্ভার ক্লিক করে বানানো কেন ভুল উত্তর, টেমপ্লেট কী কী ধরে রাখে, একটা চালু সার্ভার থেকে টেমপ্লেট বের করা, এক কমান্ডে তিনটে সার্ভার, সংস্করণ কীভাবে কাজ করে, আর Default-Latest গোলমাল — যেটা একটা fleet-এ দুরকম সার্ভার তৈরি করে।
IAM ১ — ব্যবহারকারী, দল আর ভূমিকাভিত্তিক অনুমতি
প্রতিষ্ঠানের মাপে এক চাবি দিয়ে কাজ চলে না কেন, authentication আর authorization দুটো আলাদা প্রশ্ন, root অ্যাকাউন্ট আসলে কী আর প্রথম দিনেই তার সাথে কী করতে হয়, user আর group-এর ভাগাভাগি, তিনটে অসম্ভব জিনিস যা সবাই চেষ্টা করে, আর অনুমতি আসলে কীভাবে বাড়ে।
IAM ২ — Role, আর সার্ভারের নিজের পরিচয়
একটা সার্ভারের চাবি কোথায় রাখবে — তিনটে খারাপ উত্তর আর একটা সঠিক উত্তর। Role কী, তার দুটো নথি কোনটা কী বলে, instance profile দিয়ে সার্ভার কীভাবে পরিচয় পায়, SDK কেন নিজে নিজেই খুঁজে নেয়, hardcoded চাবির আসল পরিণতি, আর assume-role-এর আউটপুট ঘর ধরে ধরে।
IAM ৩ — Policy-র গঠন আর সিদ্ধান্তের যুক্তি
অভিনেতা আর নিয়মের বই আলাদা। Policy-র JSON ঘর ধরে ধরে, `Version` ঘরটা আসলে কী, Action আর ARN কীভাবে পড়ে, সিদ্ধান্তটা ঠিক কীভাবে নেওয়া হয়, explicit deny কেন অপরাজেয়, আর একটা দৃশ্যপট চালিয়ে প্রমাণ করা।
IAM ৪ — Federation, SSO আর অস্থায়ী token
দু-হাজার কর্মীর জন্য দু-হাজার IAM ব্যবহারকারী কেন ভুল উত্তর, federation আসলে কী, সাইন-ইনের প্রবাহটা ধাপে ধাপে, permission set কীভাবে কাজ করে, একজন ডেভেলপারের দিন কেমন দেখতে, CI pipeline-ও কীভাবে চাবিহীন হয়, আর STS-এর চারটে দরজা।
AWS CLI — কনসোল থেকে টার্মিনালে
CLI কেন কনসোলের চেয়ে আলাদা, একটা কমান্ডের পাঁচটা অংশ, `aws configure` আসলে কোথায় কী লেখে, profile দিয়ে একাধিক অ্যাকাউন্ট, output ফরম্যাট চারটে, `--filters` আর `--query`-র আসল পার্থক্য, আর দলিল মুখস্থ না করে কমান্ড খুঁজে বের করার পদ্ধতি।
S3 — অবজেক্ট স্টোরেজ, আর যা ফাইলসিস্টেম নয়
ব্লক আর অবজেক্ট স্টোরেজের আসল পার্থক্য, bucket ও key, নাম বিশ্বব্যাপী অনন্য হওয়ার ফল, ছ-টা storage class আর তাদের দুটো অক্ষ, lifecycle rule দিয়ে খরচ নিয়ন্ত্রণ, এগারোটা নয়-এর সৎ ব্যাখ্যা, আর S3-কে ফাইলসিস্টেম ভাবার পাঁচটা ফাঁদ।
Boto3 — Python থেকে AWS চালানো
CLI যা পারে না, কোড পারে। Boto3-র দুটো মডেল — client আর resource, credentials কোথা থেকে আসে আর কোন লাইনটা লিখতে হয় না, paginator ছাড়া যে বাগটা নীরবে ঘটে, ভুলের কোড পড়া, আর একটা ফোল্ডার আপলোড ও একটা অডিট — দুটোই কাজের।
Lambda — সার্ভার ছাড়া কোড, আর একটা শিক্ষামূলক ব্যর্থতা
কোন স্তরটা কে সামলায়, FaaS-এর বিলিং কেন আলাদা আকৃতির, handler আর event, deployment package ও dependency, cold start, আর এই কোর্সের সবচেয়ে শিক্ষামূলক ব্যর্থতা — একটা কমান্ড `StatusCode: 200` বলছে আর কিছুই হচ্ছে না।
DynamoDB — আর পুরো pipeline-টা একসাথে
Relational আর key-value-র আসল পার্থক্য কোন প্রশ্নটা করা যায় তাতে, partition key-র একমুখী সিদ্ধান্ত, schema না থাকা কী কেনে আর কী খরচ করায়, capacity-র দুটো মডেল, scan আর query-র দামের ফারাক, আর শেষে একটা সম্পূর্ণ serverless pipeline — কোনো সার্ভার ছাড়াই।
CloudTrail — কে কী করেছে, আর কখন
Metric আর audit trail দুটো আলাদা প্রশ্নের উত্তর দেয়। Event history কত দিন থাকে আর কেন সেটা যথেষ্ট নয়, একটা trail বানানো, একটা event-এর ঘরগুলো পড়া, management আর data event-এর পার্থক্য, retention-এর খরচের ফাঁদ, আর একটা আসল তদন্ত ধাপে ধাপে।
CloudFormation ১ — অবকাঠামো একটা ফাইলে
হাতে ক্লিক করার চারটে দাম, IaC-র সরঞ্জামগুলোর সৎ তুলনা, template আর stack-এর পার্থক্য, template-এর ঘরগুলো, একটা resource-এর আকৃতি, parameter আর তার সীমা, আর সেই hardcoded AMI id-টা যেটা একটা template-কে এক region-এর করে ফেলে।
CloudFormation ২ — একটা পূর্ণ stack, তৈরি আর ধ্বংস
নেটওয়ার্কের ছ-টা resource আর প্রতিটার কারণ, সেই একটা নির্ভরতা যেটা নিজে থেকে বোঝা যায় না, metadata-service শক্ত করা, deploy করা আর event পড়া, একটা ব্যর্থতা ও rollback, ব্রাউজারে যাচাই, আর এক কমান্ডে পুরোটা মুছে ফেলা।
Load balancer আর auto scaling — নিজে সেরে ওঠা আর্কিটেকচার
একটা সার্ভারের দুটো সমস্যা, balancer-এর পরিবার আর কোনটা বাছবে, target group ও health check, scaling group-এর তিনটে সংখ্যা, zone জুড়ে ছড়ানো, grace period, খরচের সত্যিটা, আর একটা chaos পরীক্ষা — সার্ভার মেরে দেখা সেটা নিজে ফিরে আসে কি না।
ক্যাপস্টোন — তিন স্তরের একটা অ্যাপ্লিকেশন, হাতে একবার তারপর pipeline-এ
অটোমেশনের আগে যেটা থাকতে হয়, তিনটে স্তর আর তাদের মাঝের দুটো সীমানা, চালানোর মাপ বনাম build করার মাপ, reverse proxy-র ভেতরে একটা অনুরোধের পুরো পথ, provision আর deploy-র ভাগাভাগি, গোপন কথা রাখার সৎ উপায়, systemd বনাম `&`, আর শেষে একই script একটা pipeline-এ — host key, OIDC পরিচয় আর প্রমাণের তালিকা সহ।