AWS Global Infrastructure | Regions, AZs, Edge Locations | Sinhala Tutorial

ආයුබෝවන් යාළුවනේ! අද අපි කතා කරන්න යන්නේ Cloud Computing වල කොඳු නාරටිය වගේ දෙයක් ගැන – ඒ තමයි AWS Global Infrastructure එක. Cloud Computing කියන්නේ අනාගතය කියලා දැනටමත් ඔප්පු වෙලා ඉවරයි. ඒත්, මේ Cloud එක කොහොමද ඇත්තටම වැඩ කරන්නේ, ඒක එච්චරම විශ්වාසදායක (reliable) සහ වේගවත් (fast) වෙන්නේ කොහොමද කියලා කල්පනා කරලා තියෙනවද?
AWS (Amazon Web Services) තමයි මේ Cloud Space එකේ ඉස්සරහින්ම ඉන්න කෙනෙක්. ඒගොල්ලන්ගේ සේවාවන් ලෝකය පුරාම පැතිරීලා තියෙන්නේ පුදුම විදිහට සංකීර්ණ සහ ශක්තිමත් යටිතල පහසුකම් ජාලයක් (network of robust infrastructure) හරහායි. මේක හරියට විශාල නගරයක් තියෙනවා වගේ, ඒත් ඒ හැම ගොඩනැගිල්ලක්ම, පාරක්ම, විදුලි පද්ධතියක්ම හරිම විදිහට සැලසුම් කරලා තියෙනවා වගේ.
අද මේ Guide එකෙන් අපි AWS Global Infrastructure එකේ මූලිකම කොටස් මොනවද කියලා පැහැදිලිව තේරුම් ගනිමු. Regions, Availability Zones (AZs), Edge Locations, Local Zones, Wavelength වගේ දේවල් ගැන විතරක් නෙවෙයි, මේවා CloudFront සහ Route 53 වගේ සේවාවන් එක්ක එකතු වෙලා වැඩ කරන්නේ කොහොමද, High Availability සහ Latency Optimization කියන දේවල් මේකට බලපාන්නේ කොහොමද කියලත් බලමු. ඉතින්, Cloud එකේ පදනම තේරුම් ගන්න සූදානම් වෙමුද?
AWS Global Infrastructure එක මොකක්ද?
සරලවම කිව්වොත්, AWS Global Infrastructure කියන්නේ Amazon සමාගම ලෝකය පුරා පිහිටුවා තිබෙන, ඔවුන්ගේ Cloud සේවාවන් ලබා දෙන, විශාල දත්ත මධ්යස්ථාන (data centers), සේවාදායක (servers), ජාලකරණ උපකරණ (networking equipment) වගේ දේවල් වලින් හැදුණු දැවැන්ත ජාලයක්. මේක තමයි අපේ Web Applications, Databases, Machine Learning Models වගේ හැමදේම Host කරලා තියෙන පදනම.
මේ infrastructure එක මෙතරම් වැදගත් වෙන්නේ ඇයි? ප්රධාන හේතු කිහිපයක් තියෙනවා:
- Reliability (විශ්වාසනීයත්වය): AWS කියන්නේ ඔයාගේ Application එක කවදාවත් Off වෙන්නේ නැති වෙන්න පුළුවන් උපරිම විදිහට හදලා තියෙන තැනක්.
- Scalability (ප්රසාරණය වීමේ හැකියාව): ඔයාගේ Application එකට හිටිහැටියේ Traffic වැඩි වුණොත්, ඒකට ඔරොත්තු දෙන්න අවශ්ය සම්පත් (resources) ක්ෂණිකව එකතු කරගන්න පුළුවන්.
- Performance (කාර්ය සාධනය): ලෝකයේ ඕනෑම තැනක ඉන්න User කෙනෙක්ට අඩුම Latency එකකින් (ප්රතිචාර දැක්වීමට ගතවන කාලය) ඔයාගේ සේවාව ලබා දෙන්න මේ Infrastructure එක උපකාරී වෙනවා.
- Security (ආරක්ෂාව): AWS වල Security කියන්නේ එයාලා හරිම බරපතල විදිහට සලකන දෙයක්. මේ Global Infrastructure එකේ හැම ස්ථරයකම (layer) ආරක්ෂාව තහවුරු කරලා තියෙනවා.
මේ Infrastructure එකේ ප්රධානම අංග තමයි Regions, Availability Zones (AZs), Edge Locations, Local Zones සහ Wavelength Zones. අපි මේවා එකින් එක විස්තරාත්මකව බලමු.
AWS Regions: ලෝකය පුරා පැතිරුණු දත්ත මධ්යස්ථාන
ඔයා AWS වල සේවාවක් පාවිච්චි කරනකොට මුලින්ම තෝරාගන්න ඕන දෙයක් තමයි Region එකක්. Region එකක් කියන්නේ භූගෝලීය වශයෙන් වෙනම පිහිටා තියෙන, එකිනෙකට සම්පූර්ණයෙන්ම ස්වාධීන (independent) AWS දත්ත මධ්යස්ථාන පොකුරක් (cluster of data centers).
උදාහරණයක් විදිහට, us-east-1
කියන්නේ North Virginia Region එක. ap-southeast-1
කියන්නේ Singapore Region එක. මේ Region එකක් තුළ සාමාන්යයෙන් Availability Zones (AZs) 2ක් හෝ ඊට වැඩි ගණනක් තියෙනවා.
Regions වැදගත් වෙන්නේ ඇයි?
- Data Residency (දත්ත පිහිටීම): සමහර රටවල නීති තියෙනවා, ඒ රටේ පුරවැසියන්ගේ දත්ත එම රටේ භූගෝලීය සීමාවන් තුළම තබා ගත යුතුයි කියලා. Region එකක් තෝරන එකෙන් ඔයාට මේ නීතිවලට අනුකූල වෙන්න පුළුවන්.
- Latency (ප්රතිචාර කාලය): ඔයාගේ Users ලා ඉන්න තැනට භූගෝලීය වශයෙන් ආසන්නම Region එක තෝරන එකෙන් Application එකේ Latency එක අඩු කරගන්න පුළුවන්. උදාහරණයක් විදිහට, ඔයාගේ Customers ලා වැඩිපුරම ඉන්නේ යුරෝපයේ නම්,
eu-central-1
(Frankfurt) වගේ Region එකක් තෝරන එක වඩා හොඳයි. - High Availability (ඉහළ පවතින බව): එක් Region එකකට යම් හානියක් වුණත්, ඔයාට තව Region එකක (Disaster Recovery Region) Backup එකක් තියාගෙන Application එක Up & Running තියාගන්න පුළුවන්.
Region එකක් තෝරාගන්නා ආකාරය පිළිබඳ උදාහරණයක්:
හිතන්න, ඔයා ශ්රී ලංකාවේ සිටින User ලා සඳහා Web Application එකක් හදනවා කියලා. මේ වෙලාවේ ඔයාට ආසන්නම Region එක වෙන්නේ ap-south-1
(Mumbai, India) හෝ ap-southeast-1
(Singapore) වගේ Region එකක් වෙන්න පුළුවන්. මේ Region අතරින් Latency එක අඩුම සහ ඔයාගේ Data Residency Requirements වලට ගැළපෙන Region එක තෝරාගන්න පුළුවන්.
ඔයාට මේ වගේ AWS CLI command එකක් පාවිච්චි කරලා ලෝකයේ තියෙන AWS Regions බලාගන්න පුළුවන්:
aws ec2 describe-regions --output table
Availability Zones (AZs): Region එකක් ඇතුළේ High Availability
හරි, දැන් අපි Region එකක් ඇතුළේ තියෙන තවත් වැදගත් සංකල්පයක් ගැන කතා කරමු – ඒ තමයි Availability Zones (AZs). Region එකක් කියන්නේ දත්ත මධ්යස්ථාන පොකුරක් කියලා අපි කිව්වනේ. මේ පොකුරේ තියෙන, භෞතිකව එකිනෙකට වෙන්ව පිහිටා තියෙන ස්වාධීන දත්ත මධ්යස්ථාන හෝ දත්ත මධ්යස්ථාන සමූහයක් තමයි AZ එකක් කියන්නේ.
සරලව කිව්වොත්, AZ එකක් කියන්නේ තමන්ගේම Power, Networking සහ Cooling පද්ධති තියෙන, Region එකක් ඇතුළේ වෙනම තැනක පිහිටා තියෙන දත්ත මධ්යස්ථානයක් වගේ දෙයක්. ඒත් මේ හැම AZ එකක්ම අනිත් AZs එක්ක low-latency links (ඉතා අඩු ප්රතිචාර කාලයක් සහිත සම්බන්ධතා) මගින් සම්බන්ධ වෙලා තියෙනවා.
උදාහරණයක් විදිහට, us-east-1
Region එකේ us-east-1a
, us-east-1b
, us-east-1c
වගේ AZs තියෙන්න පුළුවන්.
AZs වැදගත් වෙන්නේ ඇයි?
AZs වල ප්රධානම වැදගත්කම තමයි Fault Isolation (දෝෂ හුදකලා කිරීම). හිතන්න, එක AZ එකක විදුලිය ඇනහිටීමක්, සුනාමියක් හෝ වෙනත් ස්වාභාවික ආපදාවක් වුණා කියලා. මේ වගේ වෙලාවක ඒ AZ එකේ තිබ්බ සේවාවන් බිඳ වැටෙන්න පුළුවන්. ඒත් ඔයාගේ Application එක AZs කිහිපයක් හරහා Deploy කරලා තියෙනවා නම්, අනිත් AZs වල තියෙන Instances ඒ සේවාව දිගටම ලබා දෙනවා. මේක තමයි High Availability කියන්නේ.
ප්රායෝගික ඉඟිය: High Availability සඳහා Multi-AZ Deployment
ඔයාගේ Web Application එක High Available කරන්න ඕන නම්, ඔයාගේ EC2 Instances (Virtual Servers) සහ Databases (උදා: RDS) හැමවිටම අවම වශයෙන් AZs දෙකකවත් Deploy කරන්න ඕන. මේක හරියට Backups තියාගෙන ඉන්නවා වගේ දෙයක්, ඒත් මේවා Active Backups.
උදාහරණයක්:
- ඔයාට Web Servers දෙකක් අවශ්ය නම්, එකක්
us-east-1a
එකෙත්, අනිත් එකus-east-1b
එකෙත් Run කරන්න. - Database එකක් තියෙනවා නම්, ඒකේ Primary Instance එක
us-east-1a
එකෙත්, Secondary (Read Replica හෝ Standby) Instance එකus-east-1b
එකෙත් තියන්න.
මේ වගේ Multi-AZ Deployment එකක් කරන්න Load Balancer (ELB - Elastic Load Balancer) එකක් පාවිච්චි කරන එක හරිම පහසුයි. Load Balancer එකෙන් Users ලාගේ Traffic එක AZs අතර බෙදාහරිනවා. එක AZ එකක් Fail වුණොත්, Load Balancer එක ඉබේම Traffic එක වැඩ කරන AZ එකට යොමු කරනවා. මේක තමයි AWS Architecture එකක මූලිකම Design Principle එකක්.
Edge Locations, Local Zones, Wavelength: පරිශීලකයන්ට සමීප වෙමු
දැන් අපි කතා කරමු Users ලාට වඩාත් සමීප වෙන්න AWS පාවිච්චි කරන තවත් infrastructure components ටිකක් ගැන. මේවා Latency එක අඩු කරලා, User Experience එක වැඩි දියුණු කරන්න හරිම වැදගත්.
Edge Locations (CloudFront සහ Route 53)
Edge Locations කියන්නේ AWS Regions වලට වඩා ගොඩක් වැඩි ගණනක් ලෝකය පුරා පැතිරීලා තියෙන කුඩා දත්ත මධ්යස්ථාන. මේවා Design කරලා තියෙන්නේ Users ලාට හැකි තරම් සමීපයෙන් Cache කරපු Content (Images, Videos, Static Web Pages) සහ DNS Queries ලබා දෙන්න.
ප්රධාන සේවාවන් දෙකක් මේවා භාවිතා කරනවා:
- Amazon CloudFront (Content Delivery Network - CDN): CloudFront කියන්නේ ඔයාගේ Content එක (උදා: Photos, Videos, Website files) Users ලාට සමීපතම Edge Location එකක Cache කරලා තියන්න පුළුවන් සේවාවක්. මේ නිසා User කෙනෙක් Content එකක් ඉල්ලනකොට, ඒක Region එකට ගිහින් ගන්න වෙනුවට ළඟම Edge Location එකෙන් කෙලින්ම ලැබෙනවා. මේකෙන් Latency එක අතිශයින්ම අඩු වෙනවා.
- Amazon Route 53 (DNS Service): Route 53 කියන්නේ AWS වල DNS (Domain Name System) සේවාව. මේකත් Edge Locations භාවිතා කරනවා Users ලාට අඩුම Latency එකකින් DNS Queries වලට උත්තර දෙන්න.
ප්රායෝගික උදාහරණයක්: CloudFront සමඟ Static Website එකක්
හිතන්න, ඔයාගේ Static Website එකක් S3 Bucket එකක Host කරලා තියෙනවා කියලා. මේක ලංකාවේ User කෙනෙක්ට Access කරනකොට, S3 Bucket එක us-east-1
වගේ දුර Region එකක තියෙනවා නම් Latency එක වැඩි වෙන්න පුළුවන්.
මේකට විසඳුම තමයි CloudFront. ඔයාට පුළුවන් CloudFront Distribution එකක් හදලා, S3 Bucket එක Origin එක විදිහට දෙන්න. එතකොට, ලංකාවේ User කෙනෙක් Website එකට Access කරනකොට, මුලින්ම Request එක යන්නේ ළඟම තියෙන Edge Location එකට. ඒ Edge Location එකේ Content එක Cache කරලා තියෙනවා නම්, ඒක කෙලින්ම User ට ලැබෙනවා. නැත්නම්, Edge Location එක S3 Bucket එකෙන් Content එක අරගෙන, Cache කරගෙන, User ට දෙනවා.
මේ වගේ Architecture එකක් මගින් User Experience එක ගොඩක් හොඳ වෙනවා, Content Loading Speed එක වැඩි වෙනවා, වගේම Origin Server (S3) එකට එන Load එකත් අඩු වෙනවා.
Local Zones
Local Zones කියන්නේ Regions වලට පිටින්, ඒත් විශාල ජනගහනයක් ඉන්න නගරවල (metropolitan areas) පිහිටුවා තියෙන AWS Infrastructure Extensions. මේවා Design කරලා තියෙන්නේ Ultra-low Latency අවශ්ය වන Applications සඳහායි.
Region එකක් සමහර වෙලාවට විශාල නගරයකට දුරින් පිහිටන්න පුළුවන්. ඒ වගේ වෙලාවට, Local Zone එකක් භාවිතා කරන එකෙන් Users ලාට ඉතාමත්ම අඩු Latency එකකින් සේවාව ලබා දෙන්න පුළුවන්. මේවා AWS Direct Connect වගේ Services හරහා Region එකට සම්බන්ධ වෙලා තියෙනවා.
උදාහරණයක්: Gaming Servers, Real-time Applications, Media & Entertainment workflows.
Wavelength Zones
Wavelength Zones කියන්නේ Local Zones වලටත් වඩා විශේෂිතයි. මේවා Design කරලා තියෙන්නේ 5G Mobile Networks වල අභ්යන්තරයේ (inside 5G networks) Deploy කරන්න. මේවායෙන් අපිට 5G Network එකේ Edge එකටම AWS Compute සහ Storage Services Deploy කරන්න පුළුවන්.
මේකේ ප්රධානම වාසිය තමයි Ultra-low Latency. 5G දුරකථන පාවිච්චි කරන Users ලාට Network Edge එකෙන්ම Application එකට Access කරන්න පුළුවන් වෙනවා. මේක විශේෂයෙන්ම Smart Factories, Autonomous Vehicles, Real-time Gaming වගේ භාවිතාවන් සඳහා අතිශයින්ම වැදගත්.
High Availability (HA) සහ Latency Optimization: සැලසුම් මූලධර්ම
AWS Global Infrastructure එක තේරුම් ගත්තාට පස්සේ, අපි දැන් බලමු මේ Infrastructure එක පාවිච්චි කරලා කොහොමද ඔයාගේ Application එක High Available (හැමවිටම ක්රියාත්මක) සහ Low Latency (අඩු ප්රතිචාර කාලයක් සහිත) එකක් බවට පත් කරගන්නේ කියලා.
High Availability (HA) සංකල්ප
High Availability කියන්නේ ඔයාගේ Application එකේ Services හැමවිටම Users ලාට ලබා දෙන එක. AWS එකේ මේක කරන්නේ Region සහ AZs භාවිතා කරලා.
- Multi-AZ Deployments: අපි කලින් කතා කළා වගේ, EC2 Instances, Databases, Message Queues වගේ Services අවම වශයෙන් AZs දෙකකවත් Deploy කරන එක. මේක තමයි මූලිකම HA Strategy එක.
- Elastic Load Balancing (ELB): Application Load Balancers (ALB) හෝ Network Load Balancers (NLB) පාවිච්චි කරලා Traffic එක AZs අතර බෙදාහැරීම. එක AZ එකක් අක්රිය වුවහොත්, Load Balancer එක ඉබේම Traffic එක ක්රියාත්මක AZs වෙත යොමු කරනවා.
- Auto Scaling: Application එකට එන Traffic එක වැඩි වෙනකොට අලුතින් Instances නිර්මාණය කරලා (Scale Out) Application එකට Load එකට ඔරොත්තු දෙන්න සැලැස්වීම. Traffic එක අඩු වෙනකොට Instances අඩු කරනවා (Scale In). මේකත් HA එකට වගේම Cost Optimization එකටත් උදව් වෙනවා.
- Cross-Region Replication (Disaster Recovery): සමහර අතිශයින්ම වැදගත් Applications සඳහා, එක Region එකක්ම සම්පූර්ණයෙන් අක්රිය වුණොත්, වෙනත් Region එකක Backup එකක් හෝ Active/Passive Deployment එකක් තියාගන්න පුළුවන්. මේක Disaster Recovery Strategy එකක්.
ප්රායෝගික ඉඟිය: Multi-AZ Application Architecture
මේක සරල Web Application එකක Multi-AZ Architecture එකක්:
graph TD
A[Internet User] --> B(Route 53)
B --> C{Application Load Balancer (ALB)}
C --> D1[EC2 Instance - AZ1]
C --> D2[EC2 Instance - AZ2]
D1 --> E1(RDS Database - Primary - AZ1)
D2 --> F1(RDS Database - Standby - AZ2)
(සටහන: මෙය සරල කේත කොටසකට වඩා රූප සටහනක ස්වභාවය විස්තර කිරීමකි.)
මේ Diagrams එකෙන් පෙන්නන්නේ User Request එකක් Route 53 හරහා ALB එකට ඇවිත්, ALB එකෙන් Traffic එක AZs දෙකක තියෙන EC2 Instances වලට බෙදන ආකාරය. Database එකත් Primary/Standby ආකාරයට AZs දෙකක Deploy කරලා තියෙනවා. මේකෙන් එක AZ එකක් Fail වුණත් Application එක දිගටම ක්රියාත්මක වෙනවා.
Latency Optimization Strategies
Latency කියන්නේ User කෙනෙක් Request එකක් යවලා, ඒකට Response එකක් ලැබෙන්න යන කාලය. මේක අඩු කරගන්න පුළුවන් ප්රධාන ක්රම කිහිපයක් තියෙනවා:
- Closest Region Selection: ඔයාගේ Majority Users ලා ඉන්න භූගෝලීය ප්රදේශයට ආසන්නම Region එක තෝරාගන්න එක.
- Amazon CloudFront: Static Content (Images, Videos, CSS, JS) Edge Locations හරහා Serve කිරීම. මේකෙන් Content එක User ට වඩාත් සමීපයෙන් ලැබෙන නිසා Latency එක සැලකිය යුතු ලෙස අඩු වෙනවා.
- Amazon Route 53 Geolocation/Latency-based Routing: Route 53 වලට පුළුවන් User ගේ භූගෝලීය පිහිටීමට අනුව හෝ අඩුම Latency එක තියෙන Resource එකට Request එක යොමු කරන්න.
- AWS Global Accelerator: මේකෙන් AWS Global Network එකේ Edge Locations භාවිතා කරලා Application එකට එන Traffic එක Optimizing කරනවා. මේක විශේෂයෙන්ම Non-HTTP/S Traffic (Games, IoT) සඳහා සහ Global Applications සඳහා හරිම ප්රයෝජනවත්.
- Local Zones / Wavelength Zones: Ultra-low latency අවශ්ය වන Applications සඳහා මේවා භාවිතා කිරීම.
අවසන් වශයෙන්
ඉතින් යාළුවනේ, අපි අද AWS Global Infrastructure එකේ හැම අස්සක් මුල්ලක්ම වගේ ගැඹුරින් තේරුම් ගත්තා. Regions, Availability Zones, Edge Locations, Local Zones, Wavelength කියන මේ හැමදේම එකට එකතු වෙලා තමයි AWS කියන මේ දැවැන්ත Cloud Platform එක ගොඩනගලා තියෙන්නේ.
මේ සංකල්ප තේරුම් ගැනීම Cloud Engineer කෙනෙක් විදිහට, Developer කෙනෙක් විදිහට හෝ Tech Enthusiast කෙනෙක් විදිහට ඔයාට අතිශයින්ම වැදගත්. මොකද, ඔයා Application එකක් Design කරනකොට, Deploy කරනකොට, Troubleshooting කරනකොට මේ Global Infrastructure එකේ පදනම තේරුම් අරගෙන ඉන්න එක ඔයාගේ තීරණ වලට විශාල වශයෙන් බලපානවා.
මතක තියාගන්න, High Availability සහ Latency Optimization කියන දේවල් මේ Infrastructure එකේ හරය. ඔයාගේ Solution එක Design කරනකොට මේවා ගැන හිතන එකෙන් ඔයාට ලෝකයේ ඕනෑම තැනක ඉන්න User කෙනෙක්ට හොඳම අත්දැකීම (User Experience) ලබා දෙන්න පුළුවන්.
දැන් ඔයාට හොඳ අවබෝධයක් ඇති කියලා මම හිතනවා. මේ ගැන ඔයාගේ අත්දැකීම් මොනවද? නැත්නම් මේ Topic එක ගැන තව දැනගන්න කැමති දේවල් මොනවද කියලා පහලින් Comment එකක් දාන්න. පුළුවන් නම් ඔයාගේ ඊළඟ Project එකේදී Multi-AZ Deployment එකක් try කරලා බලන්න! ජය වේවා!