AWS-i parameetrite pood vs keskkonnamuutujad

Selles artiklis vaatlen, kas ja millal tuleks AWS-i infrastruktuuri keskkonnamuutujate asendamiseks kasutada AWS-i parameetrite poodi. Ma ei hakka uurima, millised need kõik on või kuidas neid põhjalikumalt üles seada, vaid pigem võrdlen neid kahte.

Keskkonnamuutujate juhtum

Lihtne seadistada

Keskkonnamuutujatega seadistamine on üsna lihtne. Näiteks sõlmel on dotenv-moodul, mille saab ühe käsuga npm kaudu installida:

npm install dotenv

Peame veenduma, et dotenvil on skripti sisenemispunkt kuskil, tavaliselt nõuava avalduse kaudu -

nõuda ('dotenv'). config ()

Siit peame vaid lisama oma keskkonnamuutujad .env-faili, mis on paigutatud projekti juurkausta.

Lisateavet dotenvi mooduli kohta leiate siit:

Tuleb märkida, et parameetrite pood ei jaga seadistamise hõlbustamiseks algselt samu aspekte - kui te pole kunagi parameetrite poodiga varem koostööd teinud, võib seadistusprotsess tunduda üsna vaevarikas, pidades silmas mõnda asja:

  • Teil on vaja juurdepääsu AWS-i kontole
  • Peate teadma, kuidas navigeerida AWS-i juhtpaneelil - täpsemalt SSM-i jaotises.
  • Tundlikud / turvalised parameetrid tuleks krüpteerida KMS-iga - see iseenesest nõuab veel mõnda täiendavat seadistamist (https://aws.amazon.com/kms/)
  • Sõltuvalt teie vajadustest võib parameetrite poe õigesti toimimiseks vajada muude AWS-teenuste, näiteks IAM ja SSM-i konfiguratsiooniteadmisi.
  • Kõik parameetrid hostitakse pilves, mis nõuab IAM-i programmilist juurdepääsu, mis tähendab, et vajalik on katkematu ühendus (tuleb arvestada, et vastavalt kohalikele muutujatele saab luua kohandatud kohalikke seadistusi, mida saab vastavalt olukorrale kasutada parameetrite poe muutujate asemel - I julgustaks sedalaadi lähenemist).

Lihtne värskendada arendamise, juurutamise ja testimise ajal

Keskkonnamuutujaid saab hõlpsasti värskendada eelnimetatud .env-faili ja dotenv-mooduli kaudu. Selle faili variatsioone saab ka luua ja kasutada vastavalt igale keskkonnale. Meie keskkonnamuutujate importimine testimisstsenaariumis toimib enam-vähem samal viisil (keskkonnamõjude importimine vastavast dotenv-failist).

Ülemineku- või tootmisserverisse installimiseks peaksime kasutama ainult .env-faili alternatiivset versiooni. Seda saab hõlpsalt teha, ignoreerides oma versioonikontrollisüsteemis olemasolevat .env-faili lokaalselt (tavaliselt git) ja luues igale etapile / serveri eksemplarile uue koopia.

Keskkonnamuutujad integreeruvad kenasti ka pideva integratsiooni süsteemidega (CI). Näiteks Circle CI-l on spetsiaalne jaotis keskkonnamuutujate haldamiseks, kus neid saab projekti ehituse tasemel lisada ja ühes kohas värskendada, kui nad on kasutuselevõtuks valmis -

Parameetripoe vaatenurgast on see keele / raamistiku agnostiline, see tähendab, et kogu seadistamine tuleb teha käsitsi, kasutades AWS SDK-d, millele on programmeeritud juurdepääs Parameetri poe teenusele, või samamoodi kolmanda osapoole pakkuja kaudu (näiteks npm-moodul) . Ehkki AWS ja selle teenused on pilvandmetöötluse domeeni turbestandardite etalon, võivad kohandatud moodulid, mida võiksite välja töötada või kasutada, olla pahatahtlikkuse või järelevalve tõttu turvaauke, pidades meeles, et selle jaoks on olemas tööstuses aktsepteeritud moodulid, mis on mida haldavad ja kinnitavad usalduslikud üksused, näiteks AWS ise.

Kasutuselevõtu / testimise vaatenurgast tuleb parameetrite poele lisaks ka ainulaadne väljakutsete komplekt, kuna kuigi pakutud lähenemisviise pakutakse, on see, millal ja millal otsustate parameetripoodiga suhelda, täielikult teie otsustada.

Keskkonna muutujad on tasuta kasutamiseks

Ehkki AWS-i parameetrite pood ei sisalda lisatasusid (https://aws.amazon.com/systems-manager/pricing), on Amazoni hinnastruktuur seotud teenuste nagu KMS jaoks (https://aws.amazon.com/kms/pricing) ) hakkavad lisakulud tekkima kasutamisest sõltumata. Teisest küljest on keskkonnamuutujate kasutamine tasuta.

Miks asendada keskkonnamuutujaid? : juhtum parameetrite poe jaoks

Selle hetkeni näib, et vaniljekeskkonna muutuva lahenduse korral on Parameters Store ääremängus võistlemas domineerimise nimel laval / turvalisel muutuval areenil. Ehkki parameetrite pood näib tekitavat rohkem väljakutseid, kui see praegu lahendab, on siiski mõned asjad, mida parameetrite pood teeb vaieldamatult paremini kui keskkonnamuutujaid:

Parameter Store muutujaid saab jagada mitme projekti vahel

Parim seadistus, mille olen keskkonnamuutujate jagamiseks projektide vahel leidnud, on automatiseeritud juurutamisprotsessi kasutamine, mis tõmbab keskkonnamuutujaid jagatud olemis sisalduvast failist, näiteks S3-kopp, mis ühendatakse vastavalt vajadusele projekti konfiguratsiooni (tavaliselt tehakse selleks CI-teenusest juhitav skript). Varasemate kogemuste põhjal on see kõige semantiliselt kõige otstarbekam variant (palun andke mulle teada, kui teil on kogemusi mõne parema võimalusega). See on kahjuks esialgu tüütu harjutus ja lõppkokkuvõttes ei ole see asi, mida soovite pikas perspektiivis käsitsi säilitada, mis on peamiselt seetõttu, et selle seadistamisel või hooldamisel esinevad vead või ülevaatused võivad tekitada probleeme.

Kõik, mida saame AWS-i teenusele automatiseerida, peaksime ja just siin paistab Parameetri pood. KMS-võtmete ja parameetripoe muutujate jagamine projektide vahel on välja mõeldud.

Tahan astuda sammu tagasi ja vaadata AWS-i terviklikult. Amazon on teinud suurepärase töö pilvandmetöötluse kõigi aspektide haldamisel ning tal on hulgaliselt arendusmeeskondi, kes on pühendunud konkreetsetele teenustele, mida teie ega mina ei saa kunagi korrata. See tähendab lõppkokkuvõttes, et kui olete ostnud Amazoni kogemuse, peaksite kasutama kõiki AWS-i pilveinfrastruktuuri riba all töötavaid teenuseid. Ehkki sellel on oma probleemid (näiteks teie ja mina oleme nüüd teenusepakkujana täielikult AWS-i lukustatud), on lõpuks kõik lihtsam neile laadimiseks, sest see on üks vähem asi, mille pärast peate muretsema - isegi kui see maksab natuke ekstra.

Parameetripood saab kasutada juurdepääsu juhtimist

Konkreetne kontroll kasutaja juurdepääsu üle muudab IAM-teenuse AWS-i üheks suurimaks atribuudiks, eriti kui tegemist on potentsiaalselt tundliku teabe, näiteks API-võtmete või paroolidega. Keskkonnamuutujatele juurdepääsu kontrollimise kontseptsioon vanilje mõistes (nt dotenv-lähenemisviisi kasutamine) pole lihtsalt valik (kui te pole nõus välja töötama oma isikupärast lahendust - või liikuda välja parimate tavade valdkonnast).

Parameetri poe väärtusi saab hõlpsasti värskendada

Parameetripoe väärtuste värskendamiseks on vaja ainult asjakohast juurdepääsu AWS-i armatuurlauale (või CLI-le), mis tähendab, et isegi mittetehnilised meeskonna liikmed saavad väärtusi värskendada vähese AWS-i armatuurlaua kogemusega.

Argumendi keskkonnamuutujate poolel muutub keskkonnamuutujate värskendamine problemaatiliseks, kuna neile pääsevad ligi ja värskendatakse tavaliselt ainult vilunud meeskonnaliikmetel, kellel on juurdepääs serveri värskenduslubadele. Lisaks avab see teie projekti haavatavuse kihile, kuna serverisse sisselogimine ja põhiliste projektifailide värskendamine lennult (isegi automatiseeritud seadistuse korral) võib tekitada probleeme.

KMS saab parameetrite salvestamise väärtusi hõlpsalt krüptida

Ehkki parameetrite poes väärtuste krüptimise esialgne seadistamine võib tunduda pisut hirmutav, on see juba harjumisega üsna lihtne ja sellel on palju mõtet - isegi mittetehnilises plaanis. See on ka suurepärane turvakiht, mis on lisatud, väljastpoolt.

Keskkonnamuutujate jaoks, mida te võib-olla ei soovi lihttekstina salvestada, on võimalik krüptimist kasutada, kuid selle käsitsi seadistamine ja hooldamine võib olla keeruline.

Parameeter Store muutujaid saab korraldada

Parameetrite poe kasutamisel hallatakse tootmis- ja lavastusparameetreid ühes kohas, mis hõlmab parameetrite sorteerimist ja filtreerimist ning isegi kirjelduste lisamist nende eesmärgi selgitamiseks.

Keskkonnamuutuja seisukohast ei saa te lihtsalt muutujate organisatsiooni. Mõne keskkonnamuutuja omamine võib olla piisavalt hõlpsasti hallatav, kuid see muutub problemaatiliseks, kui käsitsi haldamiseks on muutujaid liiga palju. Võib-olla on võimalik keskkonnamuutujaid jagada erinevatesse failidesse ja kaustadesse, kuid selleks pole tegelikult ühtegi mõistlikku lahendust, mis ei näi asja asjatult keeruliseks muudavat.

Lõppkokkuvõttes tuleks otsus, millist kahest lahendusest kasutada, otsustada projekti keerukuse ja ulatuse järgi, võttes arvesse eespool nimetatud tegureid.

Järeldus

Lava / turvaliste parameetrite haldamiseks parameetrite poe või keskkonnamuutujate valimisel tuleb arvestada ka teiste teguritega, kuid loodetavasti oleme selles artiklis olulised neist kajastanud.

Kui teil on muid tegureid, mis on teie arvates väärt kaalumist, tahaksin kuulda teie mõtteid.