Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memperbarui tipe endpoint AWS Transfer Family server dari VPC _ ENDPOINT ke VPC
Anda dapat menggunakan AWS Management Console, AWS CloudFormation, atau Transfer Family API untuk memperbarui server EndpointType
dari VPC_ENDPOINT
keVPC
. Prosedur dan contoh terperinci untuk menggunakan masing-masing metode ini untuk memperbarui jenis endpoint server disediakan di bagian berikut. Jika Anda memiliki server di beberapa AWS wilayah dan di beberapa AWS akun, Anda dapat menggunakan contoh skrip yang disediakan di bagian berikut, dengan modifikasi, untuk mengidentifikasi server menggunakan VPC_ENDPOINT
jenis yang perlu Anda perbarui.
Topik
Mengidentifikasi server menggunakan tipe VPC_ENDPOINT
endpoint
Anda dapat mengidentifikasi server mana yang VPC_ENDPOINT
menggunakan AWS Management Console.
Untuk mengidentifikasi server menggunakan tipe VPC_ENDPOINT
endpoint menggunakan konsol
-
Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/
. Pilih Server di panel navigasi untuk menampilkan daftar server di akun Anda di wilayah tersebut.
Urutkan daftar server berdasarkan jenis Endpoint untuk melihat semua server yang menggunakan
VPC_ENDPOINT
.
Untuk mengidentifikasi server yang menggunakan VPC_ENDPOINT
berbagai AWS Wilayah dan akun
Jika Anda memiliki server di beberapa AWS wilayah dan di beberapa AWS akun, Anda dapat menggunakan contoh skrip berikut, dengan modifikasi, untuk mengidentifikasi server menggunakan tipe VPC_ENDPOINT
endpoint. Contoh skrip menggunakan Amazon EC2 DescribeRegionsdan Transfer Family ListServers API panggilan untuk mendapatkan daftar server IDs dan wilayah dari semua server Anda menggunakanVPC_ENDPOINT
. Jika Anda memiliki banyak AWS akun, Anda dapat melakukan loop melalui akun menggunakan IAM Peran dengan akses auditor hanya baca jika Anda mengautentikasi menggunakan profil sesi ke penyedia identitas Anda.
Berikut ini adalah contoh sederhana.
import boto3 profile = input("Enter the name of the AWS account you'll be working in: ") session = boto3.Session(profile_name=profile) ec2 = session.client("ec2") regions = ec2.describe_regions() for region in regions['Regions']: region_name = region['RegionName'] if region_name=='ap-northeast-3': #https://github.com/boto/boto3/issues/1943 continue transfer = session.client("transfer", region_name=region_name) servers = transfer.list_servers() for server in servers['Servers']: if server['EndpointType']=='VPC_ENDPOINT': print(server['ServerId'], region_name)
Setelah Anda memiliki daftar server untuk diperbarui, Anda dapat menggunakan salah satu metode yang dijelaskan di bagian berikut untuk memperbarui
EndpointType
keVPC
.
Memperbarui tipe endpoint server menggunakan AWS Management Console
-
Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/
. -
Di panel navigasi, pilih Server.
-
Pilih kotak centang server yang ingin Anda ubah tipe endpoint.
penting
Anda harus menghentikan server sebelum Anda dapat mengubah titik akhirnya.
-
Untuk Tindakan, pilih Berhenti.
-
Di kotak dialog konfirmasi yang muncul, pilih Berhenti untuk mengonfirmasi bahwa Anda ingin menghentikan server.
catatan
Sebelum melanjutkan ke langkah berikutnya, tunggu Status server berubah menjadi Offline; ini bisa memakan waktu beberapa menit. Anda mungkin harus memilih Refresh di halaman Server untuk melihat perubahan status.
Setelah status berubah menjadi Offline, pilih server untuk menampilkan halaman detail server.
Di bagian Detail titik akhir, pilih Edit.
Pilih VPChost untuk tipe Endpoint.
Pilih Simpan.
Untuk Tindakan, pilih Mulai dan tunggu status server berubah menjadi Online; ini bisa memakan waktu beberapa menit.
Memperbarui tipe endpoint server menggunakan AWS CloudFormation
Bagian ini menjelaskan cara menggunakan AWS CloudFormation untuk memperbarui server EndpointType
keVPC
. Gunakan prosedur ini untuk server Transfer Family yang telah Anda gunakan AWS CloudFormation. Dalam contoh ini, AWS CloudFormation template asli yang digunakan untuk menyebarkan server Transfer Family ditampilkan sebagai berikut:
AWS TemplateFormatVersion: '2010-09-09' Description: 'Create AWS Transfer Server with VPC_ENDPOINT endpoint type' Parameters: SecurityGroupId: Type: AWS::EC2::SecurityGroup::Id SubnetIds: Type: List<AWS::EC2::Subnet::Id> VpcId: Type: AWS::EC2::VPC::Id Resources: TransferServer: Type: AWS::Transfer::Server Properties: Domain: S3 EndpointDetails: VpcEndpointId: !Ref VPCEndpoint EndpointType: VPC_ENDPOINT IdentityProviderType: SERVICE_MANAGED Protocols: - SFTP VPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: com.amazonaws.us-east-1.transfer.server SecurityGroupIds: - !Ref SecurityGroupId SubnetIds: - !Select [0, !Ref SubnetIds] - !Select [1, !Ref SubnetIds] - !Select [2, !Ref SubnetIds] VpcEndpointType: Interface VpcId: !Ref VpcId
Template diperbarui dengan perubahan berikut:
EndpointType
Itu diubah menjadiVPC
.AWS::EC2::VPCEndpoint
Sumber daya dihapus.Itu
SecurityGroupId
SubnetIds
,, danVpcId
dipindahkan keEndpointDetails
bagianAWS::Transfer::Server
sumber daya,VpcEndpointId
PropertiEndpointDetails
telah dihapus.
Template yang diperbarui terlihat sebagai berikut:
AWS TemplateFormatVersion: '2010-09-09' Description: 'Create AWS Transfer Server with VPC endpoint type' Parameters: SecurityGroupId: Type: AWS::EC2::SecurityGroup::Id SubnetIds: Type: List<AWS::EC2::Subnet::Id> VpcId: Type: AWS::EC2::VPC::Id Resources: TransferServer: Type: AWS::Transfer::Server Properties: Domain: S3 EndpointDetails: SecurityGroupIds: - !Ref SecurityGroupId SubnetIds: - !Select [0, !Ref SubnetIds] - !Select [1, !Ref SubnetIds] - !Select [2, !Ref SubnetIds] VpcId: !Ref VpcId EndpointType: VPC IdentityProviderType: SERVICE_MANAGED Protocols: - SFTP
Untuk memperbarui jenis endpoint dari server Transfer Family yang digunakan AWS CloudFormation
Hentikan server yang ingin Anda perbarui menggunakan langkah-langkah berikut.
-
Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/
. -
Di panel navigasi, pilih Server.
-
Pilih kotak centang server yang ingin Anda ubah tipe endpoint.
penting
Anda harus menghentikan server sebelum Anda dapat mengubah titik akhirnya.
-
Untuk Tindakan, pilih Berhenti.
-
Di kotak dialog konfirmasi yang muncul, pilih Berhenti untuk mengonfirmasi bahwa Anda ingin menghentikan server.
catatan
Sebelum melanjutkan ke langkah berikutnya, tunggu Status server berubah menjadi Offline; ini bisa memakan waktu beberapa menit. Anda mungkin harus memilih Refresh di halaman Server untuk melihat perubahan status.
-
Perbarui CloudFormation tumpukan
Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation
. Pilih tumpukan yang digunakan untuk membuat server Transfer Family.
Pilih Perbarui.
Pilih Ganti template saat ini
Unggah template baru. CloudFormation Change Sets membantu Anda memahami bagaimana perubahan template akan memengaruhi sumber daya yang sedang berjalan sebelum Anda menerapkannya. Dalam contoh ini, sumber daya server Transfer akan dimodifikasi, dan VPCEndpoint sumber daya akan dihapus. Server tipe VPC endpoint membuat VPC Endpoint atas nama Anda, menggantikan sumber daya asli
VPCEndpoint
.Setelah mengunggah template baru, set perubahan akan terlihat mirip dengan yang berikut:
Perbarui tumpukan.
Setelah pembaruan tumpukan selesai, navigasikan ke konsol manajemen Transfer Family di https://console.aws.amazon.com/transfer/
. Mulai ulang server. Pilih server yang Anda perbarui AWS CloudFormation, lalu pilih Mulai dari menu Tindakan.
Memperbarui server EndpointType menggunakan API
Anda dapat menggunakan perintah deskripsi-server, atau AWS CLI perintah. UpdateServer API Contoh skrip berikut menghentikan server Transfer Family, memperbarui EndpointType, menghapus VPC _ENDPOINT, dan memulai server.
import boto3 import time profile = input("Enter the name of the AWS account you'll be working in: ") region_name = input("Enter the AWS Region you're working in: ") server_id = input("Enter the AWS Transfer Server Id: ") session = boto3.Session(profile_name=profile) ec2 = session.client("ec2", region_name=region_name) transfer = session.client("transfer", region_name=region_name) group_ids=[] transfer_description = transfer.describe_server(ServerId=server_id) if transfer_description['Server']['EndpointType']=='VPC_ENDPOINT': transfer_vpc_endpoint = transfer_description['Server']['EndpointDetails']['VpcEndpointId'] transfer_vpc_endpoint_descriptions = ec2.describe_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint]) for transfer_vpc_endpoint_description in transfer_vpc_endpoint_descriptions['VpcEndpoints']: subnet_ids=transfer_vpc_endpoint_description['SubnetIds'] group_id_list=transfer_vpc_endpoint_description['Groups'] vpc_id=transfer_vpc_endpoint_description['VpcId'] for group_id in group_id_list: group_ids.append(group_id['GroupId']) if transfer_description['Server']['State']=='ONLINE': transfer_stop = transfer.stop_server(ServerId=server_id) print(transfer_stop) time.sleep(300) #safe transfer_update = transfer.update_server(ServerId=server_id,EndpointType='VPC',EndpointDetails={'SecurityGroupIds':group_ids,'SubnetIds':subnet_ids,'VpcId':vpc_id}) print(transfer_update) time.sleep(10) transfer_start = transfer.start_server(ServerId=server_id) print(transfer_start) delete_vpc_endpoint = ec2.delete_vpc_endpoints(VpcEndpointIds=[transfer_vpc_endpoint])