AWS Parametr Mağazası vs Ətraf Mühit Dəyişənləri

Bu yazıda AWS Parametrlər Mağazasının AWS infrastrukturunda ətraf mühit dəyişkənlərini əvəz etmək üçün nə vaxt və nə vaxt istifadə olunacağına baxacağam. Bunların hər birinin nəyə və ya hər hansı bir dərin şəkildə necə qurulacağına baxmayacağam, əksinə ikisini müqayisə edirəm.

Ətraf mühit dəyişkənləri üçün bir vəziyyət

Quraşdırma asandır

Ətraf mühit dəyişkənləri ilə quraşdırma əldə etmək olduqca sadədir. Node, məsələn, bir əmr ilə npm vasitəsilə quraşdırıla bilən dotenv modulu var:

npm dotenv quraşdırın

Dotenv'nin, skriptimizin bir yerində bir giriş nöqtəsi olduğuna əmin olmalıyıq, ümumiyyətlə tələb ifadəsi ilə -

tələb etmək ('dotenv'). config ()

Buradan ətraf mühit dəyişkənlərimizi layihənin kök qovluğuna yerləşdirilən .env faylı əlavə etmək üçün etmək lazım olan şeydir.

Dotenv modulu haqqında daha çox məlumatı burada tapa bilərsiniz:

Qeyd etmək lazımdır ki, Parameter Mağazası əvvəlcə quraşdırma asanlığında eyni cəhətləri bölüşmür - əvvəllər Parametr Mağazası ilə işləməmisinizsə, quraşdırma prosesi bir neçə məqamı nəzərə alaraq olduqca zəhmətli görünə bilər:

  • AWS hesabına girişiniz lazımdır
  • AWS tablosuna necə gedəcəyinizi bilməlisiniz - xüsusi olaraq SSM bölməsini.
  • Həssas / Təhlükəsiz parametrlər KMS ilə şifrələnməlidir - bunun üçün bəzi əlavə quraşdırma tələb olunur (https://aws.amazon.com/kms/)
  • Parametrlər Mağazasının düzgün işləməsini təmin etmək üçün ehtiyaclarınızdan asılı olaraq, IAM və SSM sifarişi kimi digər AWS xidmətləri haqqında konfiqurasiya məlumatlarına ehtiyacınız ola bilər.
  • Bütün parametrlər, IAM-a proqram təminatını tələb edən buludda yerləşdirilir, bu da fasiləsiz bir əlaqə tələb olunur (qeyd etmək lazımdır ki, lokal tənzimləmələr vəziyyətdən asılı olaraq Parametr Mağazası dəyişənlərinin yerində istifadə edilə bilən yerli dəyişənlərlə yaradıla bilər - I əslində bu cür yanaşmanı təşviq edərdi).

İnkişaf, yerləşdirmə və sınaq zamanı yeniləmək asandır

Ətraf mühit dəyişənləri yuxarıda göstərilən .env faylı və dotenv modulu ilə asanlıqla yenilənə bilər. Bu faylın dəyişiklikləri də hər bir uyğun mühitə uyğun olaraq yaradıla və istifadə edilə bilər. Ətraf mühit dəyişkənlərimizi bir sınaq ssenarisinə gətirmək eyni şəkildə işləyir (env idxalı müvafiq dotenv sənədindən dəyişir).

Səhnələşdirmə və ya istehsal serverinə yerləşdirmək üçün .env faylının alternativ bir versiyasını istifadə etmək üçün edəcəyik. Bu asanlıqla yerli (adətən git) versiya idarəetmə sisteminizdəki mövcud .env faylına məhəl qoymadan və hər bir mərhələ / server nümunəsində yeni bir nüsxə yaratmaqla edilə bilər.

Ətraf mühit dəyişkənləri də davamlı İnteqrasiya sistemləri (CI) ilə qəşəng birləşirlər. Məsələn, CI dairəsi, ətraf mühit dəyişkənlərinin idarə olunması üçün xüsusi bir bölmə var, burada layihə qurma səviyyəsində əlavə edilə bilər və yerləşdirməyə hazır olduqda tək bir yerdə yenilənə bilər -

Parametr Mağazası baxımından, bu dil / çərçivə aqnostikdir, yəni bütün quraşdırma ya Parametr Mağazası xidmətinə proqramlı girişi olan AWS SDK istifadə edərək əl ilə və ya oxşar şəkildə üçüncü tərəf provayderi (məsələn, npm modulu) vasitəsilə əl ilə edilməlidir. . AWS və onun xidmətləri bulud hesablama sahəsindəki təhlükəsizlik standartları üçün meyar olsa da, inkişaf etdirmək və ya istifadə etmək istədiyiniz xüsusi modullar zərər və ya nəzarət səbəbindən təhlükəsizlik zəifliklərinə sahib ola bilər - bunun üçün sənaye qəbul edilmiş modulların olduğunu nəzərə alaraq. özləri AWS kimi etibarlı qurumlar tərəfindən dəstəklənir və təsdiqlənir.

Bir yerləşdirmə / sınaq baxımından Parametr Mağazası da unikal problemlər dəsti ilə gəlir, çünki təklif olunan yanaşmalar olsa da, Parametr Mağazası ilə qarşılıqlı əlaqə qurmağı necə və nə vaxt seçmək tamamilə sizə bağlıdır.

Enviroment Dəyişənlər istifadə üçün pulsuzdur

AWS Parametr Mağazasında əlavə ödənişlər (https://aws.amazon.com/systems-manager/pricing) olmasa da, KMS (https://aws.amazon.com/kms/pricing) kimi əlaqəli xidmətlər üçün Amazon-un qiymət quruluşu ) istifadəyə görə əlavə xərc çəkməyə başlayacaqdır. Digər tərəfdən, ətraf mühit dəyişkənlərindən istifadə pulsuzdur.

Bəs ətraf mühit dəyişkənlərini niyə əvəz edir? : Parametr Mağazası üçün bir hal

Bu nöqtəyə qədər vanil mühitinin dəyişən həlli Parameter Store'u mərhələ / etibarlı dəyişən arenada üstünlük üçün yarışda görünür. Parametr Mağazası bu nöqtədə həll etdiyindən daha çox çətinliklər yarada bilsə də, Parameter Mağazasının mübahisəsiz olaraq ətraf mühit dəyişkənlərindən daha yaxşı işləməsi:

Parametr Mağazası dəyişənləri bir çox layihədə paylaşıla bilər

Ətraf mühit dəyişkənliyini layihələr arasında bölüşmək üçün tapdığım ən yaxşı quraşdırma, ətraf mühit dəyişənlərini ortaq bir qurumun içərisindəki bir fayldan, məsələn, layihə konfiqurasiyasına qoşulan S3 çömçə ilə gətirən avtomatlaşdırılmış yerləşdirmə prosesindən istifadə etməkdir. bir CI xidmətindən idarə olunan skript). Əvvəlki təcrübədən, bu, ən semantik cəhətdən əlverişli bir seçimdir (daha yaxşı seçimlərlə təcrübəniz varsa mənə bildirin). Təəssüf ki, əvvəlcədən yorucu bir məşqdir və nəticədə uzun müddət ərzində əllə saxlamaq istəyəcəyiniz bir şey deyildir, bunun səbəbi, onu qurarkən və ya saxlayarkən yolda hər hansı bir səhv və ya nəzarət problemlərə səbəb ola bilər.

Avtomatikləşdirmək üçün AWS xidmətinə təhvil verə biləcəyimiz hər şey, Parametrlər Mağazasının işıqlandığı yerdir. KMS düymələri və Parameter Store dəyişənlərini layihələr arasında bölüşmək qutudan kənarda olur.

Geri addım atmaq və AWS-ə vahid bir baxımdan baxmaq istəyirəm. Amazon, bulud hesablamasının hər tərəfini idarə etmək üçün çox yaxşı bir iş gördü və sizin və mən heç vaxt təkrarlaya bilməyəcəyiniz xüsusi xidmətlərə həsr olunmuş çox sayda inkişaf qrupuna sahibdir. Nəticədə, Amazon 'təcrübəsini' aldıqdan sonra AWS bulud infrastrukturu altında birlikdə işləmək üçün hazırlanmış bütün xidmətlərdən istifadə etməlisiniz. Problemləri olsa da (məsələn, sizin və mən artıq bir xidmət təminatçısı olaraq AWS-ə tamamilə bağlanmağınız), nəticədə edə biləcəyiniz hər şeyi onlara yükləmək daha asandır, çünki narahat olmağınız lazım olan daha az şeydir - hətta olsa belə biraz əlavə xərc.

Parametr Mağazası giriş nəzarətindən istifadə edə bilər

İstifadəçi girişi üzərində xüsusi bir nəzarətin olması, IAM xidmətini AWS’in ən böyük xüsusiyyətlərindən biri halına gətirir, xüsusən API açarları və ya şifrələr kimi potensial həssas məlumatlarla əlaqəli olduqda. Vanil mənasında ətraf mühit dəyişkənliyinə (məsələn, dotenv yanaşmasından istifadə etməklə) nəzarət etmək anlayışı sadəcə bir seçim deyil (öz həll həllinizi hazırlamaq istəmirsinizsə - və ya 'ən yaxşı təcrübə' sahəsindən kənarda hərəkət etməyəcəksiniz).

Parametr Mağazası dəyərləri asanlıqla yenilənir

Parametr Mağazasında istənilən dəyərləri yeniləmək üçün AWS tablosuna (və ya CLI) uyğun bir giriş əldə etmək lazımdır, yəni texniki olmayan komanda üzvləri də bir az AWS tablosu təcrübəsi ilə dəyərləri yeniləyə bilər.

Arqumentin yenilənən mühit dəyişkən tərəfində ətraf mühit dəyişkənliyi problemə çevrilir, çünki adətən yalnız server yeniləmə icazələrinə sahib olan təcrübəli komanda üzvləri bunları əldə edib yeniləyə biləcəklər. Əlavə olaraq bu, layihənizi zəif bir təbəqəyə açır, belə ki, bir serverə daxil olmaq və sürətli layihə sənədlərini yeniləmək (avtomatlaşdırılmış quraşdırma da) problemlərə yol aça bilər.

KMS Parametr Mağazası dəyərlərini asanlıqla şifrələyə bilər

Parametr Mağazasında şifrələmə dəyərlərinin ilkin qurulması bir az zəhmli görünə bilər, buna öyrəşmiş olsanız, olduqca sadədir və çox mənalı olur - hətta texniki olmayan baxımdan. Bu, əlavə edilmiş, xaricində olan böyük bir təhlükəsizlik təbəqəsidir.

Düz mətndə saxlamaq istəmədiyiniz mühit dəyişkənləri üçün şifrələmədən istifadə etmək mümkündür, lakin bu əl ilə quraşdırma və saxlamaq çətin ola bilər.

Parametr Mağazası dəyişənləri təşkil edilə bilər

Parametrlər Mağazasından istifadə edərkən parametrləri çeşidləmə və süzgəcdən keçirmək və məqsədlərini dəqiqləşdirmək üçün təsvirlər əlavə etmək üçün İstehsal və Quraşdırma parametrləri bir yerdə idarə olunur.

Bir mühit dəyişkən bir baxımdan, kənarda dəyişkən bir təşkilat əldə edə bilməzsiniz. Bir neçə mühit dəyişkənliyinə sahib olmaq asan ola bilər, ancaq əl ilə idarə etmək üçün çox dəyişkən olduqda bu problemli olur. Ətraf mühit dəyişkənlərini müxtəlif fayl və qovluqlara təşkil etmək mümkün ola bilər, amma bunun üçün lazımsız şeyləri çətinləşdirməyən görünməyən bir həll yolu yoxdur.

Nəticədə, istifadə ediləcək iki həllin hansının ətrafındakı qərarı yuxarıda göstərilən amillər nəzərə alınmaqla layihənin mürəkkəbliyi və həcmi ilə müəyyənləşdirilməlidir.

Nəticə

Mərhələ / etibarlı parametrlərinizi idarə etmək üçün Parametr Mağazası və ya ətraf mühit dəyişkənlərindən istifadə edib-etməməyinizi seçərkən nəzərə alınmalı olan digər amillər var, amma inşallah bu yazıda vacibləri əhatə etdik.

Düşünməyinizə ehtiyac duyduğunuz başqa bir amil varsa düşüncələrinizi eşitmək istərdim.