Aktualisierung des AWS Transfer Family Serverendpunkttyps von VPC_ENDPOINT auf VPC - AWS Transfer Family

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisierung des AWS Transfer Family Serverendpunkttyps von VPC_ENDPOINT auf VPC

Sie können die AWS Management Console AWS CloudFormation, oder die Transfer Family Family-API verwenden, um die Daten EndpointType von bis eines Servers VPC_ENDPOINT zu aktualisierenVPC. In den folgenden Abschnitten finden Sie detaillierte Verfahren und Beispiele für die Verwendung jeder dieser Methoden zur Aktualisierung eines Serverendpunkttyps. Wenn Sie Server in mehreren AWS Regionen und in mehreren AWS Konten haben, können Sie das Beispielskript im folgenden Abschnitt mit Änderungen verwenden, um Server zu identifizieren, die den VPC_ENDPOINT Typ verwenden, den Sie aktualisieren müssen.

Identifizieren von Servern anhand des VPC_ENDPOINT Endpunkttyps

Mithilfe von können Sie feststellen, welche Server das VPC_ENDPOINT verwenden AWS Management Console.

Um Server zu identifizieren, die den VPC_ENDPOINT Endpunkttyp mithilfe der Konsole verwenden
  1. Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/.

  2. Wählen Sie im Navigationsbereich Server aus, um die Liste der Server in Ihrem Konto in dieser Region anzuzeigen.

  3. Sortieren Sie die Liste der Server nach dem Endpunkttyp, um zu sehen, dass alle Server diese verwendenVPC_ENDPOINT.

Um Server zu identifizieren, die mehrere VPC_ENDPOINTAWS Regionen und Konten verwenden

Wenn Sie Server in mehreren AWS Regionen und in mehreren AWS Konten haben, können Sie das folgende Beispielskript mit Änderungen verwenden, um Server zu identifizieren, die den VPC_ENDPOINT Endpunkttyp verwenden. Das Beispielskript verwendet die ListServers API-Aufrufe von Amazon EC2 DescribeRegionsund Transfer Family, um eine Liste der Server-IDs und Regionen all Ihrer Server abzurufen, die Sie verwendenVPC_ENDPOINT. Wenn Sie viele AWS Konten haben, können Sie Ihre Konten mithilfe einer IAM-Rolle mit schreibgeschütztem Auditor-Zugriff durchsuchen, wenn Sie sich mithilfe von Sitzungsprofilen bei Ihrem Identitätsanbieter authentifizieren.

  1. Es folgt ein einfaches Beispiel.

    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)
  2. Nachdem Sie die Liste der zu aktualisierenden Server erstellt haben, können Sie eine der in den folgenden Abschnitten beschriebenen Methoden verwenden, um den Server EndpointType zu aktualisierenVPC.

Aktualisierung des Serverendpunkt-Typs mit dem AWS Management Console

  1. Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/.

  2. Klicken Sie im Navigationsbereich auf Servers (Server).

  3. Aktivieren Sie das Kontrollkästchen des Servers, für den Sie den Endpunkttyp ändern möchten.

    Wichtig

    Sie müssen den Server anhalten, bevor Sie dessen Endpunkttyp ändern können.

  4. Wählen Sie für Actions (Aktionen) die Option Stop (Stopp).

  5. Wählen Sie im daraufhin angezeigten Bestätigungsdialogfeld die Option Stopp aus, um zu bestätigen, dass Sie den Server beenden möchten.

    Anmerkung

    Bevor Sie mit dem nächsten Schritt fortfahren, warten Sie, bis sich der Status des Servers auf Offline ändert. Dies kann einige Minuten dauern. Möglicherweise müssen Sie auf der Seite Server die Option Aktualisieren auswählen, um die Statusänderung zu sehen.

  6. Nachdem sich der Status auf Offline geändert hat, wählen Sie den Server aus, auf dem die Serverdetailseite angezeigt werden soll.

  7. Wählen Sie im Abschnitt Endpunktdetails die Option Bearbeiten aus.

  8. Wählen Sie VPC Hosted für den Endpoint-Typ aus.

  9. Wählen Sie Speichern.

  10. Wählen Sie für Aktionen die Option Start und warten Sie, bis sich der Status des Servers auf Online ändert. Dies kann einige Minuten dauern.

Den Serverendpunkttyp aktualisieren mit AWS CloudFormation

In diesem Abschnitt wird beschrieben, wie AWS CloudFormation Sie das auf einem Server aktualisieren EndpointType könnenVPC. Verwenden Sie dieses Verfahren für Transfer Family Family-Server, mit denen Sie bereitgestellt haben AWS CloudFormation. In diesem Beispiel wird die ursprüngliche AWS CloudFormation Vorlage, die für die Bereitstellung des Transfer Family Family-Servers verwendet wurde, wie folgt dargestellt:

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

Die Vorlage wurde mit den folgenden Änderungen aktualisiert:

  • Das EndpointType wurde geändert inVPC.

  • Die AWS::EC2::VPCEndpoint Ressource wurde entfernt.

  • Die SecurityGroupIdSubnetIds, und VpcId wurden in den EndpointDetails Abschnitt der AWS::Transfer::Server Ressource verschoben,

  • Die VpcEndpointId Eigenschaft von EndpointDetails wurde entfernt.

Die aktualisierte Vorlage sieht wie folgt aus:

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
Um den Endpunkttyp von Transfer Family Family-Servern zu aktualisieren, die bereitgestellt werden mit AWS CloudFormation
  1. Stoppen Sie den Server, den Sie aktualisieren möchten, indem Sie die folgenden Schritte ausführen.

    1. Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/.

    2. Klicken Sie im Navigationsbereich auf Servers (Server).

    3. Aktivieren Sie das Kontrollkästchen des Servers, für den Sie den Endpunkttyp ändern möchten.

      Wichtig

      Sie müssen den Server anhalten, bevor Sie dessen Endpunkttyp ändern können.

    4. Wählen Sie für Actions (Aktionen) die Option Stop (Stopp).

    5. Wählen Sie im daraufhin angezeigten Bestätigungsdialogfeld die Option Stopp aus, um zu bestätigen, dass Sie den Server beenden möchten.

      Anmerkung

      Bevor Sie mit dem nächsten Schritt fortfahren, warten Sie, bis sich der Status des Servers auf Offline ändert. Dies kann einige Minuten dauern. Möglicherweise müssen Sie auf der Seite Server die Option Aktualisieren auswählen, um die Statusänderung zu sehen.

  2. Aktualisieren Sie den CloudFormation Stack

    1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

    2. Wählen Sie den Stack aus, der zur Erstellung des Transfer Family Family-Servers verwendet wurde.

    3. Wählen Sie Aktualisieren.

    4. Wählen Sie Aktuelle Vorlage ersetzen

    5. Laden Sie die neue Vorlage hoch. CloudFormation Mithilfe von Änderungssätzen können Sie verstehen, wie sich Vorlagenänderungen auf laufende Ressourcen auswirken, bevor Sie sie implementieren. In diesem Beispiel wird die Transfer-Serverressource geändert und die VPCEnPoint-Ressource wird entfernt. Der VPC-Endpunktserver erstellt in Ihrem Namen einen VPC-Endpunkt und ersetzt die ursprüngliche VPCEndpoint Ressource.

      Nach dem Hochladen der neuen Vorlage sieht der Änderungssatz etwa wie folgt aus:

      Zeigt die Vorschauseite des Änderungssatzes an, auf der die aktuelle AWS CloudFormation Vorlage ersetzt werden kann.
    6. Aktualisieren Sie den Stack.

  3. Sobald das Stack-Update abgeschlossen ist, navigieren Sie zur Transfer Family Family-Verwaltungskonsole unter https://console.aws.amazon.com/transfer/.

  4. Starten Sie den Server neu. Wählen Sie den Server aus, auf dem Sie aktualisiert haben AWS CloudFormation, und wählen Sie dann im Menü Aktionen die Option Start.

Den Server EndpointType mithilfe der API aktualisieren

Sie können den Befehl describe-server oder den AWS CLI UpdateServer API-Befehl verwenden. Das folgende Beispielskript stoppt den Transfer Family Family-Server, aktualisiert den EndpointType, entfernt den VPC_ENDPOINT und startet den 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])