Nesta postagem, demonstramos a automação da implantação de Fluxos de trabalho gerenciados da Amazon para Apache Airflow (Amazon MWAA) usando endpoints gerenciados pelo cliente em uma VPC, fornecendo compatibilidade com VPCs compartilhadas ou de outra forma restritas.
Cientistas e engenheiros de dados fizeram Fluxo de ar Apache uma ferramenta de código aberto líder para criar pipelines de dados devido à sua comunidade ativa de código aberto, desenvolvimento familiar em Python como fluxos de trabalho de gráfico acíclico direcionado (DAG) e extensa biblioteca de integrações pré-construídas. O Amazon MWAA é um serviço gerenciado para Airflow que facilita a execução do Airflow na AWS sem a carga operacional de ter que gerenciar a infraestrutura subjacente. Para cada ambiente Airflow, o Amazon MWAA cria uma VPC de serviço de locatário único, que hospeda o metadatabase que armazena estados e o servidor web que fornece a interface do usuário. O Amazon MWAA gerencia ainda instâncias de trabalho e agendadores do Airflow em uma VPC gerenciada e de propriedade do cliente, para agendar e executar tarefas que interagem com os recursos do cliente. Esses contêineres do Airflow na VPC do cliente acessam recursos na VPC de serviço por meio de um Ponto de extremidade VPC.
Muitas organizações optam por gerenciar centralmente sua VPC utilização Organizações da AWS, permitindo que uma VPC em uma conta de proprietário seja compartilhada com recursos em uma conta de participante diferente. No entanto, como a criação de uma nova rota fora de uma VPC é considerada uma operação privilegiada, as contas dos participantes não podem criar endpoints nas VPCs proprietárias. Além disso, muitos clientes não desejam estender os privilégios de segurança necessários para criar VPC endpoints a todos os usuários que provisionam ambientes Amazon MWAA. Além dos VPC endpoints, os clientes também desejam restringir a saída de dados por meio de Serviço de fila simples da Amazon (Amazon SQS) e o acesso ao Amazon SQS é um requisito no Arquitetura Amazon MWAA.
O suporte de VPC compartilhada para Amazon MWAA adiciona a capacidade de gerenciar seus próprios endpoints dentro de suas VPCs, adicionando compatibilidade a VPCs compartilhadas e de outra forma restritas. A especificação de endpoints gerenciados pelo cliente também oferece a capacidade de atender a políticas de segurança rígidas, restringindo explicitamente o acesso aos recursos da VPC apenas àqueles necessários aos seus ambientes Amazon MWAA. Esta postagem demonstra como os endpoints gerenciados pelo cliente funcionam com o Amazon MWAA e fornece exemplos de como automatizar o provisionamento desses endpoints.
Visão geral da solução
O suporte de VPC compartilhada para Amazon MWAA permite que várias contas da AWS criem seus ambientes Airflow em VPCs compartilhadas e gerenciadas centralmente. A conta proprietária da VPC (proprietário) compartilha as duas sub-redes privadas exigidas pelo Amazon MWAA com outras contas (participantes) que pertencem à mesma organização do AWS Organizations. Depois que as sub-redes forem compartilhadas, os participantes poderão visualizar, criar, modificar e excluir ambientes do Amazon MWAA nas sub-redes compartilhadas com eles.
Quando os usuários especificam a necessidade de uma VPC compartilhada ou restrita por política durante a criação do ambiente, o Amazon MWAA primeiro criará os recursos da VPC de serviço e, em seguida, entrará em um estado pendente por até 72 horas, com um Amazon Event Bridge notificação da mudança de estado. Isso permite que os proprietários criem os endpoints necessários em nome dos participantes com base nas informações de serviço de endpoint do console ou da API do Amazon MWAA, ou programaticamente por meio de um AWS Lambda função e regra EventBridge, como no exemplo desta postagem.
Depois que esses endpoints forem criados na conta do proprietário, o serviço de endpoint na VPC de locatário único do Amazon MWAA detectará o evento de conexão do endpoint e retomará a criação do ambiente. Caso haja algum problema, você poderá cancelar a criação do ambiente excluindo o ambiente durante esse estado pendente.
Este recurso também permite que você remova o criar, modificar e excluir privilégios do VPCE do Gerenciamento de acesso e identidade da AWS (IAM) criando ambientes Amazon MWAA, mesmo quando não estiver usando uma VPC compartilhada, porque essa permissão será imposta ao principal IAM que cria o endpoint (a função Lambda em nosso exemplo). Além disso, o ambiente Amazon MWAA fornecerá a fila SQS Amazon Resource Name (ARN) usada pelo Airflow Celery Executor para enfileirar tarefas (a Celery Executor Queue), permitindo que você insira explicitamente esses recursos em sua política de rede em vez de ter que fornecer um permissão mais aberta e generalizada.
Neste exemplo, criamos o ambiente VPC e Amazon MWAA na mesma conta. Para VPCs compartilhadas entre contas, a regra EventBridge e a função Lambda existiriam na conta do proprietário, e o ambiente Amazon MWAA seria criado na conta do participante. Ver Envio e recebimento de eventos do Amazon EventBridge entre contas da AWS para obter mais informações.
Pré-requisitos
Você deve ter os seguintes pré-requisitos:
- Uma conta da AWS
- Um usuário da AWS nessa conta, com permissões para criar VPCs, VPC endpoints e ambientes Amazon MWAA
- An Serviço de armazenamento simples da Amazon (Amazon S3) nessa conta, com uma pasta chamada
dags
Crie a VPC
Começamos criando uma VPC restritiva usando um Formação da Nuvem AWS modelo, para simular a criação do VPC endpoint necessário e a modificação da política de endpoint SQS. Se quiser usar uma VPC existente, prossiga para a próxima seção.
- Baixe o modelo do CloudFormation referenciado em Opção três: criar uma rede Amazon VPC sem acesso à Internet.
- Extrair o arquivo
cfn-vpc-private-bjs.yml
do arquivo ZIP baixado. - Agora editamos nosso modelo CloudFormation para restringir o acesso ao Amazon SQS. Em
cfn-vpc-private-bjs.yml
, edite oSqsVpcEndoint
seção para aparecer da seguinte forma:
Essa entrada adicional do documento de política impede a saída do Amazon SQS para qualquer recurso não listado explicitamente.
Agora podemos criar nossa pilha CloudFormation.
- No console do AWS CloudFormation, escolha Criar pilha.
- Selecionar Faça upload de um arquivo de modelo.
- Escolha Escolha o arquivo.
- Navegue até o arquivo que você modificou.
- Escolha Próximo.
- Escolha Nome da pilha, entrar
MWAA-Environment-VPC
. - Escolha Próximo até chegar à página de revisão.
- Escolha Submeter.
Criar a função Lambda
Temos duas opções para autogerenciar nossos endpoints: manual e automatizado. Neste exemplo, criamos uma função Lambda que responde à notificação do Amazon MWAA EventBridge. Você também pode usar a notificação do EventBridge para enviar um Serviço de notificação simples da Amazon (Amazon SNS), como um e-mail, para alguém com permissão para criar o VPC endpoint manualmente.
Primeiro, criamos uma função Lambda para responder ao evento EventBridge que o Amazon MWAA emitirá.
- No console do Lambda, escolha Criar função.
- Escolha Nome, entrar
mwaa-create-lambda
. - Escolha Runtime, escolha Python 3.11.
- Escolha Criar função.
- Escolha Code, Na Código fonte seção, para
lambda_function
, insira o seguinte código: - Escolha Implantação.
- No Configuração guia da função Lambda, na seção Configuração geral seção, escolha Editar.
- Escolha Timeout, aumente para 5 minutos e 0 segundos.
- Escolha Salvar.
- No Permissões seção, sob Função de execução, escolha o nome da função para editar as permissões desta função.
- Escolha Políticas de permissão, escolha o link abaixo nome da política.
- Escolha Editar e adicione uma vírgula e a seguinte declaração:
A política completa deve ser semelhante a esta:
- Escolha Próximo até chegar à página de revisão.
- Escolha Salvar alterações.
Criar uma regra EventBridge
A seguir, configuramos o EventBridge para enviar notificações do Amazon MWAA para nossa função Lambda.
- No console do EventBridge, escolha Criar regra.
- Escolha Nome, insira mwaa-criar.
- Selecionar Regra com um padrão de evento.
- Escolha Próximo.
- Escolha Método de criação, escolha Formulário padrão do usuário.
- Escolha Editar padrão.
- Escolha Padrão de evento, digite o seguinte:
- Escolha Próximo.
- Escolha Selecione um alvo, escolha Função lambda.
Você também pode especificar uma notificação SNS para receber uma mensagem quando o estado do ambiente mudars.
- Escolha função, escolha
mwaa-create-lambda
. - Escolha Próximo até chegar à seção final e escolha Criar regra.
Crie um ambiente Amazon MWAA
Por fim, criamos um ambiente Amazon MWAA com endpoints gerenciados pelo cliente.
- No console Amazon MWAA, escolha Criar ambiente.
- Escolha Nome, insira um nome exclusivo para seu ambiente.
- Escolha Versão do fluxo de ar, escolha a versão mais recente do Airflow.
- Escolha Caçamba S3, escolha Navegar S3 e escolha seu bucket S3 ou insira o URI do Amazon S3.
- Escolha Pasta DAGs, escolha Navegar S3 e escolha o
dags/
pasta em seu bucket do S3 ou insira o URI do Amazon S3. - Escolha Próximo.
- Escolha Nuvem privada virtual, escolha a VPC que você criou anteriormente.
- Escolha Acesso ao servidor web, escolha Rede pública (acessível pela Internet).
- Escolha Grupos de segurança, desmarque Criar novo grupo de segurança.
- Escolha o grupo de segurança VPC compartilhado criado pelo modelo CloudFormation.
Porque os grupos de segurança do AWS PrivateLink Se os endpoints da etapa anterior forem autorreferenciados, você deverá escolher o mesmo grupo de segurança para seu ambiente Amazon MWAA.
- Escolha Gerenciamento de endpoints, escolha Endpoints gerenciados pelo cliente.
- Mantenha as configurações restantes como padrão e escolha Próximo.
- Escolha Criar ambiente.
Quando seu ambiente estiver disponível, você poderá acessá-lo por meio do Abra a IU do Airflow link no console do Amazon MWAA.
limpar
A limpeza de recursos que não estão sendo usados ativamente reduz custos e é uma prática recomendada. Se você não excluir seus recursos, poderá incorrer em cobranças adicionais. Para limpar seus recursos, conclua as etapas a seguir:
- Excluir seu Ambiente Amazon MWAA, Regra EventBridge e Função lambda.
- Excluir o Pontos de extremidade VPC criado pela função Lambda.
- Exclua qualquer grupos de segurança criado, se aplicável.
- Depois que os recursos acima forem excluídos, exclua o Pilha CloudFormation para garantir que você removeu todos os recursos restantes.
Resumo
Esta postagem descreveu como automatizar a criação de ambientes com suporte a VPC compartilhado no Amazon MWAA. Isso lhe dá a capacidade de gerenciar seus próprios endpoints em sua VPC, adicionando compatibilidade a VPCs compartilhadas ou restritas de outra forma. A especificação de endpoints gerenciados pelo cliente também oferece a capacidade de atender a políticas de segurança rígidas, restringindo explicitamente o acesso aos recursos da VPC apenas àqueles necessários para seus ambientes Amazon MWAA. Para saber mais sobre o Amazon MWAA, consulte o Guia do usuário do Amazon MWAA. Para mais postagens sobre o Amazon MWAA, visite o Página de recursos do Amazon MWAA.
Sobre o autor
John jackson tem mais de 25 anos de experiência em software como desenvolvedor, arquiteto de sistemas e gerente de produtos em startups e grandes corporações e é o principal gerente de produto da AWS responsável pelo Amazon MWAA.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/big-data/introducing-shared-vpc-support-on-amazon-mwaa/
- :tem
- :é
- :não
- $UP
- 10
- 100
- 11
- 13
- 15%
- 200
- 25
- 41
- 72
- 8
- a
- habilidade
- Sobre
- acima
- Acesso
- acessível
- Conta
- Contas
- em
- Açao Social
- ativo
- ativamente
- acíclico
- adicionar
- acrescentando
- Adição
- Adicional
- Adiciona
- Depois de
- Todos os Produtos
- permitir
- permitidas
- Permitindo
- permite
- já
- tb
- Amazon
- Amazon Web Services
- an
- e
- qualquer
- apache
- api
- aparecer
- relevante
- arquivo
- SOMOS
- AS
- automatizar
- Automatizado
- automatizando
- disponível
- AWS
- Formação da Nuvem AWS
- baseado
- BE
- Porque
- começar
- lado
- ser
- MELHOR
- entre
- corpo
- pino
- ambos
- Break
- carga
- mas a
- by
- chamado
- CAN
- Pode obter
- alterar
- Alterações
- acusações
- Escolha
- limpar
- cliente
- código
- COM
- comunidade
- compatibilidade
- completar
- Efetuado
- da conexão
- considerado
- cônsul
- Containers
- contexto
- Corporações
- custos
- poderia
- crio
- criado
- cria
- Criar
- criação
- cliente
- Clientes
- DAG
- dados,
- banco de dados
- Padrão
- demonstrar
- demonstra
- desenvolvimento
- descreve
- descrito
- detalhe
- descobrir
- Developer
- Desenvolvimento
- diferente
- dirigido
- documento
- parece
- não
- dois
- durante
- cada
- Mais cedo
- fácil
- efeito
- outro
- Ponto final
- endpoints
- Engenheiros
- garantir
- Entrar
- entrada
- Meio Ambiente
- ambientes
- Éter (ETH)
- Mesmo
- Evento
- eventos
- exemplo
- exemplos
- existir
- existente
- vasta experiência
- explicitamente
- estender
- extenso
- familiar
- Característica
- Envie o
- filtragem
- final
- Primeiro nome
- seguinte
- segue
- Escolha
- encontrado
- da
- função
- mais distante
- Além disso
- ter
- dá
- gráfico
- Grupo
- Do grupo
- Ter
- ter
- anfitriões
- HORÁRIO
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- IAM
- ID
- Identidade
- if
- importar
- Imposta
- in
- info
- INFORMAÇÕES
- Infraestrutura
- instâncias
- em vez disso
- integrações
- interagir
- Interface
- Internet
- para dentro
- introduzindo
- emitem
- IT
- ESTÁ
- jpg
- json
- apenas por
- Chave
- grande
- mais recente
- principal
- APRENDER
- Biblioteca
- LINK
- Listado
- logging
- olhar
- moldadas
- FAZ
- gerencia
- gerenciados
- Gerente
- gestão
- manual
- manualmente
- muitos
- Posso..
- Conheça
- mensagem
- minutos
- modificada
- modificar
- mais
- múltiplo
- devo
- nome
- necessário
- você merece...
- necessário
- rede
- Novo
- Próximo
- notificação
- notificações
- of
- on
- aberto
- open source
- operação
- operacional
- Opções
- or
- ordem
- organização
- organizações
- Outros
- de outra forma
- A Nossa
- lado de fora
- Acima de
- próprio
- proprietário
- proprietários
- possui
- página
- participante
- participantes
- padrão
- pendente
- permissão
- permissões
- platão
- Inteligência de Dados Platão
- PlatãoData
- políticas
- Privacidade
- Publique
- POSTAGENS
- prática
- pré-requisitos
- impede
- Diretor
- privado
- privilegiado
- privilégios
- prosseguir
- Produto
- gerente de produto
- Propriedades
- fornecer
- fornece
- fornecendo
- Python
- R
- em vez
- alcançar
- receber
- receber
- reduz
- referir
- remanescente
- remover
- Removido
- requeridos
- requerimento
- recurso
- Recursos
- Responder
- resposta
- responsável
- restringir
- restringido
- restringindo
- Restritivo
- currículo
- retorno
- rever
- Tipo
- Rota
- Regra
- Execute
- s
- mesmo
- cronograma
- cientistas
- segundo
- Seção
- segurança
- políticas de segurança
- Vejo
- enviar
- servidor
- serviço
- Serviços
- Configurações
- compartilhado
- ações
- rede de apoio social
- semelhante
- simples
- So
- Software
- Alguém
- fonte
- pilha
- Startups
- Estado
- Declaração
- Unidos
- Status
- Passo
- Passos
- armazenamento
- loja
- lojas
- rigoroso
- sub-redes
- tal
- ajuda
- sistemas
- tarefas
- modelo
- do que
- que
- A
- deles
- Eles
- então
- Lá.
- isto
- aqueles
- três
- para
- ferramenta
- verdadeiro
- dois
- tipo
- para
- subjacente
- único
- até
- atualização
- URI
- usar
- usava
- Utilizador
- Interface de Usuário
- usuários
- utilização
- valor
- Valores
- versão
- via
- Ver
- Visite a
- queremos
- we
- web
- servidor web
- serviços web
- quando
- qual
- precisarão
- de
- dentro
- sem
- Atividades:
- trabalhador
- fluxos de trabalho
- seria
- anos
- Você
- investimentos
- zefirnet
- Zip