Terraform භාවිතා කරන ඔබට දැන් S3 බකට් එකක් පමණක් සමඟම state ලොක්කින්ග් සකස් කළ හැකි බව දැනගන්න. Terraform 1.10 නව සංස්කරණයෙන් DynamoDB අවශ්යතාවය ඉවත් කර, සරල හා ආරක්ෂිත සැකසුමක් ලබා දෙනවා.
Terraform state ගොනුව කියන්නේ ඔබගේ කේතය හා AWS සම්පත් අතර සම්බන්ධතාවය සුරකින්නා වූ ගොනුව. මෙම ගොනුව terraform.tfstate ලෙස හඳුන්වා දෙන අතර, එකක් කෙනෙකුගේ පරිගණකයේ තබා ගත හැකිය. කණ්ඩායමක් සමඟ වැඩ කරන විට, ඒ ගොනුව බෙදා ගත නොහැකි වීමෙන් “state conflict” සිදු වෙයි.
එම නිසා state lock අවශ්ය වේ. දෙදෙනෙක් එකම වෙලාවේ terraform apply ක්රියාත්මක කරන විට, දෙදෙනාම එකම state ගොනුව කියවා, වෙනස් කර, නැවත ලියනවා. එකිනෙකාගේ ලිවීමක් මත තවත් එකක් ආවරනය වීමෙන් state ගොනුව විකෘත වේ, එවිට Terraform අසමත් වී අලුත් සම්පත් සාදන හෝ අහිමි කරන තත්වයට පත්වේ.
පැරණි ක්රමයෙහි, S3 එකට DynamoDB වගුවක් එකතු කර, එහි lock තබා ගන්නා ලදී. ඒ සඳහා LockID යන partition key එකක් සහිත වගුවක් නිර්මාණය කර, Terraform ක්රියාත්මක වන විට lock item එක ලියලා, අවසන් වූ පසු මකා දමනු ලැබුණි. මෙය වැඩි සම්පත්, අතිරේක IAM permissions, සහ නඩත්තු කාර්යභාරයක් එක් කර තිබුණි.
Terraform 1.10 නවීකරණයෙන් S3 හි native locking හැකියාවක් එක් කර තිබේ. දැන් dynamodb_table පරාමිතියක් භාවිතා නොකර, S3 bucket එකේ state locking ක්රියාත්මක කළ හැකිය. ඒ සඳහා backend කොටස මෙසේ සකස් කරන්න:
backend "s3" {
bucket = "my-terraform-state-bucket"
key = "global/s3/terraform.tfstate"
region = "ap-south-1"
encrypt = true
}
මෙම සරල සැකසුමෙන් අමතර DynamoDB වගුවක් නොඅවශ්ය වන අතර, IAM policy එකත් අඩු වේ. ඒ නිසා පරිච්ඡේදය කුඩා, පිරිසිදු, හා වියදම් අඩු වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
- ආරම්භකයන්ට පහසුකම – සරල S3 backend එකක් පමණක් සකස් කිරීමෙන් Terraform අධ්යයනයේ පටන් ගන්නා සිසුන්ට හා නවකයින්ට ඉක්මනින් ප්රායෝගික පරිසරයක් ලැබේ.
- ව්යාපාරික වියදම් අඩු කිරීම – DynamoDB වගුවක් නොබැඳීමෙන් AWS ගාස්තුව අඩු වේ, කුඩා හා මධ්ය පරිමාණ ව්යාපාරවලට වැදගත්.
- ආරක්ෂාව වැඩි වීම – lock එක S3 තුළම පවත්වා ගැනීමෙන් permission ගැටලු අඩු වේ, DevOps කණ්ඩායම් අතර state conflict අවස්ථා අඩු වේ.
- දේශීය Cloud උපදෙස් – AWS ශ්රී ලංකා ප්රදේශයේ data residency අවශ්යතා ඉටු කරමින්, S3 නේටිව් lock එකේ භාවිතය සාර්ථකව පවත්වා ගත හැක.
අවසන් වශයෙන්, Terraform 1.10 නවීකරණය S3 නේටිව් ලොක්කින්ග් සමඟ DevOps ක්රියාවලිය සරල කරයි. ඔබට දැන්ම මේ පහසුකම ඔබේ ව්යාපෘති වලට එක් කර, state ගොනුවේ ගැටළු තවත් නොමැතිව පවත්වා ගන්න.