Nowość w AWS DataSync — przenoszenie danych między AWS a innymi lokalizacjami publicznymi

22 czerwca 2022

Przenoszenie danych do i z usług AWS Storage można zautomatyzować i przyspieszyć dzięki AWS DataSync.

Na przykład możesz użyć DataSync do migracji danych do AWS, replikacji danych w celu zapewnienia ciągłości biznesowej oraz przenoszenia danych do analizy i przetwarzania w chmurze. Możesz użyć DataSync do przesyłania danych do i z usług AWS Storage, w tym Amazon Simple Storage Service (Amazon S3)Amazon Elastic File System (Amazon EFS) oraz Amazon FSx. DataSync integruje się również z Amazon CloudWatch i AWS CloudTrail w celu rejestrowania, monitorowania i ostrzegania.

Niedawno AWS dodał do DataSync możliwość migracji danych między usługami AWS Storage i Google Cloud Storage lub Microsoft Azure Files. W ten sposób można uprościć zadania związane z przetwarzaniem danych lub konsolidacją pamięci masowej. Jest to także pomocne, jeśli chcesz importować, udostępniać i wymieniać dane z klientami, dostawcami lub partnerami, którzy korzystają z Google Cloud Storage lub Microsoft Azure Files. DataSync zapewnia kompleksowe zabezpieczenia, w tym szyfrowanie i weryfikację integralności, aby zapewnić, że dane dotrą bezpiecznie, nienaruszone i gotowe do użycia.

Zobaczmy, jak działa to w praktyce.

Przygotowywanie DataSync Agent

Po pierwsze, potrzebujemy DataSync Agent do odczytu lub zapisu do magazynu znajdującego się w Google Cloud Storage lub Azure Files. Wdrażamy agenta na instancji Amazon Elastic Compute Cloud (Amazon EC2). Najnowszy identyfikator DataSync Amazon Machine Image (AMI) jest przechowywany w Parameter Store. Używamy interfejsu AWS Command Line Interface (CLI), aby uzyskać wartość parametru /aws/service/datasync/ami:

aws ssm get-parameter --name /aws/service/datasync/ami --region us-east-1

JSON

{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-0e244fe801cf5a510",
        "Version": 54,
        "LastModifiedDate": "2022-05-11T14:08:09.319000+01:00",
        "ARN": "arn:aws:ssm:us-east-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}

Korzystając z konsoli EC2, uruchamiamy instancję EC2 przy użyciu identyfikatora AMI określonego we właściwości Value parametru. Używamy publicznej podsieci i opcji automatycznego przypisywania publicznego adresu IP. Instancja EC2 potrzebuje dostępu sieciowego zarówno do źródła, jak i miejsca docelowego zadania przenoszenia danych. Innym wymaganiem dla instancji jest możliwość odbierania ruchu HTTP z DataSync w celu aktywacji agenta.

W przypadku korzystania z AWS DataSync w wirtualnej chmurze prywatnej (VPC) opartej na usłudze Amazon VPC, najlepszą praktyką jest użycie punktów końcowych VPC do połączenia agenta z usługą DataSync. W konsoli VPC wybieramy Endpoints w okienku nawigacji, a następnie Create endpoint. Wprowadzamy nazwę punktu końcowego i wybieramy kategorię AWS services.

datasync-endpoint

W sekcji Services szukamy DataSync.

datasync endpoint service

Następnie wybieramy ten sam VPC, w którym uruchomiliśmy instancję EC2.

datasync endpoint vpc

Aby zredukować ruch typu cross-AZ, wybieramy tę samą podsieć, która jest używana w instancji EC2.

datasync endpoint subnet

Agent DataSync działający w instancji EC2 wymaga dostępu sieciowego do punktu końcowego VPC. Dla uproszczenia używamy domyślnej grupy bezpieczeństwa VPC dla obu. Tworzymy punkt końcowy VPC i po kilku minutach jest gotowy do użycia.

datasync-endpoint-security-group

W konsoli AWS DataSync wybieramy Agents z panelu nawigacyjnego, a następnie Create agent. Jako Hypervisor wybieramy Amazon EC2.

datasync-agent-hypervisor

Wybieramy VPC endpoints using AWS PrivateLink jako Endpoint type. Następnie wybieramy VPC endpoint, który utworzyliśmy wcześniej, oraz tę samą grupę podsieci (Subnet) i zabezpieczeń (Security group), których użyliśmy dla punktu końcowego VPC.

datasync-agent-endpoint-

Wybieramy opcję Automatically get the activation key i wpisujemy publiczny adres IP instancji EC2. Następnie klikamy Get key.

datasync-agent-activation-key

Po aktywacji agenta DataSync nie potrzebujemy już dostępu HTTP i usuwamy go z grup bezpieczeństwa instancji EC2. Teraz, gdy agent DataSync jest aktywny, możemy skonfigurować zadania i lokalizacje, aby przenieść nasze dane.

Przenoszenie danych z Google Cloud Storage do Amazon S3


Mamy kilka obrazów w buckecie Google Cloud Storage i chcemy zsynchronizować te pliki z bucketem S3. W konsoli Google Cloud otwieramy ustawienia bucketu. Tam tworzymy konto usługi z uprawnieniami Storage Object Viewer i zapisujemy poświadczenia (klucz dostępu i klucz tajny), aby uzyskać dostęp do bucketu programowo.

Wracając do konsoli AWS DataSync, wybieramy Tasks, a następnie Create task.

Aby skonfigurować źródło zadania, tworzymy lokalizację. Jako Object storage wybieramy Location type i wybieramy właśnie utworzonego agenta. Dla Server używam storage.googleapis.com. Następnie wpisujemy nazwę bucketu Google Cloud i folder, w którym przechowywane są nasze obrazy.

datasync-gcp-location

W celu uwierzytelnienia wprowadzamy klucz dostępu i sekret, który pobraliśmy podczas tworzenia konta usługi. Klikamy Next.

datasync-gcp-authentication

Aby skonfigurować miejsce docelowe zadania, tworzymy kolejną lokalizację. Tym razem jako Location Type wybieramy Amazon S3. Następnie wybieramy docelowy bucket S3 i wprowadzamy folder, który będzie używany jako prefiks dla plików przesyłanych do bucketu. Używamy przycisku Autogenerate, aby utworzyć rolę uprawnień IAM, która da DataSync uprawnienia dostępu do bucketu S3.

datasync-s3-location

W kolejnym kroku konfigurujemy ustawienia zadania. Podajemy nazwę zadania. Opcjonalnie możemy dostosować sposób, w jaki DataSync weryfikuje integralność przesyłanych danych lub przydzielać przepustowość dla zadania.

datasync-task-settings-

Możemy też wybrać, jakie dane skanować, a co przesyłać. Domyślnie skanowane są wszystkie dane źródłowe i przesyłane są tylko te, które uległy zmianie. W Additional settings wyłączamy opcję Copy object tags, ponieważ tagi nie są obecnie obsługiwane przez Google Cloud Storage.

datasync-task-settings-data-transfer-

Możemy wybrać harmonogram używany do uruchomienia tego zadania. Na razie zostawiamy Not scheduled i uruchomimy go ręcznie.

datasync-task-settings-schedule

Do logowania używamy przycisku Autogenerate, aby utworzyć grupę logów dla DataSync. Wybieramy Next.

datasync-task-settings-logging

Przeglądamy konfiguracje i tworzymy zadanie. Teraz rozpoczynamy zadanie przenoszenia danych z konsoli. Po kilku minutach pliki są synchronizowane z naszym bucketem S3 i mamy do nich dostęp z konsoli S3.

datasync-s3-synched

Przenoszenie danych z Azure Files do Amazon FSx for Windows File Server

Przykładowo robimy dużo zdjęć i mamy też kilka obrazów w udziale plików platformy Azure. Chcemy zsynchronizować te pliki z systemem plików Amazon FSx for Windows. W konsoli Azure wybieramy udział plików i wybieramy przycisk Connect, aby wygenerować skrypt PowerShell, który sprawdza, czy to konto magazynu jest dostępne przez sieć.

$connectTestResult = Test-NetConnection -ComputerName <SMB_SERVER> -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    # Save the password so the drive will persist on reboot
    cmd.exe /C "cmdkey /add:`"danilopsync.file.core.windows.net`" /user:`"localhost\<USER>`" /pass:`"<PASSWORD>`""
    # Mount the drive
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\danilopsync.file.core.windows.net\<SHARE_NAME>" -Persist
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

Z tego skryptu pobieramy informacje potrzebne do skonfigurowania lokalizacji DataSync:

  • Serwer SMB (SMB Server)
  • Nazwa Udziału (Share Name)
  • Użytkownik (User)
  • Hasło (Password)

Wracając do konsoli AWS DataSync, wybieramy Tasks, a następnie Create task.

Aby skonfigurować źródło zadania, tworzymy lokalizację. Jako Location Type wybieramy Server Message Block (SMB) i utworzonego wcześniej agenta. Następnie używamy informacji, które znaleźliśmy w skrypcie, aby wprowadzić adres SMB Server, nazwę udziału i użytkownika/hasło używane do uwierzytelniania.

datasync-smb-location

Aby skonfigurować miejsce docelowe zadania, ponownie tworzymy lokalizację. Tym razem jako Location type wybieramy Amazon FSx. Wybieramy utworzony wcześniej system plików FSx dla Windows i używamy domyślnej nazwy udziału.

Do łączenia się z systemem plików używamy domyślnej grupy zabezpieczeń. Ponieważ używamy usługi AWS Directory Service for Microsoft Active Directory z FSx dla serwera plików Windows, korzystamy z poświadczeń użytkownika będącego członkiem grup AWS Delegated FSx Administrators i Domain Admins. Aby uzyskać więcej informacji, zobacz Tworzenie lokalizacji dla FSx dla serwera plików systemu Windows w dokumentacji.

datasync-fsx-location

W kolejnym kroku wpisujemy nazwę zadania i pozostawiamy wszystkie pozostałe opcje wartościom domyślnym w taki sam sposób, jak w poprzednim zadaniu.

datasync-task-settings-another

Przeglądamy konfiguracje i tworzymy zadanie. Następnie rozpoczynamy zadanie przenoszenia danych z konsoli. Po kilku minutach pliki są synchronizowane z naszym udziałem systemu plików FSx for Windows. Montujemy udział systemu plików z instancją Windows EC2 i widzimy, że są tam nasze obrazy.

datasync-fsx-synched

Tworząc zadanie możemy ponownie wykorzystać istniejące lokalizacje. Na przykład, jeśli chcemy zsynchronizować pliki z Azure Files z naszym bucketem S3, możemy szybko wybrać dwie odpowiednie lokalizacje, które utworzyliśmy wcześniej.

Dostępność i cennik

Możesz przenieść swoje dane za pomocą konsoli AWS DataSync, interfejsu AWS Command Line Interface (CLI) lub zestawów AWS SDK, aby tworzyć zadania, które przenoszą dane między magazynem AWS a bucketami Google Cloud Storage lub systemami plików Azure Files. W trakcie wykonywania zadań możesz monitorować postęp z konsoli DataSync lub za pomocą CloudWatch.

W związku z w/w ulepszeniami, nie ma żadnych zmian w cenach usługi DataSync. Przenoszenie danych do i z Google Cloud lub Microsoft Azure jest rozliczane według tej samej stawki, co wszystkie inne źródła danych obsługiwane obecnie przez DataSync.

Pamiętaj, że możesz podlegać opłatom za transfer danych przez Google Cloud lub Microsoft Azure. Ponieważ DataSync kompresuje dane w locie podczas kopiowania między agentem a AWS, możesz zmniejszyć opłaty za ruch wychodzący, wdrażając agenta DataSync w środowisku Google Cloud lub Microsoft Azure.

Korzystając z DataSync do przenoszenia danych z AWS do Google Cloud lub Microsoft Azure, płacisz za transfer danych z EC2 do Internetu. Więcej informacji znajdziesz w cenniku Amazon EC2.

Automatyzacja i przyspieszenie sposobu przenoszenia danych dzięki AWS DataSync.

źródło: AWS

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.