Опростяване на препратките към множество акаунти и региони с AWS CloudОбразуване

Въведение в предизвикателствата на архитектурите с множество акаунти и множество региони

В съвременния свят на инфраструктурата cloudОрганизации от всякакъв мащаб възприемат сложни стратегии за внедряване, които включват множество AWS акаунти и множество географски региони. Този подход носи множество предимства по отношение на изолацията на ресурсите, спазването на местните разпоредби и намалената латентност за крайните потребители. Управлението на зависимостите между стековете обаче е важно. CloudРазпределените формации между различни акаунти и региони отдавна представляват истинско техническо предизвикателство за отборите. DevOps.

Доскоро инженерите, работещи с AWS CloudОбразуване si AWS CDK (Cloud Комплект за разработка) Те трябваше да внедрят ръчни или полуавтоматизирани решения за споделяне на резултати между стекове, обхващащи различни акаунти и региони. Тези решения често включваха използването на посреднически услуги, като например Хранилище на параметри на AWS Systems Manager, AWS Secrets Manager или дори маси DynamoDB за съхраняване и извличане на изходни стойности. Всеки от тези подходи въведе допълнителна сложност, увеличи оперативните разходи и рискове от несъответствие на данните.

AWS отговори на тези предизвикателства, като въведе революционна функционалност: FnGetStackOutput, нов капацитет, наличен както в AWS CloudФормиране, както и в AWS CDK, което драстично опростява начина, по който се управляват препратките между акаунти и региони в съвременна as-code инфраструктура.

Какво е FnGetStackOutput и как работи?

Основната концепция

FnGetStackOutput е нова присъща функция, въведена в екосистемата на AWS CloudФормиране и AWS CDK, което позволява на един стек да осъществява директен достъп до изходите на друг стек, дори ако тези стекове са в различни AWS акаунти или в различни географски региони. Тази функционалност елиминира необходимостта от сложни механизми за синхронизиране на данни и значително намалява стандартния код, необходим за управление на зависимостите между стековете.

От техническа гледна точка, FnGetStackOutput работи чрез директно запитване към услугата CloudФормиране от целевия акаунт и регион, извличащо стойността на специфичен изход от стек, идентифициран по име или ARN. Този процес е прозрачен за потребителя и се управлява изцяло от инфраструктурата на AWS, елиминирайки необходимостта от сложни разрешения или допълнителни мрежови конфигурации.

Вътрешният механизъм използва IAM роли за различни акаунти si роли, свързани с услуги да се гарантира, че достъпът до изходите на отдалечени стекове се регулира от съществуващите политики за сигурност на организацията. По този начин принципът най-малка привилегия се спазва по всяко време и одитът на достъпа е възможен чрез AWS CloudПътека.

Техническа архитектура на решението

Когато стек CloudФормацията съдържа препратка FnGetStackOutput, услугата CloudФормирането инициира удостоверено API повикване към акаунта и региона, посочени в дефиницията на функцията. Това повикване връща стойността на заявения изход, която след това се инжектира в текущия шаблон точно там, където е била дефинирана препратката. Процесът е синхронен и гарантира, че получената стойност е най-новата налична версия към момента на внедряването.

Важен аспект, който трябва да се подчертае, е, че FnGetStackOutput оценява референциите по време на фазата на внедряване, а не по време на фазата на синтез на шаблони. Това разграничение е от решаващо значение, защото гарантира, че динамичните стойности, като например ресурсни RNA или автоматично генерирани крайни точки, са винаги актуални и отразяват действителното състояние на инфраструктурата към момента на прилагане на промените.

Практическо внедряване с AWS CDK

Първоначална конфигурация на CDK проекта

За употреба FnGetStackOutput В контекста на AWS CDK, разработчиците трябва да се уверят, че използват скорошна версия на CDK, която включва поддръжка за тази функционалност. Създаването на проект за CDK с множество акаунти и множество региони включва ясно дефиниране на целевите среди и разрешенията, необходими за достъп между акаунти.

На практика, структурата на CDK проект, който използва FnGetStackOutput изглежда така: първо, изходният стек се дефинира, който предоставя желаните изходи чрез стандартния механизъм на CfnOutputСлед това, консумиращият стек използва функцията FnGetStackOutput да се осъществи достъп до тези стойности, без да се изисква допълнителна конфигурация на тръбопровода или механизъм за междинно съхранение.

Конкретен пример може да бъде следният сценарий: мрежов стек, дефиниран в акаунта за споделена инфраструктура, се излага като изход Идентификационен номер на VPC, идентификатори на подмрежи si идентификатори на групи за сигурностСтековете на приложенията в акаунтите за работно натоварване могат директно да имат достъп до тези стойности, използвайки FnGetStackOutput, елиминирайки необходимостта от персонализирани скриптове за разпространение на стойности или сложни синхронизационни канали.

Примери за код и синтаксис

В AWS CDK с TypeScript, използвайки FnGetStackOutput е изключително интуитивен. Функцията приема ясни параметри, които указват целевия AWS акаунт, регион, име на стека и желания изходен ключ. Този декларативен подход се интегрира безпроблемно с инфраструктура като код насърчаван от CDK, позволявайки на разработчиците да изразяват междустековите зависимости по ясен и лесен за разбиране начин.

В сравнение с традиционния подход, който изисква множество AWS CLI извиквания, Bash или Python скриптове за разпространение на изходи, новият синтаксис FnGetStackOutput драстично намалява количеството необходим код и елиминира цяла категория грешки, свързани със синхронизацията на данни между стековете. Кодът става по-чист, по-поддържаем и по-лесен за тестване в рамките на съвременните CI/CD конвейери.

Оперативни и сигурствени предимства

Намаляване на оперативната сложност

Едно от най-значимите предимства на приемането FnGetStackOutput е драстичното намаляване на оперативната сложност в организациите, управляващи инфраструктури с множество акаунти и множество региони. Преди тази иновация екипите DevOps Те трябваше да поддържат сложни системи за разпространение на конфигурация, които често включваха:

PipelineCI/CD инструменти, предназначени изключително за синхронизиране на изходи между стекове и акаунти

Таблици на DynamoDB или йерархии на хранилища на параметри за централизирано съхранение на споделени стойности

Персонализирани скриптове за първоначално зареждане, които трябваше да се изпълняват в точен ред

Обширна документация за адаптация на нови членове на екипа

Ръчни процеси за отстраняване на проблеми в случай на десинхронизация на данни между акаунти

Cu FnGetStackOutput, всички тези механизми стават ненужни. Инфраструктурата на AWS автоматично управлява разрешаването на зависимости, осигурявайки съгласуваност на данните и елиминирайки риска от човешка грешка в процеса на разпространение на конфигурацията. Това опростяване директно се изразява в намалено време за внедряване и увеличена скорост на предоставяне на нови функции.

Подобряване на сигурността

От гледна точка на сигурността, FnGetStackOutput носи значителни подобрения в сравнение с традиционните подходи. Когато конфигурационните данни се съхраняваха в междинни услуги като Parameter Store или Secrets Manager, беше необходимо да се управляват подробни политики за достъп за всяка услуга. Това умножаване на точките за достъп увеличи повърхността за атака и усложни одита на дейностите по достъп.

С новия подход, Достъпът до изходите на отдалечения стек се регулира изключително от IAM политики за различни акаунти, които вече са добре познати и се управляват от екипи по сигурността. Всички достъпи се записват автоматично в AWS CloudПътека, осигурявайки пълна проследимост на операциите между различните сметки. Организации, които трябва да демонстрират съответствие със стандарти като ISO 27001, SOC 2 или PCI DSS се възползва от подобрена одитируемост без допълнителни разходи за внедряване.

Оптимизиране на разходите

Премахването на междинния софтуер за съхранение на конфигурация също води до намаляване на оперативните разходи. Таблиците на DynamoDB, записите в Parameter Store Advanced Tier и записите в Secrets Manager водят до разходи за съхранение и достъп. Въпреки че тези разходи обикновено са скромни, в организация със стотици или хиляди стекове, разпределени в множество акаунти и региони, спестяванията могат да бъдат значителни.

По-важно от преките разходи за посреднически услуги е оперативните разходи за поддържане на сложносттаВсеки допълнителен компонент в архитектурата представлява потенциална точка на повреда, обект на наблюдение и източник на оперативни разходи. Опростяване на архитектурата чрез приемане FnGetStackOutput косвено намалява разходите, свързани с оперативни инциденти и времето, прекарано в отстраняване на проблеми с конфигурацията.

Разширени случаи на употреба

Архитектура на зоната за кацане и контролната кула

В контекста на внедряванията Зона за кацане на AWS si Контролна кула на AWS, FnGetStackOutput се превръща в изключително ценен инструмент. Организации, управляващи стотици AWS акаунти в рамките на една структура AWS организации вече може да дефинира споделени ресурси в централния инфраструктурен акаунт и да ги препраща директно от всеки акаунт за работно натоварване, без да е необходимо сложни механизми за първоначално зареждане или синхронизационни канали.

Типичен сценарий в тези архитектури е споделянето на централизирани мрежови ресурси, като например Прикачени файлове към Transit Gateway, крайни точки на Route 53 Resolver или Политики на мрежовата защитна стена. С FnGetStackOutput, стековете в акаунтите за работно натоварване могат директно да имат достъп до идентификаторите на тези ресурси, което значително опростява процеса на внедряване на нови акаунти в организацията.

Синьо-зелени и канарски междурегионални внедрявания

Друг усъвършенстван случай на употреба е представен от стратегии за внедряване. синьо-зелено или канарче разпределени в множество региони. В тези сценарии е необходимо да се координира конфигурацията между стекове, работещи едновременно в различни региони, всеки от които представлява различна версия на приложението. FnGetStackOutput опростява тази координация, като позволява на стекове в различни региони да имат директен достъп до конфигурацията на подобни стекове, елиминирайки необходимостта от централизирани системи за конфигуриране.

Например, а глобален балансьор на натоварването който разпределя трафика между регионите, може директно да осъществява достъп до изходите на стековете на приложенията във всеки регион, получавайки крайните точки и ARN, необходими за конфигуриране на целеви групи, без да е необходимо синхронизиране на скриптове или междинни канали.

Микросървиси и архитектури, управлявани от събития

В архитектури, базирани на микросървиси, всяка услуга често се разполага независимо в собствен стек. CloudФормиране. Зависимости между услуги, като например ARN на SQS опашки, SNS теми, крайни точки на API Gateway или шини за събития EventBridge, трябва да се споделя между стековете. FnGetStackOutput прави това споделяне тривиално, елиминирайки нуждата от служба по вписванията отделен или персонализиран механизъм за услуга за откриване.

Това опростяване е особено ценно в екипи, които практикуват автономност на екипа в рамките на организационен модел от типа на Spotify или Amazon, където всеки екип управлява собствения си AWS акаунт и собствените си стекове, но все пак трябва да си сътрудничи с други екипи чрез споделяне на интерфейси и общи ресурси.

Съображения за миграция и приемане

Стратегия за миграция от традиционни подходи

За организации, които вече имат традиционни механизми за споделяне на резултатите, мигрирането към FnGetStackOutput Трябва да се подхожда постепенно и стратегически. Препоръчваме следния поетапен подход:

Идентифициране на всички съществуващи междустекови зависимости и документирането им в централизиран регистър

Приоритизиране на зависимостите с най-голямо оперативно въздействие и най-висок риск от грешки (Внедряване)

FnGetStackOutput върху пилотен стек в тестова среда, валидирайки функционалността и производителността

Постепенна миграция на производствени стекове, започвайки с най-простите зависимости

Извеждане от експлоатация на междинни системи за съхранение на конфигурация след пълно валидиране на миграцията

Важно е да се спомене, че FnGetStackOutput могат да съществуват едновременно с традиционните механизми по време на преходния период, което позволява плавна миграция без прекъсване на съществуващите услуги. Тази обратна съвместимост е от съществено значение за организации със строги процеси за управление на промените и ограничени прозорци за поддръжка.

Тестване и валидиране на внедрявания

Критичен компонент за приемането на всяка нова функционалност CloudФормирането е установяването на надеждни процедури за тестване. За FnGetStackOutput, препоръчваме внедряването на интеграционни тестове, които изрично проверяват разделителната способност на изходите от различни акаунти и региони в тестови среди, които точно отразяват структурата на производствените акаунти.

Инструменти като Твърдения на CDK, Taskcat или cfn-lint може да се адаптира за валидиране на шаблони, които използват FnGetStackOutput, като се уверите, че препратките към отдалечените стекове са правилни и че необходимите разрешения са конфигурирани правилно, преди да се внесат промени в продукцията.

Заключение

ПОСТАВЯНЕ FnGetStackOutput в AWS CloudФормирането и AWS CDK представляват значителна стъпка в еволюцията на инфраструктурата като код на платформата AWS. Чрез елиминиране на сложните и крехки механизми за споделяне на изходи между различни акаунти и региони, AWS реши един от най-често срещаните източници на неудовлетвореност за инженерите. DevOps който работи с архитектури с множество акаунти и множество региони.

Тази иновация не е просто постепенно техническо подобрение, а представлява промяна в парадигмата в начина, по който мислим за зависимостите между стековете в контекста на cloud-роден. Опростяването, което носи FnGetStackOutput Това позволява на екипите да се съсредоточат върху предоставянето на стойност чрез функционален код, вместо да инвестират време и енергия в управление на конфигурационната инфраструктура.

Организациите, които внедрят тази функционалност, ще се възползват от по-бързо внедряване, подобрена сигурност и значително намаляване на оперативната сложност. В контекста на ожесточената конкуренция в софтуерната индустрия, тези предимства могат директно да се превърнат в по-кратко време за пускане на пазара и намалени оперативни разходи, предлагайки реално конкурентно предимство на пазара.

Със сигурност разбрахте с какво са свързани новините през 2026 г. DevOpsАко се интересувате от задълбочаване на знанията си в областта, ви каним да разгледате нашата гама от курсове, структурирани по роли и категории в... DevOps HUB. Независимо дали тепърва започвате или искате да подобрите уменията си, ние имаме курс за вас.

Опровержение:
Този материал е разработен с помощта на изкуствен интелект за информационни и образователни цели. Съдържанието е било подложено на човешка проверка и преглед преди публикуване. Представената информация е предназначена да подпомогне учебния процес и не е заместител на консултирането със специализирани източници, специалист в областта или участието във формални обучителни курсове и програми.