AWS Storage Services සිංහලෙන් | S3, EBS, EFS, Glacier, Storage Gateway | Sinhala Guide

AWS Storage Services සිංහලෙන් | S3, EBS, EFS, Glacier, Storage Gateway | Sinhala Guide

ආයුබෝවන් යාලුවනේ! AWS Storage Services ගැන සිංහලෙන් ඉගෙන ගමුද?

ඉතින් කොහොමද යාලුවනේ? අද අපි කතා කරන්න යන්නේ Cloud computing වල ගොඩක් වැදගත්, ඒ වගේම ඕනෑම Software Engineer කෙනෙක් දැනගෙන ඉන්න ඕන මාතෘකාවක් ගැන. ඒ තමයි Amazon Web Services (AWS) වල Storage Services.

අපි කරන හැම Application එකකටම වගේ Data ගබඩා කරන්න ඕනනේ. ඒ Data ගබඩා කරන විදිහ, වේගය, ආරක්ෂාව, ඒ වගේම ඒකට යන වියදම කියන දේවල් අපේ Application එකක සාර්ථකත්වයට කෙලින්ම බලපානවා. AWS කියන්නේ මේ Storage අවශ්‍යතා පිරිමහන්න ගොඩක් දේවල් තියෙන Platform එකක්. ඒත් මේ හැම සේවාවක්ම එක වගේ නෙවෙයි. එක එක ඒවාට එක එක විදිහේ වාසි අවාසි තියෙනවා.

මේ Guide එකෙන් අපි AWS වල තියෙන ප්‍රධාන Storage Services කිහිපයක් ගැන සරලව, පැහැදිලිව කතා කරනවා. විශේෂයෙන්ම S3 (Simple Storage Service), EBS (Elastic Block Store), EFS (Elastic File System), S3 Glacier සහ AWS Storage Gateway ගැන අපි ගැඹුරින් බලමු. මේවා මොනවද, මොකටද පාවිච්චි කරන්නේ, ඒ වගේම ඒවගේ තියෙන විවිධ Storage Classes මොනවද කියලා අපි බලමු. ඔයාලට මේ Guide එක ඉවර වෙද්දි AWS Storage Services ගැන හොඳ අවබෝධයක් ලැබෙයි කියලා මට විශ්වාසයි.

එහෙනම් අපි පටන් ගමු නේද?

1. AWS S3 (Simple Storage Service) – Object Storage වල රජු

S3 කියන්නේ AWS වල තියෙන ජනප්‍රියම Storage Service එකක්. සරලවම කිව්වොත් S3 කියන්නේ Object Storage එකක්. "Object Storage" කියන්නේ මොකක්ද? සාමාන්‍යයෙන් අපේ Computer එකේ File System එකක වගේ Folders ඇතුලේ Files ගබඩා කරනවා වෙනුවට, S3 වල Data ගබඩා කරන්නේ Objects විදිහටයි. හැම Object එකකටම Unique Key එකක් (සරලවම File Path එකක් වගේ) සහ Metadata (ඒ Object එක ගැන විස්තර) තියෙනවා. මේ Objects, Buckets කියලා හඳුන්වන තැන් වල තමයි ගබඩා කරන්නේ.

S3 කියන්නේ ඉතාමත්ම Scalable, Highly Available, Durable, ඒ වගේම Secure Storage Service එකක්. ඔබට ඕනෑම වෙලාවක ඕනෑම තැනක ඉඳන් මේ Objects වලට Access කරන්න පුළුවන්. Websites වලට අවශ්‍ය Images, Videos, Documents, Backup Files, Log Files වගේ දේවල් ගබඩා කරන්න S3 ගොඩක් සුදුසුයි.

Buckets සහ Objects

  • Bucket: S3 Bucket එකක් කියන්නේ Objects ගබඩා කරන Container එකක් වගේ. මේක Folder එකකට සමානයි වගේ පෙනුනත්, Folder එකකට වඩා ගොඩක් දේවල් කරන්න පුළුවන්. Bucket නමක් Globally Unique වෙන්න ඕනේ (ලෝකේ වෙන කිසිම කෙනෙක්ට ඒ නමින් Bucket එකක් තියෙන්න බෑ).
  • Object: මේක තමයි S3 වල ගබඩා කරන මූලිකම Data Unit එක. මේවා ඕනෑම File Type එකකින් (images, videos, documents, zip files, etc.) වෙන්න පුළුවන්. Object එකක් 5TB (Terabytes) වෙනකම් විශාල වෙන්න පුළුවන්.

S3 Storage Classes – ඔබේ අවශ්‍යතාවයට අනුව

S3 වල තියෙන ලොකුම වාසියක් තමයි විවිධ Storage Classes තියෙන එක. මේවා තෝරගන්නේ ඔබේ Data එකට Access කරන Frequency එක, ඒ වගේම Data Retrieval (ආපහු ගන්න) කරන්න යන වේලාව සහ වියදම අනුවයි. අපි ප්‍රධාන Storage Classes ටිකක් බලමු:

  • S3 Standard: මේක තමයි Default Storage Class එක. නිතරම Access කරන Data (Frequently Accessed Data) වලට මේක ගොඩක් හොඳයි. ඒ වගේම ඉතාමත්ම Low Latency (වේගවත් Access) සහ High Throughput (වැඩි Data ප්‍රමාණයක් එකවර හසුරුවන්න පුළුවන්) තියෙනවා. Websites, Mobile Applications, Cloud Applications වල Data ගබඩා කරන්න මේක පාවිච්චි කරනවා.
  • S3 Standard-Infrequent Access (S3 Standard-IA): මේකත් S3 Standard වගේම High Throughput සහ Low Latency තියෙනවා. හැබැයි මේක සුදුසු වෙන්නේ නිතරම Access නොකරන, ඒත් Access කරන්න ඕන වුනොත් ඉක්මනින් ගන්න ඕන Data වලටයි (Infrequently Accessed Data). උදාහරණයක් විදිහට Backups, Disaster Recovery files වගේ දේවල්. S3 Standard වලට වඩා ගබඩා කරන්න යන වියදම අඩුයි, හැබැයි Data Retrieve කරන්න පොඩි ගානක් යනවා.
  • S3 One Zone-Infrequent Access (S3 One Zone-IA): මේකත් S3 Standard-IA වගේමයි, හැබැයි Data ගබඩා කරන්නේ එක Availability Zone එකක විතරයි. ඒ නිසා S3 Standard-IA වලට වඩා ටිකක් අඩු වියදමක් යනවා. හැබැයි ඒ Availability Zone එකට මොකක් හරි වුනොත් Data නැති වෙන්න පුළුවන් (Less Durable). ඒ නිසා Critical නොවන, නැවත Generate කරන්න පුළුවන් Data වලට මේක සුදුසුයි.
  • S3 Glacier & S3 Glacier Deep Archive: මේවා නිර්මාණය කරලා තියෙන්නේ දීර්ඝ කාලීන Data Archiving (දිගු කාලීන ලෙස Data සුරැකීම) වලටයි. මේවායේ Storage Costs ගොඩක් අඩුයි, හැබැයි Data Retrieve කරන්න ගොඩක් වෙලා යනවා (තත්පර කිහිපයක සිට පැය කිහිපයක් දක්වා). Glacier Deep Archive කියන්නේ තවත් අඩුම වියදම් Class එකක්, ඒකේ Data Retrieve කරන්න පැය 12ක් වෙනකම් වුනත් යන්න පුළුවන්. Regulatory compliance (නීතිමය රෙගුලාසි), Medical records වගේ දේවල් වලට මේවා පාවිච්චි කරනවා.
  • S3 Intelligent-Tiering: මේක ගොඩක් Smart Storage Class එකක්. මේකෙන් කරන්නේ ඔබේ Data Access Pattern එක අනුව S3 Storage Classes අතර Data එක Automatically Move කරන එක. උදාහරණයක් විදිහට, Data එකක් නිතරම Access කරනවා නම් S3 Standard වල තියනවා, ටික කාලයක් Access නොකරනවා නම් S3 Standard-IA වලට move කරනවා. මේකෙන් Storage Cost එක Optimize කරන්න පුළුවන්, මොකද ඔබට Data එක Access කරන Frequency එක ගැන හිතන්න ඕනේ නෑ.

ප්‍රායෝගික උදාහරණයක්: S3 Bucket එකකට File එකක් Upload කර Storage Class එකක් Set කිරීම

අපි හිතමු ඔබට my-document.pdf කියන File එක S3 එකට දාන්න ඕන, ඒක s3-sinhala-guide-bucket කියන Bucket එකට. මුලින්ම ඔබ AWS Console එකට Log වෙලා S3 Console එකට ගිහින් Bucket එකක් හදන්න ඕනේ. ඊට පස්සේ File එක Upload කරද්දි Storage Class එක තෝරන්න පුළුවන්. AWS CLI (Command Line Interface) එකෙන් කොහොමද මේක කරන්නේ කියලා අපි බලමු:


# මුලින්ම Bucket එකක් හදමු (ඔබේ Bucket නම unique වෙන්න ඕනේ)
aws s3 mb s3://s3-sinhala-guide-bucket

# ඊට පස්සේ File එකක් Upload කරමු, Storage Class එක S3 Standard-IA විදිහට Set කරමු
aws s3 cp my-document.pdf s3://s3-sinhala-guide-bucket/my-document.pdf --storage-class STANDARD_IA

# Upload කරපු File එකේ Storage Class එක බලන්න පුළුවන් මේ විදිහට
aws s3api head-object --bucket s3-sinhala-guide-bucket --key my-document.pdf | grep StorageClass

මේ Commands වලින් අපි my-document.pdf File එක s3-sinhala-guide-bucket එකට STANDARD_IA Storage Class එක එක්ක Upload කළා. කොච්චර ලේසිද නේද?

2. AWS EBS (Elastic Block Store) – EC2 වලට Block Storage

S3 කියන්නේ Object Storage වුනාට, EBS කියන්නේ Block Storage එකක්. Block Storage කියන්නේ හරියට ඔබේ Computer එකේ Hard Drive එකක් වගේ. මේවා විශේෂයෙන්ම නිර්මාණය කරලා තියෙන්නේ AWS EC2 Instances (Virtual Servers) වලට Persistant Storage දෙන්නයි. ඒ කියන්නේ ඔබේ EC2 Instance එක නැවත්තුවත්, නැත්නම් Reboot කලත් මේ Storage එකේ තියෙන Data නැති වෙන්නේ නෑ.

EBS Volumes, EC2 Instances වලට Attached කරලා, ඒවා සාමාන්‍ය Hard Drive එකක් වගේ Format කරලා, File Systems හදලා පාවිච්චි කරන්න පුළුවන්. Operating Systems, Databases, හෝ වෙනත් Applications වලට අවශ්‍ය Storage විදිහට EBS පාවිච්චි කරනවා.

EBS Volume Types – කාර්ය සාධනයට අනුව

EBS වලත් විවිධ Volume Types තියෙනවා, ඒක තෝරගන්නේ ඔබේ Application එකේ Performance අවශ්‍යතා අනුවයි:

  • General Purpose SSD (gp2 / gp3): මේවා ගොඩක් Common Volume Types. සාමාන්‍ය Web Servers, Development Environments, Boot Volumes වගේ දේවල් වලට හොඳයි. Cost-effective වගේම හොඳ Performance එකක් දෙනවා. gp3 කියන්නේ gp2 වලට වඩා අලුත්, හොඳ Performance එකක් දෙන, ඒ වගේම ගොඩක් වෙලාවට අඩු වියදම් Option එකක්.
  • Provisioned IOPS SSD (io1 / io2 Block Express): මේවා ගොඩක් High Performance අවශ්‍ය High Transactional Databases (MySQL, PostgreSQL, Oracle), Critical Business Applications වගේ දේවල් වලට සුදුසුයි. ඔබට අවශ්‍ය IOPS (Input/Output Operations Per Second) ප්‍රමාණය Specify කරන්න පුළුවන්.
  • Throughput Optimized HDD (st1): නිතරම Access නොකරන, ඒත් අනුපිළිවෙලට කියවීමේ (Sequential Read/Write) හැකියාව අවශ්‍ය Data වලට සුදුසුයි. Big Data, Log Processing වගේ දේවල් වලට හොඳයි.
  • Cold HDD (sc1): ගොඩක් අඩු වියදම් HDD Volume එකක්. Rarely Accessed Data (කලාතුරකින් Access කරන Data) වලට සුදුසුයි. S3 Standard-IA වගේමයි, ඒත් Block Storage විදිහට.

EBS Snapshots – ඔබේ Data ආරක්ෂා කරන්න

Snapshots කියන්නේ ඔබේ EBS Volume එකේ Backups ගන්න තියෙන ක්‍රමයක්. මේකෙන් Volume එකේ තියෙන Data වල Point-in-time Copy එකක් S3 වල ගබඩා කරනවා. මේ Snapshots පාවිච්චි කරලා ඔබට අලුත් EBS Volumes හදන්න, නැත්නම් දැනට තියෙන Volume එකක් Restore කරන්න පුළුවන්. Disaster Recovery වලට, Volume Migration (වෙන Region එකකට Volume එකක් ගෙනියන්න) වලට මේවා ගොඩක් වැදගත්.

ප්‍රායෝගික උදාහරණයක්: EBS Volume එකකින් Snapshot එකක් හදමු

ඔබේ EC2 Instance එකට Attached කරපු EBS Volume එකක Backup එකක් (Snapshot එකක්) හදන්න පුළුවන් මේ විදිහට:


# ඔබේ EC2 Instance එකේ Volume ID එක හොයාගන්න. (e.g., vol-0abcdef1234567890)
# මේ Command එකෙන් Snapshot එකක් හදනවා. Description එකක් දාන එක හොඳ පුරුද්දක්.
aws ec2 create-snapshot --volume-id vol-0abcdef1234567890 --description "My App's Daily Backup"

# හැදුව Snapshot එක බලන්න පුළුවන් මේ Command එකෙන්
aws ec2 describe-snapshots --snapshot-ids snap-0fedcba9876543210

මේක ගොඩක්ම සරල දෙයක්, ඒත් ඔබේ Data ආරක්ෂා කරන්න අත්‍යවශ්‍යයි.

3. AWS EFS (Elastic File System) – Shared File Storage

S3 Object Storage, EBS Block Storage වගේම EFS කියන්නේ File Storage එකක්. ඒ කියන්නේ මේක සාමාන්‍ය Network File System (NFS) එකක් වගේ වැඩ කරනවා. EFS වල ලොකුම වාසිය තමයි එකවර EC2 Instances කිහිපයකටම එකම File System එක Share කරන්න පුළුවන් වීම.

ඔබට Web Servers කිහිපයක් තියෙනවා නම්, ඒ හැම එකකටම එකම User Uploaded Content, Shared Configuration Files වගේ දේවල් Access කරන්න ඕන නම් EFS ගොඩක් සුදුසුයි. Containerized applications (Docker, Kubernetes), Serverless applications (AWS Lambda) වගේ දේවල් වලටත් EFS integrate කරන්න පුළුවන්.

EFS වල වාසි

  • Scalable: EFS Automatically Scalable වෙනවා. ඒ කියන්නේ ඔබට Data දාන තරමට Storage එක Automatically වැඩි වෙනවා. ඔබට Storage capacity එක ගැන හිතන්න අවශ්‍ය නෑ.
  • Highly Available & Durable: Data එක Availability Zones කිහිපයක Duplicate කරලා තියන නිසා High Availability සහ Durability තියෙනවා.
  • Shared Access: EC2 Instances, Containers, Serverless Functions වලට එකවර Access කරන්න පුළුවන්.
  • Performance Modes: EFS වලත් General Purpose (සාමාන්‍ය භාවිතය) සහ Max I/O (ඉහළ I/O අවශ්‍යතාවයන්ට) වගේ Performance Modes තියෙනවා.

ප්‍රායෝගික උදාහරණයක්: EC2 Instance එකකට EFS Mount කරමු

අපි හිතමු ඔබට my-efs-filesystem කියන EFS File System එකක් තියෙනවා. ඒක EC2 Instance එකකට Mount කරන්නේ කොහොමද කියලා බලමු:


# 1. EC2 Instance එකට Connect වෙලා අවශ්‍ය Tools install කරගන්න
sudo yum install -y amazon-efs-utils   # Amazon Linux 2 නම්
sudo apt-get update && sudo apt-get install -y amazon-efs-utils # Ubuntu නම්

# 2. EFS File System එක Mount කරන්න (ඔබේ File System ID එක replace කරන්න)
# EFS ID එක console එකෙන් හොයාගන්න පුළුවන් (e.g., fs-0abcdef1234567890)
sudo mkdir /mnt/efs_data
sudo mount -t efs -o tls fs-0abcdef1234567890:/ /mnt/efs_data

# 3. Mount වුනාද කියලා බලන්න
df -h /mnt/efs_data

මේ Command ටිකෙන් ඔබට EFS File System එක EC2 Instance එකකට සාර්ථකව Mount කරගන්න පුළුවන්. මේකෙන් Shared Data අවශ්‍ය Applications වලට විශාල වාසියක් ලැබෙනවා.

4. AWS S3 Glacier (සහ S3 Glacier Deep Archive) – දීර්ඝ කාලීන Data Archiving

අපි කලින් S3 Storage Classes යටතේ S3 Glacier ගැන ටිකක් කතා කළා. හැබැයි S3 Glacier කියන්නේ S3 Storage Class එකකටත් එහා ගිය, තමන්ගේම Features තියෙන Dedicated Service එකක්. මේක නිර්මාණය කරලා තියෙන්නේ ගොඩක් අඩු වියදමකින්, ඉතාම දීර්ඝ කාලීනව Data ගබඩා කරන්නයි. නිතරම Access නොකරන, ඒත් නීතිමය හේතු (Regulatory Compliance), හෝ Historic Records වගේ දේවල් වලට ගොඩක් කාලයක් තියාගන්න ඕන Data වලට මේක සුදුසුයි.

Vaults සහ Archives

  • Vault: S3 Bucket එකක් වගේම, Vault එකක් කියන්නේ Archives ගබඩා කරන Container එකක්. හැබැයි S3 Buckets වලට වඩා Vaults වලට තදින් Access Policies දාන්න පුළුවන්.
  • Archive: මේවා තමයි Glacier වල ගබඩා කරන Data Units. මේවා 40TB වෙනකම් විශාල වෙන්න පුළුවන්. මේවාට Unique ID එකක් තියෙනවා.

Data Retrieval Policies (ආපහු ගන්න ක්‍රම)

Glacier වල ප්‍රධානම වෙනස තමයි Data Retrieve කරන්න යන වේලාව සහ වියදම. ඔබට අවශ්‍යතාවය අනුව විවිධ Retrieval Options තියෙනවා:

  • Expedited Retrieval: මේකෙන් Data retrieve කරන්න විනාඩි 1-5ක් වගේ ඉතාම අඩු වෙලාවක් යනවා. හැබැයි මේකේ වියදම වැඩියි. හදිස්සියේ Data ඕන වුනොත් මේක පාවිච්චි කරන්න පුළුවන්.
  • Standard Retrieval: මේකෙන් Data retrieve කරන්න පැය 3-5ක් වගේ වෙලාවක් යනවා. සාමාන්‍යයෙන් Archive කරන Data වලට මේක පාවිච්චි කරනවා.
  • Bulk Retrieval: මේක තමයි අඩුම වියදම් Option එක. හැබැයි Data retrieve කරන්න පැය 5-12ක් වගේ වෙලාවක් යනවා. විශාල Data ප්‍රමාණයක් එකවර retrieve කරනවා නම් මේක සුදුසුයි.

S3 Glacier Deep Archive: මේක S3 Glacier වලටත් වඩා අඩු වියදම් Option එකක්. මේකේ Data Retrieve කරන්න පැය 12-48ක් වගේ වෙලාවක් යන්න පුළුවන්. අවුරුදු ගාණකට Data ගබඩා කරන්න අවශ්‍ය නම් මේක තමයි හොඳම Option එක.

5. AWS Storage Gateway – On-Premise සහ Cloud අතර පාලම

AWS Storage Gateway කියන්නේ Hybrid Cloud Storage Service එකක්. ඒ කියන්නේ ඔබට ඔබේ On-Premise (ඔබේ Data Center එකේ තියෙන Servers) Applications වලට Cloud Storage (S3, EBS) Access කරන්න පුළුවන් කරන Service එකක්.

මේක Virtual Appliance එකක් (VMware ESXi, Microsoft Hyper-V, හෝ Amazon EC2 Instance එකක් විදිහට) ඔබේ Data Center එකේ Install කරනවා. ඊට පස්සේ ඔබේ On-Premise Applications වලට මේ Appliance එක හරහා AWS Cloud Storage වලට Data Send කරන්න පුළුවන්.

Storage Gateway Types

  • File Gateway: මේක NFS (Network File System) හෝ SMB (Server Message Block) Protocol හරහා Files S3 Bucket එකකට ගබඩා කරන්න පුළුවන් කරනවා. ඔබේ On-Premise File Servers වෙනුවට S3 පාවිච්චි කරන්න මේක සුදුසුයි.
  • Volume Gateway: මේකෙන් iSCSI (Internet Small Computer Systems Interface) Block Storage Volumes ලබා දෙනවා.
    • Cached Volumes: ඔබේ Primary Data එක Cloud එකේ (S3) තියෙනවා, ඒත් නිතරම Access කරන Data වල Copy එකක් On-Premise Cache එකක තියාගන්නවා.
    • Stored Volumes: ඔබේ Primary Data එක On-Premise තියෙනවා, ඒකේ Backups Cloud එකේ (S3) තියාගන්නවා.
  • Tape Gateway: මේක Physical Tape Libraries වෙනුවට Virtual Tape Library (VTL) එකක් සපයනවා. මේකෙන් On-Premise Applications වලට Cloud එකට Data Archiving කරන්න පුළුවන්. Tape Backups වලට ගොඩක් වියදම් යනවා නම් මේක හොඳ Solution එකක්.

Storage Gateway එකෙන් On-Premise Data Centers වලට Cloud වල තියෙන Scalability, Durability, ඒ වගේම Cost-effectiveness ලබාගන්න පුළුවන්. Data Migration, Disaster Recovery, Hybrid Cloud Backups වගේ Use Cases වලට මේක ගොඩක් ප්‍රයෝජනවත්.

නිගමනය: ඔබේ AWS Storage ගමනට සුබ ගමන්!

ඉතින් යාලුවනේ, AWS වල තියෙන ප්‍රධාන Storage Services ගැන අපි ගැඹුරින් සාකච්ඡා කළා. S3, EBS, EFS, S3 Glacier, සහ Storage Gateway කියන මේ හැම Service එකක්ම එකිනෙකට වෙනස් අවශ්‍යතා වෙනුවෙන් නිර්මාණය කරපු ඒවා.

  • S3 - Scalable Object Storage එකක්, Static Website Content, Backups, Data Lake වලට හොඳයි.
  • EBS - EC2 Instances වලට Persistant Block Storage එකක්, Databases, OS Volumes වලට හොඳයි.
  • EFS - EC2 Instances කිහිපයකටම Share කරන්න පුළුවන් Scalable File System එකක්, Shared Web Content, Containerized Apps වලට හොඳයි.
  • S3 Glacier - දීර්ඝ කාලීන, අඩු වියදම් Data Archiving වලට හොඳයි.
  • Storage Gateway - On-Premise සහ Cloud Storage අතර Bridge එකක්, Hybrid Cloud Use Cases වලට හොඳයි.

මේවා තේරුම් ගැනීමෙන් ඔබට ඔබේ Application එකට වඩාත්ම සුදුසු, Cost-effective Storage Solution එකක් තෝරාගන්න පුළුවන්. මතක තියාගන්න, හැම Service එකක්ම හොඳයි, හැබැයි ඔබේ Use Case එකට වඩාත්ම ගැලපෙන එක තෝරාගන්න එක තමයි වැදගත්ම දේ.

අද ඉගෙන ගත්ත දේවල් තවදුරටත් පුහුණු වෙන්න, AWS Free Tier එක පාවිච්චි කරලා මේ Services අත්හදා බලන්න. ඔබේ අත්දැකීම් මොනවද? මේ ගැන ප්‍රශ්න තියෙනවා නම් පහලින් Comment කරන්න. අපි එකතු වෙලා තවදුරටත් ඉගෙන ගමු!

ඔබේ Cloud ගමනට සුබ පැතුම්!