AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

அனைவருக்கும் வணக்கம்! என் பெயர் கிரில், நான் அடாப்டியில் CTO. எங்களின் பெரும்பாலான கட்டிடக்கலை AWS இல் உள்ளது, மேலும் உற்பத்திச் சூழலில் ஸ்பாட் நிகழ்வுகளைப் பயன்படுத்துவதன் மூலம் சேவையகச் செலவை 3 மடங்கு குறைத்தோம், மேலும் அவற்றின் தானாக அளவிடுதலை எவ்வாறு அமைப்பது என்பது பற்றி இன்று பேசுவேன். முதலில் இது எவ்வாறு இயங்குகிறது என்பது பற்றிய கண்ணோட்டம் இருக்கும், பின்னர் தொடங்குவதற்கான விரிவான வழிமுறைகள் இருக்கும்.

ஸ்பாட் நிகழ்வுகள் என்றால் என்ன?

ஸ்பாட் நிகழ்வுகள் தற்போது செயலற்ற நிலையில் இருக்கும் பிற AWS பயனர்களின் சேவையகங்கள், மேலும் அவை பெரிய தள்ளுபடியில் விற்கப்படுகின்றன (Amazon 90% வரை எழுதுகிறது, எங்கள் அனுபவத்தில் ~3x, பகுதி, AZ மற்றும் நிகழ்வு வகையைப் பொறுத்து மாறுபடும்). வழக்கமானவற்றிலிருந்து அவற்றின் முக்கிய வேறுபாடு என்னவென்றால், அவை எந்த நேரத்திலும் அணைக்கப்படலாம். எனவே, S3 அல்லது தரவுத்தளத்தில் சேமிக்கப்பட்ட இடைநிலை முடிவுகளுடன், கன்னி சூழல்களுக்கு அல்லது எதையாவது கணக்கிடும் பணிகளுக்கு அவற்றைப் பயன்படுத்துவது இயல்பானது என்று நீண்ட காலமாக நாங்கள் நம்பினோம், ஆனால் விற்பனைக்காக அல்ல. உற்பத்தியில் புள்ளிகளைப் பயன்படுத்த உங்களை அனுமதிக்கும் மூன்றாம் தரப்பு தீர்வுகள் உள்ளன, ஆனால் எங்கள் விஷயத்தில் பல ஊன்றுகோல்கள் உள்ளன, எனவே நாங்கள் அவற்றைச் செயல்படுத்தவில்லை. கட்டுரையில் விவரிக்கப்பட்டுள்ள அணுகுமுறை, கூடுதல் ஸ்கிரிப்டுகள், கிரீடங்கள் போன்றவை இல்லாமல், நிலையான AWS செயல்பாட்டிற்குள் முழுமையாக செயல்படுகிறது.

ஸ்பாட் நிகழ்வுகளுக்கான விலை வரலாற்றைக் காட்டும் சில ஸ்கிரீன்ஷாட்கள் கீழே உள்ளன.

m5.eu-மேற்கு-1 (அயர்லாந்து) பகுதியில் பெரியது. 3 மாதங்களாக விலை பெரும்பாலும் நிலையானது, தற்போது 2.9 மடங்கு சேமிக்கப்படுகிறது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

m5. US-east-1 பகுதியில் (N. Virginia) பெரியது. 3 மாதங்களில் விலை தொடர்ந்து மாறிக்கொண்டே இருக்கிறது, தற்போது கிடைக்கும் மண்டலத்தைப் பொறுத்து 2.3x முதல் 2.8x வரை சேமிக்கப்படுகிறது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

t3.small in the us-east-1 பகுதியில் (N. Virginia). 3 மாதங்களாக விலை சீராக உள்ளது, தற்போது 3.4 மடங்கு சேமிக்கப்படுகிறது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

சேவை கட்டமைப்பு

இந்த கட்டுரையில் நாம் பேசும் சேவையின் அடிப்படை கட்டமைப்பு கீழே உள்ள வரைபடத்தில் காட்டப்பட்டுள்ளது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

அப்ளிகேஷன் லோட் பேலன்சர் → EC2 இலக்கு குழு → எலாஸ்டிக் கொள்கலன் சேவை

அப்ளிகேஷன் லோட் பேலன்சர் (ALB) ஒரு பேலன்சராகப் பயன்படுத்தப்படுகிறது, இது EC2 இலக்கு குழுவிற்கு (TG) கோரிக்கைகளை அனுப்புகிறது. ALBகளுக்கான நிகழ்வுகளில் போர்ட்களைத் திறப்பதற்கும் அவற்றை எலாஸ்டிக் கன்டெய்னர் சர்வீஸ் (ECS) கொள்கலன்களின் போர்ட்களுடன் இணைப்பதற்கும் TG பொறுப்பு. ECS என்பது AWS இல் உள்ள Kubernetes இன் அனலாக் ஆகும், இது Docker கொள்கலன்களை நிர்வகிக்கிறது.

ஒரு நிகழ்வில் ஒரே போர்ட்களுடன் பல இயங்கும் கொள்கலன்கள் இருக்கலாம், எனவே அவற்றை எங்களால் நிலையானதாக அமைக்க முடியாது. ECS, TG க்கு ஒரு புதிய பணியைத் தொடங்குவதாகக் கூறுகிறது (குபெர்னெட்டஸ் சொற்களஞ்சியத்தில் இது ஒரு பாட் என்று அழைக்கப்படுகிறது), இது நிகழ்வில் இலவச போர்ட்களை சரிபார்த்து, அவற்றில் ஒன்றை தொடங்கப்பட்ட பணிக்கு ஒதுக்குகிறது. உடல்நலச் சரிபார்ப்பைப் பயன்படுத்தி நிகழ்வும் APIயும் அதில் செயல்படுகின்றனவா என்பதை TG தொடர்ந்து சரிபார்க்கிறது, மேலும் ஏதேனும் சிக்கல்களைக் கண்டால், அது கோரிக்கைகளை அனுப்புவதை நிறுத்துகிறது.

EC2 ஆட்டோ ஸ்கேலிங் குழுக்கள் + ECS திறன் வழங்குநர்கள்

மேலே உள்ள வரைபடம் EC2 ஆட்டோ ஸ்கேலிங் குழுக்கள் (ASG) சேவையைக் காட்டவில்லை. அளவீட்டு நிகழ்வுகளுக்கு இது பொறுப்பு என்பதை பெயரிலிருந்து நீங்கள் புரிந்து கொள்ளலாம். இருப்பினும், சமீப காலம் வரை, ECS இலிருந்து இயங்கும் இயந்திரங்களின் எண்ணிக்கையை நிர்வகிக்கும் ஒரு உள்ளமைக்கப்பட்ட திறனை AWS கொண்டிருக்கவில்லை. ECS ஆனது பணிகளின் எண்ணிக்கையை அளவிடுவதை சாத்தியமாக்கியது, எடுத்துக்காட்டாக, CPU பயன்பாடு, ரேம் அல்லது கோரிக்கைகளின் எண்ணிக்கை. ஆனால் அனைத்து இலவச நிகழ்வுகளையும் பணிகள் ஆக்கிரமித்திருந்தால், புதிய இயந்திரங்கள் தானாக உருவாக்கப்படவில்லை.

ECS திறன் வழங்குநர்களின் (ECS CP) வருகையுடன் இது மாறிவிட்டது. இப்போது ECS இல் உள்ள ஒவ்வொரு சேவையும் ASG உடன் இணைக்கப்படலாம், மேலும் பணிகள் இயங்கும் நிகழ்வுகளில் பொருந்தவில்லை என்றால், புதியவை உயர்த்தப்படும் (ஆனால் நிறுவப்பட்ட ASG வரம்புகளுக்குள்). இதுவும் எதிர் திசையில் வேலை செய்கிறது, ECS CP ஆனது பணிகள் இல்லாமல் செயலற்ற நிகழ்வுகளைக் கண்டால், அவற்றை மூடுவதற்கு ASG கட்டளையை வழங்கும். ECS CP ஆனது ஒரு இலக்கு சதவீத நிகழ்வு சுமையைக் குறிப்பிடும் திறனைக் கொண்டுள்ளது, இதனால் குறிப்பிட்ட எண்ணிக்கையிலான இயந்திரங்கள் விரைவாக அளவிடும் பணிகளுக்கு எப்போதும் இலவசம்; இதைப் பற்றி சிறிது நேரம் கழித்து பேசுகிறேன்.

EC2 வார்ப்புருக்களை துவக்கவும்

இந்த உள்கட்டமைப்பை உருவாக்குவது பற்றி விரிவாகப் பேசுவதற்கு முன் நான் பேசும் கடைசி சேவை EC2 Launch Templates ஆகும். ஒவ்வொரு முறையும் புதிதாக இதை மீண்டும் செய்யாமல் இருக்க, எல்லா இயந்திரங்களும் தொடங்கும் வகையில் ஒரு டெம்ப்ளேட்டை உருவாக்க இது உங்களை அனுமதிக்கிறது. இங்கே நீங்கள் தொடங்குவதற்கான இயந்திரத்தின் வகை, பாதுகாப்பு குழு, வட்டு படம் மற்றும் பல அளவுருக்களை தேர்ந்தெடுக்கலாம். தொடங்கப்பட்ட அனைத்து நிகழ்வுகளிலும் பதிவேற்றப்படும் பயனர் தரவையும் நீங்கள் குறிப்பிடலாம். நீங்கள் பயனர் தரவில் ஸ்கிரிப்ட்களை இயக்கலாம், எடுத்துக்காட்டாக, ஒரு கோப்பின் உள்ளடக்கங்களை நீங்கள் திருத்தலாம் ECS முகவர் கட்டமைப்புகள்.

இந்த கட்டுரைக்கான மிக முக்கியமான உள்ளமைவு அளவுருக்களில் ஒன்று ECS_ENABLE_SPOT_INSTANCE_DRAINING= உண்மை. இந்த அளவுரு இயக்கப்பட்டிருந்தால், ECS ஒரு ஸ்பாட் இன்ஸ்டென்ஸ் எடுத்துச் செல்லப்படுவதாக ஒரு சிக்னலைப் பெற்றவுடன், அது வேலை செய்யும் அனைத்து பணிகளையும் வடிகால் நிலைக்கு மாற்றும். இந்த நிகழ்விற்கு புதிய பணிகள் எதுவும் ஒதுக்கப்படாது; இப்போதே தொடங்க விரும்பும் பணிகள் இருந்தால், அவை ரத்து செய்யப்படும். பேலன்சரின் கோரிக்கைகளும் வருவது நின்றுவிடும். நிகழ்வை நீக்குவதற்கான அறிவிப்பு உண்மையான நிகழ்வுக்கு 2 நிமிடங்களுக்கு முன் வரும். எனவே, உங்கள் சேவையானது 2 நிமிடங்களுக்கு மேல் பணிகளைச் செய்யவில்லை மற்றும் வட்டில் எதையும் சேமிக்கவில்லை என்றால், நீங்கள் தரவுகளை இழக்காமல் ஸ்பாட் நிகழ்வுகளைப் பயன்படுத்தலாம்.

வட்டு பற்றி - சமீபத்தில் AWS நான் ECS உடன் இணைந்து மீள் கோப்பு முறைமையை (EFS) பயன்படுத்த முடியும்; இந்த திட்டத்துடன், வட்டு கூட ஒரு தடையாக இல்லை, ஆனால் நாங்கள் இதை முயற்சிக்கவில்லை, ஏனெனில் கொள்கையளவில் மாநிலத்தை சேமிக்க எங்களுக்கு வட்டு தேவையில்லை. இயல்பாக, SIGINT ஐப் பெற்ற பிறகு (ஒரு பணி வடிகால் நிலைக்கு மாற்றப்படும் போது அனுப்பப்படும்), இயங்கும் அனைத்து பணிகளும் 30 வினாடிகளுக்குப் பிறகு நிறுத்தப்படும், அவை இன்னும் முடிக்கப்படாவிட்டாலும் கூட, அளவுருவைப் பயன்படுத்தி இந்த நேரத்தை மாற்றலாம் ECS_CONTAINER_STOP_TIMEOUT. முக்கிய விஷயம், ஸ்பாட் இயந்திரங்களுக்கு 2 நிமிடங்களுக்கு மேல் அமைக்கக்கூடாது.

ஒரு சேவையை உருவாக்குதல்

விவரிக்கப்பட்ட சேவையை உருவாக்குவதற்கு செல்லலாம். செயல்பாட்டில், மேலே குறிப்பிடப்படாத பல பயனுள்ள விஷயங்களை நான் கூடுதலாக விவரிக்கிறேன். பொதுவாக, இது ஒரு படிப்படியான அறிவுறுத்தலாகும், ஆனால் சில மிக அடிப்படையான அல்லது மாறாக, மிகவும் குறிப்பிட்ட நிகழ்வுகளை நான் கருத்தில் கொள்ள மாட்டேன். அனைத்து செயல்களும் AWS காட்சி கன்சோலில் செய்யப்படுகின்றன, ஆனால் CloudFormation அல்லது Terraform ஐப் பயன்படுத்தி நிரல் ரீதியாக மீண்டும் உருவாக்க முடியும். Adapty இல் நாம் Terraform ஐப் பயன்படுத்துகிறோம்.

EC2 வெளியீட்டு டெம்ப்ளேட்

இந்த சேவை பயன்படுத்தப்படும் இயந்திரங்களின் உள்ளமைவை உருவாக்குகிறது. வார்ப்புருக்கள் EC2 -> நிகழ்வுகள் -> துவக்க வார்ப்புருக்கள் பிரிவில் நிர்வகிக்கப்படுகின்றன.

அமேசான் இயந்திரப் படம் (AMI) — அனைத்து நிகழ்வுகளும் தொடங்கப்படும் வட்டு படத்தை குறிப்பிடவும். ECS க்கு, பெரும்பாலான சந்தர்ப்பங்களில் Amazon இலிருந்து உகந்த படத்தைப் பயன்படுத்துவது மதிப்பு. இது தொடர்ந்து புதுப்பிக்கப்பட்டு, ECS வேலை செய்ய தேவையான அனைத்தையும் கொண்டுள்ளது. தற்போதைய பட ஐடியைக் கண்டறிய, பக்கத்திற்குச் செல்லவும் Amazon ECS-உகந்த AMIகள், நீங்கள் பயன்படுத்தும் பகுதியைத் தேர்ந்தெடுத்து அதற்கான AMI ஐடியை நகலெடுக்கவும். எடுத்துக்காட்டாக, us-east-1 பிராந்தியத்திற்கு, எழுதும் நேரத்தில் தற்போதைய ஐடி ami-00c7c1cf5bdc913ed. தனிப்பயன் மதிப்பைக் குறிப்பிடு உருப்படியில் இந்த ஐடி செருகப்பட வேண்டும்.

நிகழ்வு வகை - நிகழ்வு வகையைக் குறிக்கவும். உங்கள் பணிக்கு மிகவும் பொருத்தமான ஒன்றைத் தேர்ந்தெடுக்கவும்.

முக்கிய ஜோடி (உள்நுழைவு) - தேவைப்பட்டால், SSH வழியாக நீங்கள் நிகழ்வை இணைக்கக்கூடிய சான்றிதழைக் குறிப்பிடவும்.

நெட்வொர்க் அமைப்புகள் - பிணைய அளவுருக்களைக் குறிப்பிடவும். நெட்வொர்க்கிங் தளம் பெரும்பாலான சந்தர்ப்பங்களில் மெய்நிகர் தனியார் கிளவுட் (VPC) இருக்க வேண்டும். பாதுகாப்பு குழுக்கள் - உங்கள் நிகழ்வுகளுக்கான பாதுகாப்பு குழுக்கள். நிகழ்வுகளுக்கு முன்னால் ஒரு பேலன்சரைப் பயன்படுத்துவோம் என்பதால், பேலன்சரிடமிருந்து மட்டுமே உள்வரும் இணைப்புகளை அனுமதிக்கும் ஒரு குழுவை இங்கே குறிப்பிட பரிந்துரைக்கிறேன். அதாவது, 2 (http) மற்றும் 80 (https) ஆகிய போர்ட்களில் எங்கிருந்தும் உள்வரும் இணைப்புகளை அனுமதிக்கும் 443 பாதுகாப்புக் குழுக்கள் உங்களிடம் இருக்கும். . இரு குழுக்களிலும் உள்ள வெளிச்செல்லும் இணைப்புகள் TCP நெறிமுறையைப் பயன்படுத்தி அனைத்து துறைமுகங்களுக்கும் அனைத்து முகவரிகளுக்கும் திறக்கப்பட வேண்டும். வெளிச்செல்லும் இணைப்புகளுக்கான போர்ட்கள் மற்றும் முகவரிகளை நீங்கள் கட்டுப்படுத்தலாம், ஆனால் மூடிய போர்ட்டில் நீங்கள் எதையாவது அணுக முயற்சிக்கவில்லை என்பதை நீங்கள் தொடர்ந்து கண்காணிக்க வேண்டும்.

சேமிப்பு (தொகுதிகள்) - இயந்திரங்களுக்கான வட்டு அளவுருக்களைக் குறிப்பிடவும். வட்டு அளவு AMI இல் குறிப்பிடப்பட்டுள்ளதை விட குறைவாக இருக்கக்கூடாது; ECS ஆப்டிமைஸ்டுக்கு இது 30 GiB ஆகும்.

மேம்பட்ட விவரங்கள் - கூடுதல் அளவுருக்களைக் குறிப்பிடவும்.

வாங்கும் விருப்பம் — நாம் ஸ்பாட் நிகழ்வுகளை வாங்க வேண்டுமா. நாங்கள் விரும்புகிறோம், ஆனால் இந்த பெட்டியை இங்கே சரிபார்க்க மாட்டோம்; நாங்கள் அதை ஆட்டோ ஸ்கேலிங் குழுவில் உள்ளமைப்போம், மேலும் விருப்பங்கள் உள்ளன.

IAM நிகழ்வு சுயவிவரம் — நிகழ்வுகள் தொடங்கப்படும் பங்கைக் குறிக்கவும். நிகழ்வுகள் ECS இல் இயங்க, அவற்றுக்கு அனுமதிகள் தேவை, அவை வழக்கமாக பாத்திரத்தில் காணப்படுகின்றன ecsInstanceRole. சில சந்தர்ப்பங்களில் அதை உருவாக்கலாம், இல்லையென்றால், இங்கே அறிவுறுத்தல் இதை எப்படி செய்வது. உருவாக்கிய பிறகு, அதை டெம்ப்ளேட்டில் குறிப்பிடுகிறோம்.
அடுத்து பல அளவுருக்கள் உள்ளன, அடிப்படையில் நீங்கள் எல்லா இடங்களிலும் இயல்புநிலை மதிப்புகளை விட்டுவிடலாம், ஆனால் அவை ஒவ்வொன்றிற்கும் தெளிவான விளக்கம் உள்ளது. EBS-உகந்த நிகழ்வு மற்றும் T2/T3 வரம்பற்ற விருப்பங்களைப் பயன்படுத்தினால் நான் எப்போதும் இயக்குவேன் வெடிக்கக்கூடிய நிகழ்வுகள்.

பயனர் தரவு - பயனர் தரவைக் குறிக்கவும். நாங்கள் கோப்பைத் திருத்துவோம் /etc/ecs/ecs.config, இதில் ECS ஏஜென்ட் உள்ளமைவு உள்ளது.
பயனர் தரவு எப்படி இருக்கும் என்பதற்கான எடுத்துக்காட்டு:

#!/bin/bash
echo ECS_CLUSTER=DemoApiClusterProd >> /etc/ecs/ecs.config
echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config
echo ECS_CONTAINER_STOP_TIMEOUT=1m >> /etc/ecs/ecs.config
echo ECS_ENGINE_AUTH_TYPE=docker >> /etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"registry.gitlab.com":{"username":"username","password":"password"}}" >> /etc/ecs/ecs.config

ECS_CLUSTER=DemoApiClusterProd — அளவுருவானது கொடுக்கப்பட்ட பெயருடன் ஒரு கிளஸ்டருக்கு சொந்தமானது என்பதைக் குறிக்கிறது, அதாவது, இந்த கிளஸ்டர் அதன் பணிகளை இந்த சேவையகத்தில் வைக்க முடியும். நாங்கள் இன்னும் ஒரு கிளஸ்டரை உருவாக்கவில்லை, ஆனால் அதை உருவாக்கும் போது இந்தப் பெயரைப் பயன்படுத்துவோம்.

ECS_ENABLE_SPOT_INSTANCE_DRAINING=true — ஒரு ஸ்பாட் நிகழ்வை அணைக்க ஒரு சமிக்ஞை பெறப்பட்டால், அதில் உள்ள அனைத்து பணிகளும் வடிகால் நிலைக்கு மாற்றப்பட வேண்டும் என்று அளவுரு குறிப்பிடுகிறது.

ECS_CONTAINER_STOP_TIMEOUT=1m - ஒரு SIGINT சிக்னலைப் பெற்ற பிறகு, அனைத்து பணிகளும் கொல்லப்படுவதற்கு 1 நிமிடம் ஆகும் என்று அளவுரு குறிப்பிடுகிறது.

ECS_ENGINE_AUTH_TYPE=docker — டோக்கர் திட்டம் அங்கீகார பொறிமுறையாகப் பயன்படுத்தப்படுவதை அளவுரு குறிக்கிறது

ECS_ENGINE_AUTH_DATA=... — உங்கள் டோக்கர் படங்கள் சேமிக்கப்படும் தனியார் கொள்கலன் பதிவேட்டிற்கான இணைப்பு அளவுருக்கள். இது பொது என்றால், நீங்கள் எதையும் குறிப்பிட தேவையில்லை.

இந்தக் கட்டுரையின் நோக்கங்களுக்காக, நான் Docker Hub இலிருந்து ஒரு பொது படத்தைப் பயன்படுத்துவேன், எனவே அளவுருக்களைக் குறிப்பிடவும் ECS_ENGINE_AUTH_TYPE и ECS_ENGINE_AUTH_DATA தேவை இல்லை.

தெரிந்து கொள்வது நல்லது: AMI ஐ தவறாமல் புதுப்பிக்க பரிந்துரைக்கப்படுகிறது, ஏனெனில் புதிய பதிப்புகள் Docker, Linux, ECS முகவர் போன்றவற்றின் பதிப்புகளைப் புதுப்பிக்கின்றன. இதை மறந்துவிடாமல் இருக்க, உங்களால் முடியும் அறிவிப்புகளை அமைக்கவும் புதிய பதிப்புகளின் வெளியீடு பற்றி. நீங்கள் மின்னஞ்சல் மூலம் அறிவிப்புகளைப் பெறலாம் மற்றும் கைமுறையாக புதுப்பிக்கலாம் அல்லது புதுப்பிக்கப்பட்ட AMI உடன் துவக்க டெம்ப்ளேட்டின் புதிய பதிப்பைத் தானாக உருவாக்கும் Lambda செயல்பாட்டை எழுதலாம்.

EC2 ஆட்டோ ஸ்கேலிங் குழு

நிகழ்வுகளைத் தொடங்குவதற்கும் அளவிடுவதற்கும் ஆட்டோ ஸ்கேலிங் குழு பொறுப்பாகும். குழுக்கள் EC2 -> Auto Scaling -> Auto Scaling Groups பிரிவில் நிர்வகிக்கப்படுகின்றன.

டெம்ப்ளேட்டை துவக்கவும் - முந்தைய கட்டத்தில் உருவாக்கப்பட்ட டெம்ப்ளேட்டைத் தேர்ந்தெடுக்கவும். இயல்புநிலை பதிப்பை விட்டு விடுகிறோம்.

கொள்முதல் விருப்பங்கள் மற்றும் நிகழ்வு வகைகள் - கிளஸ்டருக்கான நிகழ்வுகளின் வகைகளைக் குறிப்பிடவும். துவக்க டெம்ப்ளேட்டை கடைபிடிப்பது, துவக்க டெம்ப்ளேட்டிலிருந்து நிகழ்வு வகையைப் பயன்படுத்துகிறது. கொள்முதல் விருப்பங்கள் மற்றும் நிகழ்வு வகைகளை இணைத்து, நிகழ்வு வகைகளை நெகிழ்வாக உள்ளமைக்க அனுமதிக்கிறது. அதைப் பயன்படுத்துவோம்.

விருப்பத்தேர்வு அடிப்படை - எப்போதும் வேலை செய்யும் வழக்கமான, இடமில்லாத நிகழ்வுகளின் எண்ணிக்கை.

அடிப்படைக்கு மேல் தேவை சதவீதம் - வழக்கமான மற்றும் ஸ்பாட் நிகழ்வுகளின் சதவீத விகிதம், 50-50 சமமாக விநியோகிக்கப்படும், ஒவ்வொரு வழக்கமான நிகழ்வுக்கும் 20-80 4 புள்ளிகள் உயர்த்தப்படும். இந்த எடுத்துக்காட்டின் நோக்கங்களுக்காக, நான் 50-50 ஐக் குறிப்பிடுவேன், ஆனால் உண்மையில் நாம் பெரும்பாலும் 20-80, சில சந்தர்ப்பங்களில் 0-100.

நிகழ்வு வகைகள் — இங்கே நீங்கள் கிளஸ்டரில் பயன்படுத்தப்படும் கூடுதல் வகையான நிகழ்வுகளைக் குறிப்பிடலாம். கதையின் அர்த்தம் எனக்குப் புரியாததால் நாங்கள் அதைப் பயன்படுத்தவில்லை. ஒருவேளை இது குறிப்பிட்ட வகையான நிகழ்வுகளின் வரம்புகளின் காரணமாக இருக்கலாம், ஆனால் அவை ஆதரவின் மூலம் எளிதாக அதிகரிக்கப்படலாம். பயன்பாடு உங்களுக்குத் தெரிந்தால், கருத்துகளில் அதைப் படிப்பதில் மகிழ்ச்சி அடைவேன்)

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

பிணையம் - பிணைய அமைப்புகள், கணினிகளுக்கான VPC மற்றும் சப்நெட்களைத் தேர்ந்தெடுக்கவும், பெரும்பாலான சந்தர்ப்பங்களில் நீங்கள் கிடைக்கக்கூடிய அனைத்து சப்நெட்களையும் தேர்ந்தெடுக்க வேண்டும்.

சுமை சமநிலை - சமநிலை அமைப்புகள், ஆனால் நாங்கள் இதை தனித்தனியாக செய்வோம், நாங்கள் இங்கே எதையும் தொட மாட்டோம். சுகாதார சோதனைகள் மேலும் பின்னர் கட்டமைக்கப்படும்.

குழு அளவு — கிளஸ்டரில் உள்ள இயந்திரங்களின் எண்ணிக்கை மற்றும் தொடக்கத்தில் விரும்பிய எண்ணிக்கையிலான இயந்திரங்களின் வரம்புகளை நாங்கள் குறிப்பிடுகிறோம். அளவீடுகளின்படி அளவிடுதல் ஏற்பட்டாலும், கிளஸ்டரில் உள்ள இயந்திரங்களின் எண்ணிக்கை குறைந்தபட்சம் குறிப்பிடப்பட்டதை விட குறைவாகவும் அதிகபட்சத்தை விட அதிகமாகவும் இருக்காது.

அளவிடுதல் கொள்கைகள் - அளவிடுதல் அளவுருக்கள், ஆனால் இயங்கும் ECS பணிகளின் அடிப்படையில் அளவிடுவோம், எனவே அளவிடுதலை பின்னர் கட்டமைப்போம்.

உதாரணம் அளவிலான பாதுகாப்பு - குறைக்கும் போது நீக்கப்படுவதிலிருந்து நிகழ்வுகளின் பாதுகாப்பு. இயங்கும் பணிகளைக் கொண்ட இயந்திரத்தை ASG நீக்காதபடி அதை இயக்குகிறோம். ECS திறன் வழங்குநர் பணிகள் இல்லாத நிகழ்வுகளுக்கு பாதுகாப்பை முடக்கும்.

குறிச்சொற்களைச் சேர்க்கவும் — நீங்கள் நிகழ்வுகளுக்கான குறிச்சொற்களைக் குறிப்பிடலாம் (இதற்காக, Tag new instances தேர்வுப்பெட்டி சரிபார்க்கப்பட வேண்டும்). பெயர் குறிச்சொல்லைக் குறிப்பிட பரிந்துரைக்கிறேன், பின்னர் குழுவில் தொடங்கப்படும் அனைத்து நிகழ்வுகளும் ஒரே பெயரைக் கொண்டிருக்கும், மேலும் அவற்றை கன்சோலில் பார்ப்பது வசதியானது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

குழுவை உருவாக்கிய பிறகு, அதைத் திறந்து மேம்பட்ட கட்டமைப்புகள் பகுதிக்குச் செல்லவும்.ஏன் அனைத்து விருப்பங்களும் உருவாக்கும் கட்டத்தில் கன்சோலில் தெரியவில்லை.

பணிநீக்கம் கொள்கைகள் - நிகழ்வுகளை நீக்கும் போது கணக்கில் எடுத்துக்கொள்ளப்படும் விதிகள். அவை வரிசையில் பயன்படுத்தப்படுகின்றன. நாம் பொதுவாக கீழே உள்ள படத்தில் உள்ளவற்றைப் பயன்படுத்துகிறோம். முதலில், பழமையான துவக்க டெம்ப்ளேட் உள்ள நிகழ்வுகள் நீக்கப்படும் (உதாரணமாக, நாங்கள் AMI ஐ புதுப்பித்திருந்தால், புதிய பதிப்பை உருவாக்கினோம், ஆனால் எல்லா நிகழ்வுகளும் அதற்கு மாற முடிந்தது). அடுத்த பில்லிங் மணிநேரத்திற்கு மிக அருகில் இருக்கும் நிகழ்வுகள் தேர்ந்தெடுக்கப்படும். பின்னர் தொடக்க தேதியின் அடிப்படையில் பழமையானவை தேர்ந்தெடுக்கப்படுகின்றன.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

தெரிந்து கொள்வது நல்லது: அனைத்து இயந்திரங்களையும் ஒரு கிளஸ்டரில் புதுப்பிக்க, பயன்படுத்த வசதியானது உதாரணம் புதுப்பித்தல். முந்தைய படியிலிருந்து லாம்ப்டா செயல்பாட்டுடன் இதை நீங்கள் இணைத்தால், நீங்கள் முழு தானியங்கு நிகழ்வு புதுப்பிப்பு முறையைப் பெறுவீர்கள். எல்லா இயந்திரங்களையும் புதுப்பிப்பதற்கு முன், குழுவில் உள்ள அனைத்து நிகழ்வுகளுக்கும் நீங்கள் நிகழ்வு அளவிலான பாதுகாப்பை முடக்க வேண்டும். குழுவில் உள்ளமைவு அல்ல, ஆனால் இயந்திரங்களிலிருந்து பாதுகாப்பு, இது நிகழ்வு மேலாண்மை தாவலில் செய்யப்படுகிறது.

பயன்பாட்டு சுமை சமநிலையாளர் மற்றும் EC2 இலக்கு குழு

சமநிலையானது EC2 → சுமை சமநிலை → சுமை சமநிலைகள் பிரிவில் உருவாக்கப்பட்டுள்ளது. நாங்கள் அப்ளிகேஷன் லோட் பேலன்சரைப் பயன்படுத்துவோம்; பல்வேறு வகையான பேலன்சர்களின் ஒப்பீட்டை இங்கே படிக்கலாம் சேவை பக்கம்.

கேட்போர் - 80 மற்றும் 443 போர்ட்களை உருவாக்கி, பின்னர் பேலன்சர் விதிகளைப் பயன்படுத்தி 80 முதல் 443 க்கு திருப்பி விடுவது அர்த்தமுள்ளதாக இருக்கிறது.

கிடைக்கும் மண்டலங்கள் — பெரும்பாலான சந்தர்ப்பங்களில், நாங்கள் அனைவருக்கும் அணுகல் மண்டலங்களைத் தேர்ந்தெடுக்கிறோம்.

பாதுகாப்பு அமைப்புகளை உள்ளமைக்கவும் - பேலன்சருக்கான SSL சான்றிதழ் இங்கே குறிப்பிடப்பட்டுள்ளது, மிகவும் வசதியான விருப்பம் ஒரு சான்றிதழ் செய்யுங்கள் ACM இல். வேறுபாடுகள் பற்றி பாதுகாப்பு கொள்கை உள்ள படிக்க முடியும் ஆவணங்கள், நீங்கள் அதை இயல்புநிலையாக தேர்ந்தெடுத்து விடலாம் ELBSecurityPolicy-2016-08. பேலன்சரை உருவாக்கிய பிறகு, நீங்கள் அதைப் பார்ப்பீர்கள் டிஎன்எஸ் பெயர், உங்கள் டொமைனுக்கான CNAME ஐ நீங்கள் கட்டமைக்க வேண்டும். எடுத்துக்காட்டாக, கிளவுட்ஃப்ளேரில் இது எப்படி இருக்கிறது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

பாதுகாப்பு குழு - பேலன்சருக்கான பாதுகாப்புக் குழுவை உருவாக்கவும் அல்லது தேர்ந்தெடுக்கவும், இதைப் பற்றி மேலே EC2 துவக்க டெம்ப்ளேட் → நெட்வொர்க் அமைப்புகள் பிரிவில் எழுதியுள்ளேன்.

இலக்கு குழு - பேலன்சரிடமிருந்து இயந்திரங்களுக்கு கோரிக்கைகளை அனுப்புவதற்கும், சிக்கல்கள் ஏற்பட்டால் அவற்றை மாற்றுவதற்காக அவற்றின் இருப்பை சரிபார்க்கவும் பொறுப்பான குழுவை நாங்கள் உருவாக்குகிறோம். இலக்கு வகை உதாரணமாக இருக்க வேண்டும், நெறிமுறை и போர்ட் ஏதேனும், பேலன்சர் மற்றும் நிகழ்வுகளுக்கு இடையே தொடர்பு கொள்ள HTTPSஐப் பயன்படுத்தினால், நீங்கள் அவர்களுக்கு ஒரு சான்றிதழைப் பதிவேற்ற வேண்டும். இந்த எடுத்துக்காட்டின் நோக்கங்களுக்காக, நாங்கள் இதைச் செய்ய மாட்டோம், போர்ட் 80 ஐ விட்டுவிடுவோம்.

சுகாதார சோதனைகள் - சேவையின் செயல்பாட்டை சரிபார்க்க அளவுருக்கள். உண்மையான சேவையில், இது வணிக தர்க்கத்தின் முக்கியமான பகுதிகளைச் செயல்படுத்தும் ஒரு தனி கோரிக்கையாக இருக்க வேண்டும்; இந்த எடுத்துக்காட்டின் நோக்கங்களுக்காக, நான் இயல்புநிலை அமைப்புகளை விட்டுவிடுகிறேன். அடுத்து, நீங்கள் கோரிக்கை இடைவெளி, காலக்கெடு, வெற்றிக் குறியீடுகள் போன்றவற்றைத் தேர்ந்தெடுக்கலாம். எங்கள் எடுத்துக்காட்டில், வெற்றிக் குறியீடுகள் 200-399 என்பதைக் குறிப்பிடுவோம், ஏனெனில் பயன்படுத்தப்படும் டோக்கர் படம் 304 குறியீட்டை வழங்குகிறது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

பதிவு இலக்குகள் — இங்கே குழுவிற்கான கார்கள் தேர்ந்தெடுக்கப்பட்டன, ஆனால் எங்கள் விஷயத்தில் இது ECS ஆல் செய்யப்படும், எனவே இந்த படிநிலையைத் தவிர்க்கிறோம்.

தெரிந்து கொள்வது நல்லது: பேலன்சர் மட்டத்தில் நீங்கள் குறிப்பிட்ட நேரத்தில் S3 இல் சேமிக்கப்படும் பதிவுகளை இயக்கலாம் வடிவம். அங்கிருந்து அவை பகுப்பாய்வுக்காக மூன்றாம் தரப்பு சேவைகளுக்கு ஏற்றுமதி செய்யப்படலாம் அல்லது S3 இல் உள்ள தரவுகளில் நேரடியாக SQL வினவல்களை செய்யலாம் அதீனாவைப் பயன்படுத்துகிறது. இது வசதியானது மற்றும் கூடுதல் குறியீடு இல்லாமல் வேலை செய்கிறது. ஒரு குறிப்பிட்ட காலத்திற்குப் பிறகு S3 வாளியில் இருந்து பதிவுகளை அகற்றுவதை அமைக்கவும் பரிந்துரைக்கிறேன்.

ECS பணி வரையறை

முந்தைய படிகளில், சேவை உள்கட்டமைப்பு தொடர்பான அனைத்தையும் நாங்கள் உருவாக்கியுள்ளோம்; இப்போது நாங்கள் தொடங்கும் கொள்கலன்களை விவரிக்கிறோம். இது ECS → Task Definitions பிரிவில் செய்யப்படுகிறது.

துவக்க வகை இணக்கத்தன்மை - EC2 ஐத் தேர்ந்தெடுக்கவும்.

பணி நிறைவேற்றம் IAM பங்கு - தேர்வு ecsTaskExecutionRole. இதைப் பயன்படுத்தி, பதிவுகள் எழுதப்படுகின்றன, ரகசிய மாறிகளுக்கான அணுகல் வழங்கப்படுகிறது.

கொள்கலன் வரையறைகள் பிரிவில், கொள்கலனைச் சேர் என்பதைக் கிளிக் செய்யவும்.

பட - திட்டக் குறியீட்டுடன் படத்திற்கான இணைப்பு; இந்த உதாரணத்திற்கு நான் Docker Hub இலிருந்து ஒரு பொது படத்தைப் பயன்படுத்துவேன் bitnami/node-example:0.0.1.

நினைவக வரம்புகள் - கொள்கலனுக்கான நினைவக வரம்புகள். கடின வரம்பு - கடினமான வரம்பு, குறிப்பிட்ட மதிப்பைத் தாண்டி கொள்கலன் சென்றால், டோக்கர் கில் கட்டளை செயல்படுத்தப்படும், கொள்கலன் உடனடியாக இறந்துவிடும். மென்மையான வரம்பு - மென்மையான வரம்பு, கொள்கலன் குறிப்பிட்ட மதிப்பைத் தாண்டி செல்லலாம், ஆனால் இயந்திரங்களில் பணிகளை வைக்கும் போது இந்த அளவுரு கணக்கில் எடுத்துக்கொள்ளப்படும். எடுத்துக்காட்டாக, ஒரு இயந்திரத்தில் 4 GiB ரேம் இருந்தால், மற்றும் ஒரு கொள்கலனின் மென்மையான வரம்பு 2048 MiB என்றால், இந்த இயந்திரம் இந்த கொள்கலனில் அதிகபட்சமாக 2 இயங்கும் பணிகளைக் கொண்டிருக்கலாம். உண்மையில், 4 GiB ரேம் 4096 MiB ஐ விட சற்று குறைவாக உள்ளது, இதை கிளஸ்டரில் உள்ள ECS நிகழ்வுகள் தாவலில் பார்க்கலாம். மென்மையான வரம்பு கடினமான வரம்பை விட அதிகமாக இருக்கக்கூடாது. ஒரு பணியில் பல கொள்கலன்கள் இருந்தால், அவற்றின் வரம்புகள் சுருக்கப்பட்டுள்ளன என்பதைப் புரிந்துகொள்வது அவசியம்.

துறைமுக வரைபடங்கள் - இல் ஹோஸ்ட் போர்ட் நாங்கள் 0 ஐக் குறிப்பிடுகிறோம், இதன் பொருள் போர்ட் மாறும் வகையில் ஒதுக்கப்படும் மற்றும் இலக்கு குழுவால் கண்காணிக்கப்படும். கொள்கலன் துறைமுகம் — உங்கள் பயன்பாடு இயங்கும் போர்ட் பெரும்பாலும் செயல்படுத்தல் கட்டளையில் குறிப்பிடப்படுகிறது அல்லது உங்கள் பயன்பாட்டுக் குறியீடு, Dockerfile போன்றவற்றில் ஒதுக்கப்படும். எங்கள் உதாரணத்திற்கு, 3000ஐப் பயன்படுத்துவோம், ஏனெனில் அது பட்டியலிடப்பட்டுள்ளது டோக்கர்ஃபைல் பயன்படுத்தப்படும் படம்.

சுகாதார சோதனை - கொள்கலன் சுகாதார சோதனை அளவுருக்கள், இலக்கு குழுவில் உள்ளமைக்கப்பட்டவற்றுடன் குழப்பமடையக்கூடாது.

சுற்றுச்சூழல் - சுற்றுச்சூழல் அமைப்புகள். CPU அலகுகள் - நினைவக வரம்புகளைப் போலவே, செயலியைப் பற்றி மட்டுமே. ஒவ்வொரு செயலி மையமும் 1024 அலகுகள், எனவே சர்வரில் டூயல் கோர் செயலி இருந்தால் மற்றும் கொள்கலன் 512 ஆக அமைக்கப்பட்டால், இந்த கொள்கலனுடன் 4 பணிகளை ஒரு சேவையகத்தில் தொடங்கலாம். CPU அலகுகள் எப்போதும் கோர்களின் எண்ணிக்கையுடன் ஒத்துப்போகின்றன; நினைவகத்தைப் போலவே அவற்றில் கொஞ்சம் குறைவாக இருக்க முடியாது.

கட்டளை - ஒரு கொள்கலனுக்குள் ஒரு சேவையைத் தொடங்குவதற்கான கட்டளை, அனைத்து அளவுருக்களும் காற்புள்ளிகளால் பிரிக்கப்படுகின்றன. இது குனிகார்ன், என்பிஎம் போன்றவையாக இருக்கலாம். குறிப்பிடப்படவில்லை எனில், Dockerfile இலிருந்து CMD கட்டளையின் மதிப்பு பயன்படுத்தப்படும். நாங்கள் குறிப்பிடுகிறோம் npm,start.

சுற்றுச்சூழல் மாறிகள் - கொள்கலன் சூழல் மாறிகள். இது எளிய உரை தரவு அல்லது இரகசிய மாறிகள் இரகசிய மேலாளர் அல்லது அளவுரு ஸ்டோர்.

சேமிப்பு மற்றும் பதிவு செய்தல் — இங்கே நாம் CloudWatch பதிவுகளில் உள்நுழைவதை அமைப்போம் (AWS இலிருந்து பதிவுகளுக்கான சேவை). இதைச் செய்ய, கிளவுட்வாட்ச் பதிவுகளைத் தானாக உள்ளமைக்கும் தேர்வுப்பெட்டியை இயக்கவும். பணி வரையறையை உருவாக்கிய பிறகு, CloudWatch இல் பதிவுகளின் குழு தானாகவே உருவாக்கப்படும். இயல்பாக, பதிவுகள் அதில் காலவரையின்றி சேமிக்கப்படும்; தக்கவைப்பு காலத்தை Never Expire என்பதிலிருந்து தேவையான காலத்திற்கு மாற்ற பரிந்துரைக்கிறேன். இது CloudWatch பதிவு குழுக்களில் செய்யப்படுகிறது, நீங்கள் தற்போதைய காலகட்டத்தில் கிளிக் செய்து புதிய ஒன்றைத் தேர்ந்தெடுக்க வேண்டும்.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

ECS கிளஸ்டர் மற்றும் ECS திறன் வழங்குநர்

ஒரு கிளஸ்டரை உருவாக்க ECS → Clusters பகுதிக்குச் செல்லவும். EC2 Linux + Networking ஐ டெம்ப்ளேட்டாகத் தேர்ந்தெடுக்கிறோம்.

கிளஸ்டர் பெயர் - மிக முக்கியமானது, வெளியீட்டு வார்ப்புரு அளவுருவில் குறிப்பிடப்பட்டுள்ள அதே பெயரை இங்கே செய்கிறோம் ECS_CLUSTER, எங்கள் விஷயத்தில் - DemoApiClusterProd. வெற்று கிளஸ்டரை உருவாக்கு தேர்வுப்பெட்டியை சரிபார்க்கவும். விருப்பமாக, CloudWatch இல் சேவைகளுக்கான அளவீடுகளைப் பார்க்க, கொள்கலன் நுண்ணறிவை இயக்கலாம். நீங்கள் எல்லாவற்றையும் சரியாகச் செய்திருந்தால், ECS நிகழ்வுகள் பிரிவில் ஆட்டோ ஸ்கேலிங் குழுவில் உருவாக்கப்பட்ட இயந்திரங்களைக் காண்பீர்கள்.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

தாவலுக்குச் செல்லவும் திறன் வழங்குநர்கள் மற்றும் புதிய ஒன்றை உருவாக்கவும். இயங்கும் ECS பணிகளின் எண்ணிக்கையைப் பொறுத்து இயந்திரங்களின் உருவாக்கம் மற்றும் பணிநிறுத்தம் ஆகியவற்றைக் கட்டுப்படுத்துவது அவசியம் என்பதை நான் உங்களுக்கு நினைவூட்டுகிறேன். ஒரு வழங்குநரை ஒரு குழுவிற்கு மட்டுமே ஒதுக்க முடியும் என்பதை கவனத்தில் கொள்ள வேண்டும்.

ஆட்டோ ஸ்கேலிங் குழு - முன்பு உருவாக்கப்பட்ட குழுவைத் தேர்ந்தெடுக்கவும்.

நிர்வகிக்கப்பட்ட அளவிடுதல் — வழங்குநர் சேவையை அளவிடும் வகையில் அதை இயக்கவும்.

இலக்கு கொள்ளளவு % - பணிகளுடன் ஏற்றப்பட்ட இயந்திரங்களில் எத்தனை சதவீதம் நமக்குத் தேவை. நீங்கள் 100% குறிப்பிட்டால், எல்லா இயந்திரங்களும் எப்போதும் இயங்கும் பணிகளில் பிஸியாக இருக்கும். நீங்கள் 50% ஐக் குறிப்பிட்டால், பாதி கார்கள் எப்போதும் இலவசமாக இருக்கும். இந்த வழக்கில், சுமைகளில் கூர்மையான ஜம்ப் இருந்தால், புதிய டாக்சிகள் உடனடியாக வரிசைப்படுத்தப்படும் நிகழ்வுகளுக்கு காத்திருக்காமல், இலவச கார்களைப் பெறும்.

நிர்வகிக்கப்பட்ட முடிவு பாதுகாப்பு — செயல்படுத்தவும், இந்த அளவுரு வழங்குநரை நீக்குவதில் இருந்து நிகழ்வுகளின் பாதுகாப்பை அகற்ற அனுமதிக்கிறது. கணினியில் செயலில் உள்ள பணிகள் இல்லாதபோது இது நிகழ்கிறது மற்றும் இலக்கு திறனை% அனுமதிக்கும்.

ECS சேவை மற்றும் அளவிடுதல் அமைப்பு

கடைசி படி :) ஒரு சேவையை உருவாக்க, நீங்கள் சேவைகள் தாவலில் முன்பு உருவாக்கப்பட்ட கிளஸ்டருக்கு செல்ல வேண்டும்.

துவக்க வகை — நீங்கள் திறன் வழங்குநர் உத்திக்கு மாறு என்பதைக் கிளிக் செய்து, முன்பு உருவாக்கிய வழங்குநர்களைத் தேர்ந்தெடுக்க வேண்டும்.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

பணி வரையறை — முன்பு உருவாக்கப்பட்ட பணி வரையறை மற்றும் அதன் திருத்தத்தைத் தேர்ந்தெடுக்கவும்.

சேவை பெயர் — குழப்பத்தைத் தவிர்க்க, நாங்கள் எப்போதும் பணி வரையறையையே குறிப்பிடுகிறோம்.

சேவை வகை - எப்போதும் பிரதி.

பணிகளின் எண்ணிக்கை - சேவையில் செயலில் உள்ள பணிகளின் விரும்பிய எண்ணிக்கை. இந்த அளவுரு அளவிடுதல் மூலம் கட்டுப்படுத்தப்படுகிறது, ஆனால் இன்னும் குறிப்பிடப்பட வேண்டும்.

குறைந்தபட்ச ஆரோக்கியமான சதவீதம் и அதிகபட்ச சதவீதம் - வரிசைப்படுத்தலின் போது பணிகளின் நடத்தையை தீர்மானிக்கவும். இயல்புநிலை மதிப்புகள் 100 மற்றும் 200 ஆகும், இது வரிசைப்படுத்தும் நேரத்தில் பணிகளின் எண்ணிக்கை பல மடங்கு அதிகரிக்கும், பின்னர் விரும்பிய மதிப்புக்குத் திரும்பும் என்பதைக் குறிக்கிறது. உங்களிடம் 1 பணி இயங்கினால், நிமிடம்=0, மற்றும் அதிகபட்சம்=100, வரிசைப்படுத்தலின் போது அது அழிக்கப்படும், அதன் பிறகு புதியது எழுப்பப்படும், அதாவது, அது வேலையில்லா நேரமாக இருக்கும். 1 பணி இயங்கினால், நிமிடம்=50, அதிகபட்சம்=150, பின்னர் வரிசைப்படுத்தல் நடக்காது, ஏனெனில் 1 பணியை பாதியாகப் பிரிக்கவோ அல்லது ஒன்றரை மடங்கு அதிகரிக்கவோ முடியாது.

வரிசைப்படுத்தல் வகை - ரோலிங் புதுப்பிப்பை விடுங்கள்.

வேலை வாய்ப்பு வார்ப்புருக்கள் - இயந்திரங்களில் பணிகளை வைப்பதற்கான விதிகள். இயல்புநிலை AZ பேலன்ஸ்டு ஸ்ப்ரெட் - இதன் பொருள் கிடைக்கும் அனைத்து மண்டலங்களிலும் உள்ள இயந்திரங்கள் உயரும் வரை ஒவ்வொரு புதிய பணியும் ஒரு புதிய நிகழ்வில் வைக்கப்படும். நாங்கள் வழக்கமாக BinPack - CPU மற்றும் Spread - AZ ஐ செய்வோம்; இந்தக் கொள்கையின் மூலம், ஒரு CPUக்கு ஒரு கணினியில் பணிகள் முடிந்தவரை அடர்த்தியாக வைக்கப்படும். ஒரு புதிய இயந்திரத்தை உருவாக்குவது அவசியமானால், அது ஒரு புதிய கிடைக்கும் மண்டலத்தில் உருவாக்கப்பட்டது.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

ஏற்ற சமநிலை வகை — விண்ணப்ப ஏற்றி சமநிலையை தேர்ந்தெடுக்கவும்.

சேவை IAM பங்கு - தேர்வு ecsServiceRole.

ஏற்ற சமநிலை பெயர் - முன்பு உருவாக்கப்பட்ட சமநிலையைத் தேர்ந்தெடுக்கவும்.

சுகாதார சோதனை சலுகை காலம் - ஒரு புதிய பணியை வெளியிட்ட பிறகு, சுகாதாரச் சோதனைகளைச் செய்வதற்கு முன், அதை 60 வினாடிகளுக்கு வழக்கமாக அமைக்கிறோம்.

சமநிலையை ஏற்றுவதற்கு கொள்கலன் — இலக்கு குழு பெயர் உருப்படியில், முன்பு உருவாக்கப்பட்ட குழுவைத் தேர்ந்தெடுக்கவும், அனைத்தும் தானாகவே நிரப்பப்படும்.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

சேவை ஆட்டோ ஸ்கேலிங் - சேவை அளவிடுதல் அளவுருக்கள். உங்கள் சேவையின் விரும்பிய எண்ணிக்கையை சரிசெய்ய, சேவை தானியங்கு அளவை உள்ளமை என்பதைத் தேர்ந்தெடுக்கவும். அளவிடும் போது பணிகளின் குறைந்தபட்ச மற்றும் அதிகபட்ச எண்ணிக்கையை அமைக்கிறோம்.

சேவை ஆட்டோ ஸ்கேலிங்கிற்கான IAM பங்கு - தேர்வு AWSServiceRoleForApplicationAutoScaling_ECSService.

தானியங்கி பணி அளவிடுதல் கொள்கைகள் - அளவிடுவதற்கான விதிகள். 2 வகைகள் உள்ளன:

  1. இலக்கு கண்காணிப்பு - இலக்கு அளவீடுகளைக் கண்காணித்தல் (CPU/RAM பயன்பாடு அல்லது ஒவ்வொரு பணிக்கான கோரிக்கைகளின் எண்ணிக்கை). எடுத்துக்காட்டாக, சராசரி செயலி சுமை 85% ஆக இருக்க வேண்டும், அது அதிகமாகும் போது, ​​இலக்கு மதிப்பை அடையும் வரை புதிய பணிகள் சேர்க்கப்படும். சுமை குறைவாக இருந்தால், குறைப்பதற்கு எதிரான பாதுகாப்பு இயக்கப்பட்டாலன்றி, மாறாக, பணிகள் அகற்றப்படும் (அளவுகோலை முடக்கு).
  2. படி அளவிடுதல் - ஒரு தன்னிச்சையான நிகழ்வுக்கான எதிர்வினை. எந்தவொரு நிகழ்விற்கும் (CloudWatch அலாரத்திற்கு) எதிர்வினையை இங்கே உள்ளமைக்கலாம், அது நிகழும்போது, ​​குறிப்பிட்ட எண்ணிக்கையிலான பணிகளைச் சேர்க்கலாம் அல்லது அகற்றலாம் அல்லது பணிகளின் சரியான எண்ணிக்கையைக் குறிப்பிடலாம்.

ஒரு சேவைக்கு பல அளவிடுதல் விதிகள் இருக்கலாம், இது பயனுள்ளதாக இருக்கும், முக்கிய விஷயம் அவை ஒருவருக்கொருவர் முரண்படாமல் இருப்பதை உறுதி செய்வதாகும்.

முடிவுக்கு

நீங்கள் வழிமுறைகளைப் பின்பற்றி அதே டோக்கர் படத்தைப் பயன்படுத்தினால், உங்கள் சேவை இது போன்ற பக்கத்தை வழங்கும்.

AWS ஸ்பாட் நிகழ்வுகளில் அளவிடக்கூடிய API ஐ உருவாக்குதல்

  1. நாங்கள் ஒரு டெம்ப்ளேட்டை உருவாக்கியுள்ளோம், அதன்படி சேவையில் உள்ள அனைத்து இயந்திரங்களும் தொடங்கப்படுகின்றன. டெம்ப்ளேட் மாறும்போது இயந்திரங்களை எவ்வாறு புதுப்பிப்பது என்பதையும் நாங்கள் கற்றுக்கொண்டோம்.
  2. ஸ்பாட் இன்ஸ்டன்ஸ் ஸ்டாப் சிக்னலின் செயலாக்கத்தை நாங்கள் உள்ளமைத்துள்ளோம், எனவே அதைப் பெற்ற ஒரு நிமிடத்திற்குள், இயங்கும் அனைத்து பணிகளும் இயந்திரத்திலிருந்து அகற்றப்படும், எனவே எதுவும் இழக்கப்படாது அல்லது குறுக்கிடப்படாது.
  3. இயந்திரங்கள் முழுவதும் சுமையை சமமாக விநியோகிக்க பேலன்சரை உயர்த்தினோம்.
  4. ஸ்பாட் நிகழ்வுகளில் இயங்கும் சேவையை நாங்கள் உருவாக்கியுள்ளோம், இது இயந்திரச் செலவை சுமார் 3 மடங்கு குறைக்கிறது.
  5. வேலையில்லாச் செலவுகள் இல்லாமல் அதிகரித்த பணிச்சுமையைக் கையாள இரு திசைகளிலும் ஆட்டோஸ்கேலிங்கை உள்ளமைத்துள்ளோம்.
  6. நாங்கள் திறன் வழங்குநரைப் பயன்படுத்துகிறோம், இதனால் பயன்பாடு உள்கட்டமைப்பை (இயந்திரங்கள்) நிர்வகிக்கிறது மற்றும் வேறு வழியில் அல்ல.
  7. நாங்கள் பெரியவர்கள்.

உங்களிடம் கணிக்கக்கூடிய ஏற்றங்கள் இருந்தால், எடுத்துக்காட்டாக, நீங்கள் ஒரு பெரிய மின்னஞ்சல் பிரச்சாரத்தில் விளம்பரம் செய்கிறீர்கள் என்றால், நீங்கள் அளவை அமைக்கலாம் கால அட்டவணை.

உங்கள் கணினியின் வெவ்வேறு பகுதிகளிலிருந்து தரவை அடிப்படையாகக் கொண்டும் அளவிடலாம். உதாரணமாக, எங்களிடம் செயல்பாடு உள்ளது தனிப்பட்ட விளம்பர சலுகைகளை அனுப்புதல் மொபைல் பயன்பாட்டின் பயனர்கள். சில நேரங்களில் ஒரு பிரச்சாரம் 1M+ நபர்களுக்கு அனுப்பப்படும். அத்தகைய விநியோகத்திற்குப் பிறகு, பல பயனர்கள் ஒரே நேரத்தில் பயன்பாட்டில் உள்நுழைவதால், APIக்கான கோரிக்கைகளில் எப்போதும் பெரிய அதிகரிப்பு உள்ளது. எனவே, விளம்பர புஷ் அறிவிப்புகளை அனுப்புவதற்கான வரிசையில் குறிப்பிடத்தக்க அளவு நிலையான குறிகாட்டிகள் இருப்பதைக் கண்டால், ஏற்றுவதற்குத் தயாராக இருக்கும் பல கூடுதல் இயந்திரங்கள் மற்றும் பணிகளை உடனடியாகத் தொடங்கலாம்.

ஸ்பாட் நிகழ்வுகள் மற்றும் ECS அல்லது அளவிடுதல் பற்றி ஏதாவது சுவாரஸ்யமான நிகழ்வுகளை நீங்கள் கருத்துகளில் சொன்னால் நான் மகிழ்ச்சியடைவேன்.

முக்கியமாக சர்வர்லெஸ் ஸ்டேக்கில் (பணத்துடன்) வினாடிக்கு ஆயிரக்கணக்கான பகுப்பாய்வு நிகழ்வுகளை எவ்வாறு செயலாக்குகிறோம் மற்றும் GitLab CI மற்றும் Terraform Cloud ஐப் பயன்படுத்தி சேவைகளின் வரிசைப்படுத்தல் எவ்வாறு செயல்படுகிறது என்பது பற்றிய கட்டுரைகள் விரைவில் வெளியிடப்படும்.

எங்களுக்கு குழுசேரவும், அது சுவாரஸ்யமாக இருக்கும்!

பதிவு செய்த பயனர்கள் மட்டுமே கணக்கெடுப்பில் பங்கேற்க முடியும். உள்நுழையவும், தயவு செய்து.

தயாரிப்பில் ஸ்பாட் நிகழ்வுகளைப் பயன்படுத்துகிறீர்களா?

  • 22,2%ஆம்6

  • 66,7%எண்18

  • 11,1%நான் ஒரு கட்டுரையிலிருந்து அவற்றைப் பற்றி அறிந்துகொண்டு அவற்றைப் பயன்படுத்த திட்டமிட்டுள்ளேன்3

27 பயனர்கள் வாக்களித்தனர். 5 பயனர்கள் வாக்களிக்கவில்லை.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்