AWS - Elastic Beanstalk Enum
Last updated
Last updated
Amazon Elastic Beanstalk bied 'n vereenvoudigde platform vir implementering, bestuur en skaal van webtoepassings en -dienste. Dit ondersteun 'n verskeidenheid programmeertaale en raamwerke, soos Java, .NET, PHP, Node.js, Python, Ruby, en Go, asook Docker-houers. Die diens is verenigbaar met algemeen gebruikte bedieners insluitend Apache, Nginx, Passenger, en IIS.
Elastic Beanstalk bied 'n eenvoudige en aanpasbare manier om jou toepassings na die AWS-wolke te implementeer, sonder om oor die onderliggende infrastruktuur bekommerd te wees. Dit hanteer outomaties die besonderhede van kapasiteit voorsiening, las balansering, skaal, en toepassingsgesondheid monitering, sodat jy kan fokus op die skryf en implementering van jou kode.
Die infrastruktuur wat deur Elastic Beanstalk geskep word, word bestuur deur Outoskalering Groepe in EC2 (met 'n lasbalansier). Dit beteken dat as jy aan die einde van die dag die gasheer kompromitteer, moet jy weet van EC2:
Verder, as Docker gebruik word, is dit moontlik om ECS te gebruik.
In AWS Elastic Beanstalk dien die konsepte van 'n "toepassing" en 'n "omgewing" verskillende doeleindes en het onderskeie rolle in die implementeringsproses.
'n Toepassing in Elastic Beanstalk is 'n logiese houer vir jou toepassing se bronkode, omgewings, en konfigurasies. Dit groepeer verskillende weergawes van jou toepassingskode saam en stel jou in staat om hulle as 'n enkele entiteit te bestuur.
Wanneer jy 'n toepassing skep, voorsien jy 'n naam en beskrywing, maar geen hulpbronne word op hierdie stadium voorsien nie. Dit is eenvoudig 'n manier om jou kode en verwante hulpbronne te organiseer en bestuur.
Jy kan meervoudige toepassingsweergawes binne 'n toepassing hê. Elke weergawe stem ooreen met 'n spesifieke vrystelling van jou kode, wat na een of meer omgewings geïmplementeer kan word.
'n Omgewing is 'n voorsiene instansie van jou toepassing wat op AWS-infrastruktuur loop. Dit is waar jou toepassingskode geïmplementeer en uitgevoer word. Elastic Beanstalk voorsien die nodige hulpbronne (bv. EC2-instansies, lasbalansiers, outoskaleringgroepe, databasisse) gebaseer op die omgewingskonfigurasie.
Elke omgewing loop 'n enkele weergawe van jou toepassing, en jy kan meerdere omgewings hê vir verskillende doeleindes, soos ontwikkeling, toetsing, stellings, en produksie.
Wanneer jy 'n omgewing skep, kies jy 'n platform (bv. Java, .NET, Node.js, ens.) en 'n omgewingstipe (bv. webbediener of werker). Jy kan ook die omgewingskonfigurasie aanpas om verskeie aspekte van die infrastruktuur en toepassingsinstellings te beheer.
Webbedieneromgewing: Dit is ontwerp om webtoepassings en API's te huisves en te dien. Hierdie toepassings hanteer tipies inkomende HTTP/HTTPS-versoeke. Die webbedieneromgewing voorsien hulpbronne soos EC2-instansies, lasbalansiers, en outoskaleringgroepe om inkomende verkeer te hanteer, kapasiteit te bestuur, en die hoë beskikbaarheid van die toepassing te verseker.
Werkeromgewing: Dit is ontwerp om agtergrondtake te verwerk, wat dikwels tydrowende of hulpbron-intensiewe operasies is wat nie onmiddellike reaksies aan kliënte vereis nie. Die werkeromgewing voorsien hulpbronne soos EC2-instansies en outoskaleringgroepe, maar dit het nie 'n lasbalansier nie omdat dit nie HTTP/HTTPS-versoeke direk hanteer nie. In plaas daarvan verbruik dit take van 'n Amazon Simple Queue Service (SQS) waglys, wat as 'n buffer optree tussen die werkeromgewing en die take wat dit verwerk.
Wanneer jy 'n Toepassing in Beanstalk skep, is daar 3 baie belangrike sekuriteitsopties om te kies:
EC2 sleutelpaar: Dit sal die SSH-sleutel wees wat toegang sal hê tot die EC2-instansies wat die toepassing hardloop
IAM-instansieprofiel: Dit is die instansieprofiel wat die instansies sal hê (IAM-privileges)
Die outomaties gegenereerde rol word aws-elasticbeanstalk-ec2-role
genoem en het 'n paar interessante toegang oor al die ECS, al die SQS, DynamoDB elasticbeanstalk en elasticbeanstalk S3 deur die AWS-bestuurde beleide: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.
Diensrol: Dit is die rol wat die AWS-diens sal gebruik om al die nodige aksies uit te voer. Vir sover ek weet, kan 'n gewone AWS-gebruiker nie daardie rol bereik nie.
Hierdie rol wat deur AWS gegenereer word, word aws-elasticbeanstalk-service-role
genoem en gebruik die AWS-bestuurde beleide AWSElasticBeanstalkEnhancedHealth en AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
Standaard is metadataversie 1 gedeaktiveer:
### Blootstelling
Beanstalk-data word gestoor in 'n S3-emmer met die volgende naam: elasticbeanstalk-<region>-<acc-id>
(as dit geskep is in die AWS-konsole). Binne hierdie emmer sal jy die opgelaaide bronkode van die aansoek vind.
Die URL van die geskepte webbladsy is http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
As jy leestoegang oor die emmer kry, kan jy die bronkode lees en selfs sensitiewe geloofsbriewe daarop vind.
As jy skryftoegang oor die emmer kry, kan jy die bronkode wysig om die IAM-rol wat die aansoek volgende keer gebruik, te kompromitteer.