paint-brush
Tout ce que vous devez savoir pour rapatrier d'AWS S3 vers MinIOpar@minio
8,892 lectures
8,892 lectures

Tout ce que vous devez savoir pour rapatrier d'AWS S3 vers MinIO

par MinIO12m2024/03/22
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

Examinons un peu plus en profondeur les coûts et les économies associés au rapatriement pour vous permettre de réaliser plus facilement votre propre analyse.

People Mentioned

Mention Thumbnail
featured image - Tout ce que vous devez savoir pour rapatrier d'AWS S3 vers MinIO
MinIO HackerNoon profile picture


La réponse à notre post précédent, Comment rapatrier d'AWS S3 vers MinIO , c'était extraordinaire : nous avons reçu des dizaines d'appels d'entreprises nous demandant des conseils en matière de rapatriement. Nous avons regroupé ces réponses dans ce nouvel article, où nous approfondissons un peu plus les coûts et les économies associés au rapatriement afin de vous permettre de réaliser plus facilement votre propre analyse. La migration des données est une tâche ardue pour beaucoup. En pratique, ils ciblent les nouvelles données à venir sur MinIO et prennent leur temps pour migrer les anciennes données du cloud ou les laissent en place et ne se développent pas.

Aperçu du rapatriement

Pour rapatrier des données depuis AWS S3, vous suivrez ces directives générales :


  1. Examinez les exigences en matière de données : déterminez les compartiments et les objets spécifiques qui doivent être rapatriés depuis AWS S3. Assurez-vous de bien comprendre les besoins de votre entreprise et les exigences de conformité, compartiment par compartiment.


  2. Identifiez la destination de rapatriement : vous avez déjà décidé de rapatrier vers MinIO. Vous pouvez désormais choisir d'exécuter MinIO dans un centre de données sur site ou chez un autre fournisseur de cloud ou installation de colocation. À l’aide des exigences du point 1, vous sélectionnerez le matériel ou les instances pour les besoins prévus en matière de stockage, de transfert et de disponibilité.


  3. Transfert de données : planifiez et exécutez le transfert de données d'AWS S3 vers MinIO. Utilisez simplement la réplication par lots intégrée de MinIO ou le miroir à l'aide du client MinIO (voir Comment rapatrier d'AWS S3 vers MinIO pour plus de détails). Il existe plusieurs méthodes supplémentaires que vous pouvez utiliser pour le transfert de données, telles que l'utilisation d'AWS DataSync, AWS Snowball ou Migration de données TD SYNNEX , ou directement à l'aide des API AWS.


  4. Accès aux données et autorisations : assurez-vous que les contrôles d'accès et les autorisations appropriés sont configurés pour les données rapatriées par compartiment. Cela inclut les politiques IAM et de compartiment pour gérer l'accès des utilisateurs, l'authentification et l'autorisation afin de garantir la sécurité des données.


  5. Verrouillages d'objets : il est essentiel de préserver les politiques de conservation des verrous d'objets et de conservation légale après la migration. Le magasin d'objets cible doit interpréter les règles de la même manière qu'Amazon S3. Si vous n'êtes pas sûr, demandez le Évaluation de la conformité de Cohasset Associates sur l'implémentation du magasin d'objets cible.


  6. Gestion du cycle de vie des données : Définir et mettre en œuvre une stratégie de gestion du cycle de vie des données rapatriées. Cela inclut la définition de politiques de conservation, de procédures de sauvegarde et de récupération, ainsi que de pratiques d'archivage de données par compartiment.


  7. Validation des données : validez les données transférées pour garantir leur intégrité et leur exhaustivité. Effectuez les vérifications et les tests nécessaires pour garantir que les données ont été transférées avec succès sans aucune corruption ni perte. Après le transfert, le nom de l'objet, l'ETag et les métadonnées, la somme de contrôle et le nombre d'objets correspondent tous entre la source et la destination.


  8. Mettre à jour les applications et les flux de travail : la bonne nouvelle est que si vous suivez les principes cloud natifs pour créer vos applications, tout ce que vous aurez à faire est de les reconfigurer pour le nouveau point de terminaison MinIO. Toutefois, si vos applications et flux de travail ont été conçus pour fonctionner avec l'écosystème AWS, effectuez les mises à jour nécessaires pour prendre en charge les données rapatriées. Cela peut impliquer la mise à jour des configurations, la reconfiguration des intégrations ou, dans certains cas, la modification du code.


  9. Surveiller et optimiser : surveillez et optimisez en permanence l'environnement de données rapatriées pour garantir des performances optimales, une rentabilité et le respect des meilleures pratiques de gestion des données.

Étapes de rapatriement

De nombreux facteurs doivent être pris en compte lors de la budgétisation et de la planification du rapatriement vers le cloud. Heureusement, nos ingénieurs l'ont fait avec de nombreux clients et nous avons développé un plan détaillé pour vous. Nous avons des clients qui ont tout rapatrié, depuis une poignée de charges de travail jusqu'à des centaines de pétaoctets.


La plus grande tâche de planification consiste à réfléchir aux choix concernant la mise en réseau, la bande passante louée, le matériel serveur, les coûts d'archivage des données non sélectionnées pour être rapatriées et le coût humain de la gestion et de la maintenance de votre propre infrastructure cloud. Estimez ces coûts et planifiez-les. Les coûts de rapatriement du cloud incluront les frais de sortie de données pour déplacer les données du cloud vers le centre de données. Ces frais sont intentionnellement suffisamment élevés pour imposer le verrouillage du cloud. Prenez note de ces frais de sortie élevés : ils justifient l’argument économique en faveur de l’abandon du cloud public car, à mesure que la quantité de données que vous gérez augmente, les frais de sortie augmentent. Par conséquent, si vous envisagez de rapatrier, il vaut la peine d’agir le plus tôt possible.


Nous allons nous concentrer sur les données et métadonnées qui doivent être déplacées – cela représente quatre-vingts pour cent du travail nécessaire pour rapatrier. Les métadonnées incluent les propriétés et les politiques du compartiment (gestion des accès basée sur la clé d'accès/secrète, gestion du cycle de vie, chiffrement, accès public anonyme, verrouillage des objets et gestion des versions).


Concentrons-nous sur les données (objets) pour l'instant. Pour chaque espace de noms que vous souhaitez migrer, faites l'inventaire des buckets et des objets que vous souhaitez déplacer. Il est probable que votre équipe DevOps sache déjà quels compartiments contiennent des données actuelles importantes. Vous pouvez aussi utiliser Inventaire Amazon S3 . À un niveau élevé, cela ressemblera à quelque chose comme :


Espace de noms

Nombre total de compartiments

Nombre total d'objets

Taille totale de l'objet (Go)

Téléchargement total quotidien (To)

Téléchargement total quotidien (To)

ns-001

166

47 751 258

980 014,48

50.04

14h80

ns-002

44

24 320 810

615 033,35

23.84

675.81

ns-002

648

88 207 041

601 298,91

328,25

620,93

ns-001

240

68 394 231

128 042,16

62.48

12h45


L'étape suivante consiste à répertorier, par espace de noms, chaque bucket et ses propriétés pour chaque bucket que vous allez migrer. Notez la ou les applications qui stockent et lisent les données dans ce compartiment. En fonction de l'utilisation, classez chaque compartiment en données de niveau chaud, chaud ou froid.


Dans une version abrégée, cela ressemblera à quelque chose comme


Nom du compartiment

Propriétés

Applications)

Niveau chaud/chaud/froid

UN

Copiez et collez JSON ici

Étincelle, Iceberg, Dremio

Chaud

B

Copiez et collez JSON ici

Élastique

Chaud

C

Copiez et collez JSON ici

Élastique (instantanés)

Froid


À ce stade, vous avez quelques décisions à prendre concernant la gestion du cycle de vie des données et portez-y une attention particulière, car voici un excellent moyen d'économiser de l'argent sur les frais AWS. Classez les objets de chaque compartiment comme chauds, tièdes ou froids en fonction de la fréquence à laquelle ils sont consultés. Un excellent moyen d'économiser de l'argent consiste à migrer les compartiments de niveau froid directement vers S3 Glacier : il n'y a aucune raison d'encourir des frais de sortie pour télécharger, juste pour télécharger à nouveau.


En fonction de la quantité de données que vous rapatriez, vous disposez de plusieurs options pour choisir la manière de migrer. Nous vous recommandons de charger et d'utiliser de nouvelles données sur le nouveau cluster MinIO tout en copiant les données chaudes et tièdes vers le nouveau cluster au fil du temps. Le temps et la bande passante nécessaires pour copier des objets dépendront bien entendu du nombre et de la taille des objets que vous copiez.


C'est ici qu'il sera très utile de calculer le total des données que vous allez rapatrier depuis AWS S3. Regardez votre inventaire et faites le total de la taille de tous les seaux classés comme chauds et tièdes.


Total de données de niveau chaud et chaud = 1 534 096,7 Go

Bande passante disponible = 10 Gbit/s

Temps de transfert minimum requis (taille totale de l'objet / bande passante disponible) = 14,2 jours


Calculez les frais de sortie de données en fonction du total ci-dessus. j'utilise Liste des prix , mais votre organisation peut bénéficier d'une remise d'AWS. J'utilise également 10 Gbit/s comme bande passante de connexion, mais vous en avez peut-être plus ou moins à votre disposition. Enfin, je pars de l'hypothèse qu'un tiers des données S3 sera simplement transféré vers S3 Glacier Deep Archive.


Total des données hiérarchisées vers S3 Glacier = 767 048,337 Go

Frais de transfert S3 vers S3 Glacier (0,05 $/1 000 objets) = 3 773,11 $

Frais de stockage mensuels S3 Glacier Deep Archive = 760 $


N'oubliez pas de prévoir un budget pour l'utilisation future de S3 Glacier Deep Archive.


Total des données à transférer = 1 534 096,7 Go

10 premiers To à 0,09 $/Go = 900 $

40 To suivants à 0,085 $/Go = 3 400 $

100 To suivants à 0,07 $/Go = 70 000 $

Supplémentaire de plus de 150 To à 0,05 $/Go = 69 205 $

Frais de sortie totaux = 143 504 $


Par souci de simplicité, le calcul ci-dessus n'inclut ni les frais d'opérations par objet (0,40 $/1 million) ni le coût de LISTing (5 $/1 million). Pour les très grands projets de rapatriement, nous pouvons également compresser les objets avant de les envoyer sur le réseau, vous permettant ainsi d'économiser une partie des frais de sortie.


Une autre option consiste à utiliser AWS Snowball pour transférer des objets. Les appareils Snowball font chacun 80 To, nous savons donc d’emblée que nous en avons besoin de 20 pour notre effort de rapatriement. Les frais par appareil comprennent 10 jours d'utilisation, plus 2 jours d'expédition. Des jours supplémentaires sont disponibles pour 30 $/appareil.


Frais de service pour 20 appareils Snowball (300 $ chacun) = 6 000 $

Expédition R/T (3 à 5 jours à 400 $/appareil) = 8 000 $

Sortie de données S3 (0,02 $/Go) = 30 682 $

Frais boule de neige totaux = 38 981,93 $


AWS vous facturera des tarifs standard de demande, de stockage et de transfert de données pour lire et écrire sur les services AWS, notamment Amazone S3 et Service de gestion de clés AWS (KMS) . Il y a d'autres considérations à prendre en compte lorsque l'on travaille avec Classes de stockage Amazon S3 . Pour les tâches d'exportation S3, les données transférées vers votre appareil Snow Family depuis S3 sont facturées aux frais S3 standard pour des opérations telles que LIST, GET et autres. Des tarifs standard vous sont également facturés pour Amazon CloudWatch Logs, Amazon CloudWatch Metrics et Amazon CloudWatch Events.


Nous savons désormais combien de temps il faudra pour migrer cette énorme quantité de données, ainsi que son coût. Prenez une décision commerciale quant à la méthode qui répond à vos besoins en fonction de la combinaison du calendrier et des frais.


À ce stade, nous connaissons également les exigences relatives au matériel nécessaire pour exécuter MinIO sur site ou dans une installation de colocation. Prenez l'exigence ci-dessus pour 1,5 Po de stockage, estimez la croissance des données et consultez notre Matériel et configuration recommandés page et Sélection du meilleur matériel pour votre déploiement MinIO .


La première étape consiste à recréer vos buckets S3 dans MinIO. Vous devrez le faire quelle que soit la manière dont vous choisissez de migrer les objets. Bien que S3 et MinIO stockent les objets à l'aide du chiffrement côté serveur, vous n'avez pas à vous soucier de la migration des clés de chiffrement. Vous pouvez vous connecter au KMS de votre choix en utilisant MinIO KES pour gérer les clés de chiffrement . De cette façon, de nouvelles clés seront automatiquement générées pour vous au fur et à mesure que les locataires et les compartiments chiffrés sont créés dans MinIO.


Vous disposez de plusieurs options pour copier des objets : Réplication par lots et mc mirror . Mon précédent article de blog, Comment rapatrier d'AWS S3 vers MinIO inclus des instructions détaillées pour les deux méthodes. Vous pouvez copier des objets directement de S3 vers MinIO sur site, ou utiliser un cluster MinIO temporaire exécuté sur EC2 pour interroger S3, puis mettre en miroir vers MinIO sur site.


En règle générale, les clients utilisent les outils que nous avons écrits en combinaison avec le matériel et les services de migration de données AWS Snowball ou TD SYNNEX pour déplacer de plus grandes quantités de données (plus de 1 Po).


MinIO s'est récemment associé à Western Digital et TD SYNNEX pour proposer une alternative Snowball. Les clients peuvent programmer des fenêtres pour prendre livraison du matériel Western Digital et payer ce dont ils ont besoin pendant la période de location. Plus important encore, le service n'est pas lié à un cloud spécifique, ce qui signifie que l'entreprise peut utiliser le service pour déplacer des données vers, depuis et entre les cloud, le tout en utilisant le protocole omniprésent S3. Des détails supplémentaires sur le service peuvent être trouvés sur le Service de migration de données sur le site TD SYNNEX.


Les métadonnées du compartiment, y compris les politiques et les propriétés du compartiment, peuvent être lues à l'aide get-bucket Appels d'API S3 puis configuré dans MinIO. Lorsque vous vous inscrivez à MinIO SUBNET, nos ingénieurs travailleront avec vous pour migrer ces paramètres depuis AWS S3 : gestion des accès basée sur la clé d'accès/clé secrète, les politiques de gestion du cycle de vie, le chiffrement, l'accès public anonyme, l'immuabilité et la gestion des versions. Une remarque concernant la gestion des versions : l'ID de version AWS n'est généralement pas conservé lorsque les données sont migrées, car chaque ID de version est un UUID interne. Cela ne pose généralement pas de problème pour les clients, car les objets sont généralement appelés par leur nom. Cependant, si l'ID de version AWS est requis, nous disposons d'une extension qui le conservera dans MinIO et nous vous aiderons à l'activer.


Portez une attention particulière à IAM et stratégies de compartiment . S3 ne sera pas la seule partie de l'infrastructure d'AWS que vous laisserez derrière vous. Vous disposerez de nombreux comptes de service que les applications pourront utiliser lors de l'accès aux compartiments S3. Ce serait le bon moment pour répertorier et auditer tous vos comptes de service. Vous pourrez ensuite décider de les recréer ou non dans votre fournisseur d’identité. Si vous choisissez d'automatiser, utilisez Amazon Cognito pour partager des informations IAM avec des IDP OpenID Connect externes et AD/LDAP.


Portez une attention particulière à la gestion du cycle de vie des données, comme la conservation des objets, le verrouillage des objets et l'archivage/la hiérarchisation. Exécutez une get-bucket-lifecycle-configuration sur chaque compartiment pour obtenir une liste JSON lisible par l'homme des règles de cycle de vie. Vous pouvez facilement recréer les paramètres AWS S3 à l'aide de la console MinIO ou du client MinIO (mc). Utilisez des commandes telles que get-object-legal-hold et get-object-lock-configuration pour identifier les objets qui nécessitent un traitement spécial en matière de sécurité et de gouvernance.


Puisque nous parlons du cycle de vie, parlons un instant de la sauvegarde et de la reprise après sinistre. Souhaitez-vous qu'un cluster MinIO supplémentaire soit répliqué pour la sauvegarde et la reprise après sinistre ?


Une fois les objets copiés d'AWS S3 vers MinIO, il est important de valider l'intégrité des données. Le moyen le plus simple de procéder consiste à utiliser le client MinIO pour exécuter mc diff sur les anciens compartiments de S3 et les nouveaux compartiments sur MinIO. Cela calculera la différence entre les compartiments et renverra une liste des seuls objets manquants ou différents. Cette commande prend les arguments des buckets source et cible. Pour votre commodité, vous souhaiterez peut-être créer pseudonymes pour S3 et MinIO afin que vous n'ayez pas à continuer à saisir des adresses complètes et des informations d'identification. Par exemple:


 mc diff s3/bucket1 minio/bucket1


La bonne nouvelle est que tout ce que vous avez à faire est de pointer les applications existantes vers le nouveau point de terminaison MinIO. Les configurations peuvent être réécrites application par application sur une période donnée. La migration des données dans le stockage d'objets est moins perturbante qu'un système de fichiers, il suffit de modifier l'URL pour lire/écrire à partir d'un nouveau cluster. Notez que si vous comptiez auparavant sur les services AWS pour prendre en charge vos applications, celles-ci ne seront pas présentes dans votre centre de données, vous devrez donc les remplacer par leur équivalent open source et réécrire du code. Par exemple, Athena peut être remplacé par Spark SQL, Apache Hive et Presto, Kinesis par Apache Kafka et AWS Glue par Apache Airflow.


Si votre migration S3 fait partie d'un effort plus vaste visant à déplacer une application entière sur site, il est probable que vous ayez utilisé Notifications d'événements S3 pour appeler les services en aval lorsque de nouvelles données arrivent. Si tel est le cas, n'ayez crainte - MinIO prend en charge notification d'événement aussi. La migration la plus simple consisterait ici à implémenter un webhook personnalisé pour recevoir la notification. Cependant, si vous avez besoin d'une destination plus durable et plus résiliente, utilisez des services de messagerie tels que Kafka ou RabbitMQ. Nous prenons également en charge l'envoi d'événements vers des bases de données telles que PostgreSQL et MySQL.


Maintenant que vous avez terminé le rapatriement, il est temps de vous concentrer sur l’exploitation, la surveillance et l’optimisation du stockage. La bonne nouvelle est qu'aucune optimisation n'est nécessaire pour MinIO : nous avons intégré l'optimisation directement dans le logiciel afin que vous sachiez que vous obtenez les meilleures performances pour votre matériel. Vous souhaiterez commencer à surveiller votre nouveau cluster MinIO pour évaluer l'utilisation des ressources et les performances sur une base continue. MinIO expose métrique via un point de terminaison Prometheus que vous pouvez consommer dans votre plateforme de surveillance et d'alerte de choix . Pour en savoir plus sur la surveillance, veuillez consulter Surveillance et alertes multi-cloud avec Prometheus et Grafana et Métriques avec MinIO utilisant OpenTelemetry, Flask et Prometheus .


Avec SOUS-RÉSEAU , nous vous soutenons lorsqu'il s'agit de Opérations du jour 2 avec MinIO. Les abonnés ont accès à des outils de dépannage automatisés intégrés pour assurer le bon fonctionnement de leurs clusters. Ils bénéficient également d’une assistance illimitée, directe aux ingénieurs, en temps réel via notre portail d’assistance. Nous vous aidons également à pérenniser votre investissement en stockage objet grâce à un examen annuel de l’architecture.

Migrer et enregistrer

Ce n’est loin d’être un secret que l’époque où il fallait écrire des chèques en blanc aux fournisseurs de cloud est révolue. De nombreuses entreprises évaluent actuellement leurs dépenses cloud pour trouver des économies potentielles. Vous disposez désormais de tout ce dont vous avez besoin pour démarrer votre migration d'AWS S3 vers MinIO, y compris des étapes techniques concrètes et un cadre financier.


Si vous êtes enthousiasmé par la perspective de réaliser des économies sur les coûts de rapatriement, veuillez nous contacter à [email protected] .


Apparaît également ici .