গত পনেরো বছরে আমি যত ইঞ্জিনিয়ারের সাথে কাজ করেছি — একজন টেকনিক্যাল ম্যানেজার ও টিম লিড হিসেবে — তাদের সবারই একটি LinkedIn প্রোফাইল আছে। খুব কম জনেরই একটি ব্যক্তিগত ওয়েবসাইট আছে। এই ফাঁকটাই একটি সুযোগ, এবং এটি বন্ধ করা বেশিরভাগ মানুষ যতটা ভাবেন তার চেয়ে সহজ।
কেন একটি ব্যক্তিগত ওয়েবসাইট সত্যিই গুরুত্বপূর্ণ
আপনি নিজের গল্পের মালিক হন
LinkedIn, GitHub এবং জব বোর্ড আপনার এমন একটি সংস্করণ দেখায় যা তাদের লেআউট ও অ্যালগরিদম দ্বারা গঠিত। একটি ব্যক্তিগত সাইটই একমাত্র জায়গা যেখানে আপনি গল্পটা নিয়ন্ত্রণ করেন: কোন প্রজেক্ট সামনে থাকবে, কোন অর্জনগুলো গুরুত্ব পাবে, আপনার দক্ষতা কীভাবে গ্রুপ করা থাকবে। কোনো ফিড অ্যালগরিদম ঠিক করে দেয় না যে একজন রিক্রুটার প্রথমে আপনার সেরা কাজ দেখবেন কিনা।
এটিই প্রথম সার্চ রেজাল্ট যা সত্যিই আপনি
এখনই নিজের নাম সার্চ করে দেখুন। যদি পরিষ্কার টাইটেল ও বর্ণনা সহ একটি ব্যক্তিগত সাইট প্রথম কয়েকটি ফলাফলে না থাকে, তাহলে আপনি সেই জায়গাটা যাদের সাথে আপনার নাম মিলে যায় তাদের হাতে — অথবা কারো হাতেই না — ছেড়ে দিচ্ছেন। আপনার নাম ডোমেইন হিসেবে ব্যবহার করা এবং ধারাবাহিক মেটাডেটা সহ একটি সাইট ঠিক সেই কোয়েরির জন্য র্যাঙ্ক করার প্রবণতা রাখে যা সবচেয়ে গুরুত্বপূর্ণ: আপনার নাম এবং আপনার পদবি।
এটি শুধু রেজ্যুমে-র লাইন নয়, দক্ষতা প্রমাণ করে
আপনি যদি ইনফ্রাস্ট্রাকচারের কাছাকাছি কোথাও কাজ করেন, তাহলে এটাই সবচেয়ে বেশি গুরুত্বপূর্ণ। রেজ্যুমেতে "AWS" স্কিল হিসেবে লেখা সস্তা। একটি সাইট যা সত্যিই S3, CloudFront এবং Route 53-তে চলছে — একটি আসল TLS সার্টিফিকেট ও সামনে একটি CDN সহ — তা কাজের একটি ছোট কিন্তু যাচাইযোগ্য প্রমাণ। যে কেউ টেকনিক্যাল ব্যক্তি আপনার DNS বা রেসপন্স হেডার চেক করলে, শুধু আপনার লেখা শব্দ নয়, বরং আপনার নেওয়া আর্কিটেকচার সিদ্ধান্তগুলো দেখতে পাবে।
এটি লেখার জন্য একটি টেকসই জায়গা
আপনার নিজের ডোমেইনে লেখা একটি ব্লগ পোস্ট কোনো প্ল্যাটফর্ম তার অ্যালগরিদম বদলালে বা একটি ফিচার বন্ধ করে দিলে হারিয়ে যায় না। এটি ক্রমান্বয়ে বাড়ে — পুরনো পোস্টগুলো লেখার অনেক পরেও সার্চে পাওয়া যেতে থাকে, ঠিক যেমনটা এখন হচ্ছে এই ব্লগের প্রথম পোস্টের সাথে।
অতিরিক্ত খরচ বা জটিলতা ছাড়াই AWS-এ কীভাবে হোস্ট করবেন
একটি ব্যক্তিগত সাইট ভালোভাবে চালাতে সার্ভার, কন্টেইনার বা মাসিক হোস্টিং বিল লাগে না। এই সাইটটি ঠিক সেই আর্কিটেকচারে চলে যা আমি যেকোনো কাউকে সুপারিশ করব: একটি স্ট্যাটিক সাইট (সাধারণ HTML/CSS, কোনো বিল্ড স্টেপ ছাড়াই) একটি প্রাইভেট S3 বাকেট থেকে CloudFront-এর পেছনে সার্ভ করা হয়, সাথে ACM থেকে একটি ফ্রি TLS সার্টিফিকেট এবং Route 53-তে DNS। ব্যক্তিগত সাইটের ট্রাফিক লেভেলে এটির খরচ মাসে কয়েক পয়সা, এবং এটি বড় বড় কোম্পানি স্কেলে স্ট্যাটিক অ্যাসেটের জন্য যে একই প্যাটার্ন ব্যবহার করে, ঠিক সেটাই।
এক লাইনে আর্কিটেকচার
Route 53 (আপনার ডোমেইন) নির্দেশ করে CloudFront-কে (CDN + HTTPS), যা একটি প্রাইভেট S3 বাকেট থেকে Origin Access Control ব্যবহার করে কন্টেন্ট আনে — ফলে বাকেটটি নিজে কখনও পাবলিকলি অ্যাক্সেসযোগ্য থাকে না, শুধু CloudFront এটি পড়তে পারে।
সংক্ষেপে ধাপগুলো
- Route 53-এ আপনার ডোমেইন রেজিস্টার করুন ও একটি হোস্টেড জোন তৈরি করুন (অথবা অন্য কোথাও রেজিস্টার করা থাকলে সেখানে DNS ট্রান্সফার করুন)।
-
একটি প্রাইভেট S3 বাকেট তৈরি করুন আপনার
ডোমেইনের নামে এবং আপনার সাইট ফাইল আপলোড করুন —
বাকেটের রুটে
index.html। কোনো "স্ট্যাটিক ওয়েবসাইট হোস্টিং" টগলের প্রয়োজন নেই; এটি প্রাইভেটই থাকে। -
ACM-এ একটি ফ্রি TLS সার্টিফিকেট রিকোয়েস্ট করুন,
বিশেষভাবে
us-east-1রিজিওনে — CloudFront শুধু সেখানে ইস্যু করা সার্টিফিকেটই গ্রহণ করে, আপনার বাকেট যেখানেই থাকুক না কেন। Route 53-তে একটি DNS রেকর্ডের মাধ্যমে এটি ভ্যালিডেট করুন। - CloudFront-এ একটি Origin Access Control (OAC) তৈরি করুন — এটিই একটি প্রাইভেট বাকেটকে প্রাইভেট রাখতে দেয়, যখন CloudFront তবুও এটি সার্ভ করে।
- CloudFront ডিস্ট্রিবিউশন তৈরি করুন, এটিকে আপনার বাকেটের S3 REST এন্ডপয়েন্টে (ওয়েবসাইট এন্ডপয়েন্ট নয়) নির্দেশ করুন, OAC সংযুক্ত করুন, আপনার ACM সার্টিফিকেট সংযুক্ত করুন, এবং আপনার ডোমেইনকে অল্টারনেট ডোমেইন নেম (CNAME) হিসেবে সেট করুন।
- CloudFront আপনাকে যে বাকেট পলিসি দেয় তা প্রয়োগ করুন, যা শুধুমাত্র সেই নির্দিষ্ট ডিস্ট্রিবিউশনে রিড অ্যাক্সেস সীমাবদ্ধ করে।
-
একটি অ্যালিয়াস A রেকর্ড ব্যবহার করে Route 53-কে
CloudFront-এর দিকে নির্দেশ করুন (সাধারণ CNAME
নয়) — এটিই বেয়ার ডোমেইনকে, শুধু
wwwসাবডোমেইন নয়, সঠিকভাবে রিজলভ করতে দেয়।
এই প্রতিটি ধাপ — সঠিক CLI কমান্ড এবং যেসব ভুল মানুষকে সবচেয়ে বেশি বিভ্রান্ত করে (সার্টিফিকেট রিজিওন, অরিজিন টাইপ মিসম্যাচ, অ্যালিয়াস অর্ডারিং) সহ — এই সাইট ডিপ্লয় করতে আমি যে একই রানবুক ব্যবহার করি সেটাই। যদি আপনি সম্পূর্ণ বিস্তারিত, কপি-পেস্টযোগ্য সংস্করণ চান, তাহলে এই পোস্টটিকে একটি মানচিত্র হিসেবে নিন এবং প্রথমবার ধীরে ধীরে কাজ করুন; দ্বিতীয় ডিপ্লয়ে মাত্র কয়েক মিনিট লাগবে।
পরবর্তীতে আপডেট ডিপ্লয় করা
একবার লাইভ হয়ে গেলে, একটি পরিবর্তন শিপ করা মাত্র দুটি কমান্ডের ব্যাপার: আপনার ফাইলগুলো বাকেটে সিঙ্ক করুন, তারপর CloudFront ক্যাশ ইনভ্যালিডেট করুন যাতে দর্শকদের পুরনো সংস্করণের মেয়াদ শেষ হওয়ার জন্য অপেক্ষা করতে না হয়।
aws s3 sync ./public s3://your-bucket-name --delete
aws cloudfront create-invalidation --distribution-id YOUR_DIST_ID --paths "/*"
যদি আপনি এই প্রতিটি AWS সিদ্ধান্তের পেছনের গভীর "কেন" জানতে চান — শুধু ক্লিক-পাথ নয় — তাহলে AWS Certified Solutions Architect স্টাডি গাইডই একমাত্র রিসোর্স যা আমি যেকোনো ভিডিও কোর্সের আগে একজন ব্যাকএন্ড ইঞ্জিনিয়ারকে দেখাতে চাইব; এই পোস্টের আর্কিটেকচারের পেছনে ঠিক এই একই জ্ঞান কাজ করছে।
Amazon-এ দাম দেখুন →সৎ ট্রেডঅফ
S3 ও CloudFront-এ একটি স্ট্যাটিক সাইট সার্ভার-সাইড কোড চালাতে পারে না, তাই লগইন, ডেটাবেস বা ডায়নামিক রেন্ডারিং প্রয়োজন এমন কিছুর জন্য এটি ভুল পছন্দ। কিন্তু একটি রেজ্যুমে, পোর্টফোলিও বা ব্লগের জন্য — যা বেশিরভাগ মানুষের সত্যিকারের প্রয়োজন — এই সীমাবদ্ধতা আপনার কোনো ক্ষতি করে না, এবং সরলতাই পুরো বিষয়: কম মুভিং পার্টস, প্যাচ করার কিছু নেই, সার্ভার প্রসেস ক্র্যাশ করার কারণে কিছু বন্ধ হয়ে যাওয়ার ভয় নেই।