Спрощення посилань на кілька облікових записів та регіонів за допомогою AWS Cloudнавчання

Вступ до проблем архітектур з кількома обліковими записами та кількома регіонами

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

Донедавна інженери, що працювали з AWS Cloudнавчання si AWS CDK (Cloud Набір для розробки) Їм довелося впроваджувати ручні або напівавтоматичні рішення для обміну результатами між стеками між різними обліковими записами та регіонами. Ці рішення часто передбачали використання посередницьких сервісів, таких як Сховище параметрів AWS Systems Manager, Менеджер секретів AWS або навіть столи 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 оцінює посилання під час фази розгортання, а не під час фази синтезу шаблонів. Ця відмінність є критично важливою, оскільки вона гарантує, що динамічні значення, такі як РНК ресурсів або автоматично згенеровані кінцеві точки, завжди актуальні та відображають фактичний стан інфраструктури на момент застосування змін.

Практичне впровадження за допомогою AWS CDK

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

Використання FnGetStackOutput У контексті AWS CDK розробникам слід переконатися, що вони використовують останню версію CDK, яка включає підтримку цієї функціональності. Налаштування проекту CDK для кількох облікових записів та регіонів передбачає чітке визначення цільових середовищ та дозволів, необхідних для доступу між обліковими записами.

На практиці, структура проекту CDK, яка використовує FnGetStackOutput виглядає так: спочатку визначається вихідний стек, який надає бажані виходи через стандартний механізм Вихід CfnПотім, стек-споживач використовує функцію FnGetStackOutput отримати доступ до цих значень без необхідності додаткової конфігурації конвеєра або проміжного механізму зберігання.

Конкретним прикладом може бути наступний сценарій: мережевий стек, визначений в обліковому записі спільної інфраструктури, надає доступ як вихідні дані. Ідентифікатор VPC, ідентифікатори підмережі si ідентифікатори груп безпекиСтеки програм в облікових записах робочого навантаження можуть безпосередньо отримувати доступ до цих значень за допомогою FnGetStackOutput, що усуває потребу в користувацьких скриптах поширення значень або складних конвеєрах синхронізації.

Приклади коду та синтаксис

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

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

Переваги для експлуатації та безпеки

Зменшення операційної складності

Одна з найважливіших переваг прийняття FnGetStackOutput – це різке зниження операційної складності в організаціях, що керують інфраструктурами з кількома обліковими записами та кількома регіонами. До цієї інновації команди DevOps їм доводилося підтримувати складні системи поширення конфігурації, які часто включали:

PipelineІнструменти CI/CD, призначені виключно для синхронізації виводів між стеками та обліковими записами

Таблиці DynamoDB або ієрархії сховища параметрів для централізованого зберігання спільних значень

Користувацькі скрипти початкового завантаження, які потрібно було виконувати в точному порядку

Розширена документація для адаптації нових членів команди

Процеси ручного виправлення у разі розсинхронізації даних між обліковими записами

Cu FnGetStackOutput, усі ці механізми стають непотрібними. Інфраструктура AWS автоматично керує роздільною здатністю залежностей, забезпечуючи узгодженість даних та усуваючи ризик людської помилки в процесі поширення конфігурації. Таке спрощення безпосередньо призводить до скорочення часу розгортання та збільшення швидкості доставки нових функцій.

Покращення стану безпеки

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

З новим підходом, Доступ до виводів віддаленого стеку регулюється виключно політиками IAM для різних облікових записів., які вже добре відомі та керуються командами безпеки. Усі доступи автоматично записуються в AWS CloudСлід, що забезпечує повну відстежуваність операцій між рахунками. Організації, яким необхідно продемонструвати відповідність таким стандартам, як ISO 27001, SOC 2 або PCI DSS виграє від покращеної аудиту без додаткових витрат на впровадження.

Оптимізація витрат

Відмова від проміжного програмного забезпечення для зберігання конфігурації також призводить до зниження експлуатаційних витрат. Таблиці DynamoDB, записи розширеного рівня сховища параметрів та записи менеджера секретів – усі вони пов’язані з витратами на зберігання та доступ. Хоча ці витрати зазвичай невеликі, в організації з сотнями або тисячами стеків, розподілених по кількох облікових записах і регіонах, економія може бути значною.

Важливішою, ніж пряма вартість посередницьких послуг, є експлуатаційні витрати на підтримку складностіКожен додатковий компонент в архітектурі являє собою потенційну точку відмови, об'єкт моніторингу та джерело операційних витрат. Спрощення архітектури шляхом впровадження FnGetStackOutput опосередковано зменшує витрати, пов'язані з експлуатаційними інцидентами, та час, витрачений на усунення несправностей конфігурації.

Розширені варіанти використання

Архітектури посадкової зони та диспетчерської вежі

У контексті впроваджень Зона посадки AWS si Диспетчерська вежа AWS, FnGetStackOutput стає надзвичайно цінним інструментом. Організації, що керують сотнями облікових записів AWS в межах однієї структури Організації AWS тепер можна визначати спільні ресурси в центральному обліковому записі інфраструктури та посилатися на них безпосередньо з будь-якого облікового запису робочого навантаження, без необхідності складних механізмів завантаження або конвеєрів синхронізації.

Типовим сценарієм у цих архітектурах є спільне використання централізованих мережевих ресурсів, таких як Додатки до транзитного шлюзу, кінцеві точки резолвера маршруту 53 або Політики мережевого брандмауера. З 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. Якщо ви тільки починаєте чи хочете вдосконалити свої навички, у нас є курс для вас.

Відмова від відповідальності:
Цей матеріал було розроблено за допомогою штучного інтелекту для інформаційних та освітніх цілей. Перед публікацією контент пройшов перевірку та перегляд людиною. Представлена ​​інформація призначена для підтримки навчального процесу та не замінює консультації зі спеціалізованими джерелами, звернення до спеціаліста в цій галузі чи участі у офіційних навчальних курсах та програмах.