Mengelola VPC titik akhir Amazon Anda sendiri di Amazon MWAA - Amazon Managed Workflows for Apache Airflow (MWAA)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola VPC titik akhir Amazon Anda sendiri di Amazon MWAA

Amazon MWAA menggunakan VPC endpoint Amazon untuk berintegrasi dengan berbagai AWS layanan yang diperlukan untuk menyiapkan lingkungan Apache Airflow. Mengelola titik akhir Anda sendiri memiliki dua kasus penggunaan utama:

  1. Ini berarti Anda dapat membuat lingkungan Apache Airflow di Amazon bersama VPC saat Anda menggunakan file AWS Organizationsuntuk mengelola beberapa AWS akun dan berbagi sumber daya.

  2. Ini memungkinkan Anda menggunakan kebijakan akses yang lebih ketat dengan mempersempit izin Anda ke sumber daya tertentu yang menggunakan titik akhir Anda.

Jika Anda memilih untuk mengelola VPC titik akhir Anda sendiri, Anda bertanggung jawab untuk membuat titik akhir Anda sendiri untuk lingkungan RDS untuk SQL database Postgre, dan untuk server web lingkungan.

Untuk informasi selengkapnya tentang cara Amazon MWAA menyebarkan Apache Airflow di cloud, lihat diagram arsitektur Amazon MWAA.

Menciptakan lingkungan di Amazon bersama VPC

Jika Anda menggunakan AWS Organizationsuntuk mengelola beberapa AWS akun yang berbagi sumber daya, Anda dapat menggunakan VPC titik akhir yang dikelola pelanggan dengan Amazon MWAA untuk berbagi sumber daya lingkungan dengan akun lain di organisasi Anda.

Saat Anda mengonfigurasi VPC akses bersama, akun yang memiliki Amazon VPC (pemilik) utama membagikan dua subnet pribadi yang diperlukan oleh Amazon MWAA dengan akun lain (peserta) yang termasuk dalam organisasi yang sama. Akun peserta yang berbagi subnet tersebut dapat melihat, membuat, memodifikasi, dan menghapus lingkungan di Amazon VPC bersama.

Asumsikan Anda memiliki akunOwner, yang bertindak sebagai Root akun dalam organisasi dan memiliki VPC sumber daya Amazon, dan akun pesertaParticipant, anggota organisasi yang sama. Saat Participant membuat Amazon baru MWAA di Amazon yang VPC dibagikanOwner, Amazon pertama-tama MWAA akan membuat VPC sumber daya layanan, lalu memasuki PENDINGstatus hingga 72 jam.

Setelah status lingkungan berubah dari CREATING kePENDING, kepala sekolah yang bertindak atas nama Owner menciptakan titik akhir yang diperlukan. Untuk melakukan ini, Amazon MWAA mencantumkan titik akhir database dan server web di MWAA konsol Amazon. Anda juga dapat memanggil GetEnvironmentAPItindakan untuk mendapatkan titik akhir layanan.

catatan

Jika Amazon yang VPC Anda gunakan untuk berbagi sumber daya adalah Amazon pribadiVPC, Anda masih harus menyelesaikan langkah-langkah yang dijelaskan diMengelola akses ke titik akhir VPC Amazon khusus layanan di Amazon MWAA. Topiknya mencakup pengaturan serangkaian VPC titik akhir Amazon yang berbeda terkait dengan AWS layanan lain yang AWS terintegrasi, seperti Amazon, ECR AmazonECS, dan Amazon. SQS Layanan ini sangat penting dalam mengoperasikan, dan mengelola, lingkungan Apache Airflow Anda di cloud.

Prasyarat

Sebelum Anda membuat MWAA lingkungan Amazon di sharedVPC, Anda memerlukan sumber daya berikut:

  • AWS Akun, Owner untuk digunakan sebagai akun yang memiliki AmazonVPC.

  • Unit AWS Organizationsorganisasi, MyOrganization dibuat sebagai root.

  • AWS Akun kedua,Participant, di bawah MyOrganization untuk melayani akun peserta yang menciptakan lingkungan baru.

Selain itu, kami menyarankan Anda membiasakan diri dengan tanggung jawab dan izin untuk pemilik dan peserta saat berbagi sumber daya di AmazonVPC.

Buat Amazon VPC

Pertama, buat Amazon baru VPC yang akan dibagikan oleh pemilik dan akun peserta:

  1. Masuk ke konsol menggunakanOwner, lalu, buka AWS CloudFormation konsol. Gunakan template berikut untuk membuat tumpukan. Tumpukan ini menyediakan sejumlah sumber daya jaringan termasuk AmazonVPC, dan subnet yang akan dibagikan kedua akun dalam skenario ini.

    AWSTemplateFormatVersion: "2010-09-09" Description: >- This template deploys a VPC, with a pair of public and private subnets spread across two Availability Zones. It deploys an internet gateway, with a default route on the public subnets. It deploys a pair of NAT gateways (one in each AZ), and default routes for them in the private subnets. Parameters: EnvironmentName: Description: An environment name that is prefixed to resource names Type: String Default: mwaa- VpcCIDR: Description: Please enter the IP range (CIDR notation) for this VPC Type: String Default: 10.192.0.0/16 PublicSubnet1CIDR: Description: >- Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone Type: String Default: 10.192.10.0/24 PublicSubnet2CIDR: Description: >- Please enter the IP range (CIDR notation) for the public subnet in the second Availability Zone Type: String Default: 10.192.11.0/24 PrivateSubnet1CIDR: Description: >- Please enter the IP range (CIDR notation) for the private subnet in the first Availability Zone Type: String Default: 10.192.20.0/24 PrivateSubnet2CIDR: Description: >- Please enter the IP range (CIDR notation) for the private subnet in the second Availability Zone Type: String Default: 10.192.21.0/24 Resources: VPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: !Ref VpcCIDR EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Ref EnvironmentName InternetGateway: Type: 'AWS::EC2::InternetGateway' Properties: Tags: - Key: Name Value: !Ref EnvironmentName InternetGatewayAttachment: Type: 'AWS::EC2::VPCGatewayAttachment' Properties: InternetGatewayId: !Ref InternetGateway VpcId: !Ref VPC PublicSubnet1: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 0 - !GetAZs '' CidrBlock: !Ref PublicSubnet1CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Subnet (AZ1)' PublicSubnet2: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 1 - !GetAZs '' CidrBlock: !Ref PublicSubnet2CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Subnet (AZ2)' PrivateSubnet1: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 0 - !GetAZs '' CidrBlock: !Ref PrivateSubnet1CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Subnet (AZ1)' PrivateSubnet2: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 1 - !GetAZs '' CidrBlock: !Ref PrivateSubnet2CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Subnet (AZ2)' NatGateway1EIP: Type: 'AWS::EC2::EIP' DependsOn: InternetGatewayAttachment Properties: Domain: vpc NatGateway2EIP: Type: 'AWS::EC2::EIP' DependsOn: InternetGatewayAttachment Properties: Domain: vpc NatGateway1: Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt NatGateway1EIP.AllocationId SubnetId: !Ref PublicSubnet1 NatGateway2: Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt NatGateway2EIP.AllocationId SubnetId: !Ref PublicSubnet2 PublicRouteTable: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Routes' DefaultPublicRoute: Type: 'AWS::EC2::Route' DependsOn: InternetGatewayAttachment Properties: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway PublicSubnet1RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet1 PublicSubnet2RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet2 PrivateRouteTable1: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Routes (AZ1)' DefaultPrivateRoute1: Type: 'AWS::EC2::Route' Properties: RouteTableId: !Ref PrivateRouteTable1 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway1 PrivateSubnet1RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PrivateRouteTable1 SubnetId: !Ref PrivateSubnet1 PrivateRouteTable2: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Routes (AZ2)' DefaultPrivateRoute2: Type: 'AWS::EC2::Route' Properties: RouteTableId: !Ref PrivateRouteTable2 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway2 PrivateSubnet2RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PrivateRouteTable2 SubnetId: !Ref PrivateSubnet2 SecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: GroupName: mwaa-security-group GroupDescription: Security group with a self-referencing inbound rule. VpcId: !Ref VPC SecurityGroupIngress: Type: 'AWS::EC2::SecurityGroupIngress' Properties: GroupId: !Ref SecurityGroup IpProtocol: '-1' SourceSecurityGroupId: !Ref SecurityGroup Outputs: VPC: Description: A reference to the created VPC Value: !Ref VPC PublicSubnets: Description: A list of the public subnets Value: !Join - ',' - - !Ref PublicSubnet1 - !Ref PublicSubnet2 PrivateSubnets: Description: A list of the private subnets Value: !Join - ',' - - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 PublicSubnet1: Description: A reference to the public subnet in the 1st Availability Zone Value: !Ref PublicSubnet1 PublicSubnet2: Description: A reference to the public subnet in the 2nd Availability Zone Value: !Ref PublicSubnet2 PrivateSubnet1: Description: A reference to the private subnet in the 1st Availability Zone Value: !Ref PrivateSubnet1 PrivateSubnet2: Description: A reference to the private subnet in the 2nd Availability Zone Value: !Ref PrivateSubnet2 SecurityGroupIngress: Description: Security group with self-referencing inbound rule Value: !Ref SecurityGroupIngress
  2. Setelah VPC sumber daya Amazon baru disediakan, navigasikan ke AWS Resource Access Manager konsol, lalu pilih Buat berbagi sumber daya.

  3. Pilih subnet yang Anda buat pada langkah pertama dari daftar subnet yang tersedia yang dapat Anda bagikan. Participant

Buat lingkungan

Selesaikan langkah-langkah berikut untuk membuat MWAA lingkungan Amazon dengan titik akhir Amazon VPC yang dikelola pelanggan.

  1. Masuk menggunakanParticipant, dan buka MWAA konsol Amazon. Selesaikan Langkah satu: Tentukan detail untuk menentukan bucket Amazon S3, DAG folder, dan dependensi untuk lingkungan baru Anda. Untuk informasi selengkapnya, lihat memulai.

  2. Pada halaman Konfigurasi pengaturan lanjutan, di bawah Jaringan, pilih subnet dari Amazon VPC bersama.

  3. Di bawah manajemen Endpoint pilih CUSTOMERdari daftar dropdown.

  4. Pertahankan default untuk opsi yang tersisa di halaman, lalu pilih Buat lingkungan di halaman Tinjauan dan buat.

Lingkungan dimulai dalam suatu CREATING keadaan, kemudian berubah menjadiPENDING. Saat lingkungannyaPENDING, tuliskan nama layanan endpoint Database dan nama layanan endpoint server Web (jika Anda menyiapkan server web pribadi) menggunakan konsol.

Saat Anda membuat lingkungan baru menggunakan MWAA konsol Amazon. Amazon MWAA membuat grup keamanan baru dengan aturan masuk dan keluar yang diperlukan. Tuliskan ID grup keamanan.

Di bagian selanjutnya, Owner akan menggunakan titik akhir layanan dan ID grup keamanan untuk membuat VPC titik akhir Amazon baru di Amazon bersama. VPC

Buat titik VPC akhir Amazon

Selesaikan langkah-langkah berikut untuk membuat VPC titik akhir Amazon yang diperlukan untuk lingkungan Anda.

  1. Masuk ke AWS Management Console penggunaanOwner, terbuka https://console.aws.amazon.com/vpc/.

  2. Pilih Grup keamanan dari panel navigasi kiri, lalu buat grup keamanan baru di Amazon bersama VPC menggunakan aturan masuk dan keluar berikut:

    Tipe Protokol Jenis sumber Sumber

    Ke dalam

    Semua Lalu lintas Semua Semua

    Grup keamanan lingkungan Anda

    Ke luar

    Semua Lalu lintas Semua Semua 0.0.0.0/0
    Awas

    OwnerAkun harus menyiapkan grup keamanan di Owner akun untuk memungkinkan lalu lintas dari lingkungan baru ke Amazon bersamaVPC. Anda dapat melakukan ini dengan membuat grup keamanan baru diOwner, atau mengedit yang sudah ada.

  3. Pilih Endpoint, lalu buat endpoint baru untuk database lingkungan dan server web (jika dalam mode pribadi) menggunakan nama layanan endpoint dari langkah sebelumnya. Pilih Amazon bersamaVPC, subnet yang Anda gunakan untuk lingkungan, dan grup keamanan lingkungan.

Jika berhasil, lingkungan akan berubah dari PENDING belakang keCREATING, lalu akhirnya menjadiAVAILABLE. Jika sudahAVAILABLE, Anda dapat masuk ke konsol Apache Airflow.

VPCPemecahan Masalah Amazon Bersama

Gunakan referensi berikut untuk menyelesaikan masalah yang Anda temui saat membuat lingkungan di Amazon bersamaVPC.

Lingkungan CREATE_FAILED setelah PENDING status
  • Verifikasi Owner bahwa berbagi subnet dengan Participant menggunakan AWS Resource Access Manager.

  • Verifikasi bahwa VPC titik akhir Amazon untuk database dan server web dibuat dalam subnet yang sama yang terkait dengan lingkungan.

  • Verifikasi bahwa grup keamanan yang digunakan dengan titik akhir Anda memungkinkan lalu lintas dari grup keamanan yang digunakan untuk lingkungan. OwnerAkun membuat aturan yang mereferensikan grup keamanan Participant sebagaiaccount-number/security-group-id:.

    Tipe Protokol Jenis sumber Sumber
    Semua Lalu lintas Semua Semua 123456789012/sg-0909e8e81919

    Untuk informasi selengkapnya, lihat Tanggung jawab dan izin untuk pemilik dan peserta

Lingkungan terjebak dalam PENDING status

Verifikasi setiap status VPC titik akhir untuk memastikannya. Available Jika Anda mengonfigurasi lingkungan dengan server web pribadi, Anda juga harus membuat titik akhir untuk server web. Jika lingkungan macetPENDING, ini mungkin menunjukkan bahwa titik akhir server web pribadi hilang.

The Vpc Endpoint Service 'vpce-service-name' does not existKesalahan yang diterima

Jika Anda melihat kesalahan berikut, verifikasi bahwa akun membuat titik akhir di Owner akun yang memiliki yang dibagikan: VPC

ClientError: An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: 

The Vpc Endpoint Service 'vpce-service-name' does not exist