Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Certificats personnalisés et gestion du DNS Route 53 pour HyperPod Inference
Les étapes suivantes vous montrent comment utiliser vos propres certificats ACM pour les points de terminaison d' HyperPodinférence et configurer éventuellement l'opérateur pour gérer les enregistrements DNS Route 53 pour votre domaine personnalisé.
Avec les certificats personnalisés, vous fournissez un ARN de certificat ACM et l'opérateur l'associe à l'Application Load Balancer (ALB), surveille son état et prend en charge la détection automatique des renouvellements. L'opérateur prend en charge les certificats ACM approuvés par le public, les certificats CA AWS privés et les certificats importés depuis des autorités de certification externes.
Les certificats personnalisés peuvent être utilisés seuls ou combinés à la gestion DNS Route 53. La gestion DNS de Route 53 nécessite un certificat personnalisé et utilise le nom de domaine indiqué dans la configuration de votre certificat pour créer et gérer des enregistrements DNS.
Conditions préalables
Avant de commencer, vérifiez les points suivants :
-
Configurez des fonctionnalités d'inférence sur vos SageMaker HyperPod clusters Amazon. Pour de plus amples informations, veuillez consulter Configuration de vos HyperPod clusters pour le déploiement de modèles.
-
Vous avez installé kubectl
dans votre terminal. -
Vous avez provisionné ou importé un certificat TLS dans ACM dans la même AWS région que votre cluster. HyperPod Le certificat doit être à l'état Émis et doit inclure une chaîne de certificats (autorité de certification intermédiaire et racine). Self-signed les certificats importés vers ACM ne sont pas pris en charge en tant que certificats personnalisés car ils ne comportent pas de chaîne de certificats.
-
(Pour la gestion DNS de Route 53) Création d'une zone hébergée Route 53 pour votre domaine. Les zones publiques hébergées sont recommandées. Les zones hébergées privées fonctionnent pour la création d'enregistrements, mais l'opérateur vérifie la résolution DNS à l'aide du résolveur DNS du pod, qui repose sur le résolveur DNS VPC. Pour les zones hébergées privées, la résolution DNS et les noms d'hôte DNS doivent être activés sur le VPC, et la zone hébergée privée doit être associée au VPC du cluster.
Configuration des autorisations IAM
Le rôle d'exécution de l'opérateur d'inférence nécessite des autorisations supplémentaires pour les certificats personnalisés et la gestion DNS Route 53. Ajoutez les politiques suivantes à votre rôle d'exécution d' HyperPod inférence.
Autorisations ACM et Amazon S3 pour les certificats personnalisés
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ACMCustomCertificateAccess", "Effect": "Allow", "Action": [ "acm:DescribeCertificate", "acm:GetCertificate" ], "Resource": "arn:aws:acm:<region>:<account-id>:certificate/*" }, { "Sid": "S3CertificateUpload", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::<tls-certificate-bucket>/*", "Condition": { "StringEquals": { "s3:RequestObjectTag/CreatedBy": "HyperPodInference" } } } ] }
Note
Si le nom de votre compartiment Amazon S3 commence parhyperpod-tls, les autorisations Amazon S3 sont déjà incluses dans la politique AmazonSageMakerHyperPodInferenceAccess gérée et il vous suffit d'ajouter la déclaration ACM.
Autorisations Route 53 pour la gestion du DNS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Route53DNSManagement", "Effect": "Allow", "Action": [ "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:ChangeResourceRecordSets" ], "Resource": "arn:aws:route53:::hostedzone/<hosted-zone-id>" } ] }
Remplacez <region><account-id>,<tls-certificate-bucket>, et <hosted-zone-id> par vos valeurs réelles. Vous pouvez étendre l'ARN de la ressource ACM à des certificats spécifiques pour renforcer la sécurité.
Configuration d'un certificat personnalisé
Pour utiliser un certificat personnalisé, ajoutez la customCertificateConfig section tlsConfig à votre JumpStartModel spécification InferenceEndpointConfig ou. Les dnsConfig champs tlsConfig et sont identiques dans les deux CRD.
Les champs suivants sont disponibles dans customCertificateConfig et tlsConfig :
tlsConfig.customCertificateConfig.acmArn(Obligatoire, chaîne)-
L'ARN de votre certificat ACM. Doit être dans l'état émis.
tlsConfig.customCertificateConfig.domainName(Obligatoire, chaîne)-
Le nom de domaine à utiliser à partir du certificat.
-
Il doit s'agir d'un domaine spécifique et non d'un joker. Pour les certificats génériques (par exemple,
*.example.com), spécifiez le sous-domaine spécifique (par exemple,api.example.com). -
Doit être en minuscules.
-
Doit correspondre à l'un des noms de domaine répertoriés dans le certificat.
-
tlsConfig.tlsCertificateOutputS3Uri(Conditionnel, chaîne)-
URI Amazon S3 où l'opérateur télécharge le certificat public. Obligatoire sauf si l'opérateur a été installé avec la variable d'
TLS_CERTIFICATE_OUTPUT_S3URIenvironnement configurée. Si vous ne savez pas si cela a été défini, spécifiez-le explicitement.
Voici un exemple de fichier YAML permettant de créer un point de terminaison avec un certificat personnalisé.
apiVersion: inference.sagemaker.aws.amazon.com/v1 kind: InferenceEndpointConfig metadata: name: my-model namespace: my-namespace spec: modelName: my-llm instanceType: ml.g5.24xlarge invocationEndpoint: v1/chat/completions replicas: 2 modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: my-model-bucket region: us-west-2 modelLocation: models/my-llm tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket worker: image: my-inference-image:latest modelInvocationPort: containerPort: 8000 name: http modelVolumeMount: name: model-weights mountPath: /opt/ml/model resources: limits: nvidia.com/gpu: "4" requests: cpu: "6" memory: 30Gi nvidia.com/gpu: "4"
Vous pouvez ajouter des customCertificateConfig éléments à un déploiement déjà en cours d'exécution. L'opérateur détecte la modification lors de la prochaine réconciliation, valide le certificat, le joint à l'ALB et télécharge le certificat public sur Amazon S3. Aucune interruption ni aucun redéploiement ne sont nécessaires.
Important
Si vous supprimez la customCertificateConfig section d'un déploiement en cours, l'opérateur recommence à générer un nouveau certificat auto-signé. Cela remplace votre CA-signed certificat sur l'ALB.
Configuration de la gestion DNS de Route 53
La gestion DNS de Route 53 nécessite la configuration d'un certificat personnalisé et utilise le nom de domaine detlsConfig.customCertificateConfig.domainName. Si vous n'avez pas configuré de certificat personnalisé, consultez Configuration d'un certificat personnalisé d'abord.
Pour activer la gestion DNS de Route 53, ajoutez la dnsConfig section à votre spécification :
spec: tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket dnsConfig: hostedZoneId: Z1234567890ABC
La dnsConfig section peut être ajoutée en même customCertificateConfig temps ou ultérieurement à un déploiement existant. L'opérateur crée les enregistrements DNS lors de la prochaine réconciliation sans redémarrer vos pods.
Lorsque vous effectuez un déploiement avecdnsConfig, l'opérateur :
-
Valide que la zone hébergée existe et que votre domaine appartient à la zone hébergée (par exemple,
api.example.comnécessite une zone hébergée pourexample.com). -
Vérifie la présence d'enregistrements A existants dans le domaine cible afin d'éviter les remplacements accidentels.
-
Crée un enregistrement A (alias) pointant votre domaine vers l'ALB et un enregistrement TXT avec un marqueur de propriété (
hyperpod-inference/owner=<namespace>/<name>) pour éviter les conflits entre les points de terminaison. Ne modifiez ni ne supprimez l'enregistrement TXT manuellement. -
Sonde la résolution DNS toutes les 30 secondes jusqu'à ce que le domaine soit résolu, puis marque le statut comme
Active. Si l'enregistrement n'est pas résolu dans les 10 minutes, le statut passe àError.
Note
La gestion DNS de Route 53 n'est pas bloquante. Les erreurs de création ou de propagation des enregistrements DNS n'empêchent pas votre point de terminaison d'inférence d'atteindre Ready cet état. Le terminal reste accessible via le nom d'hôte par défaut de l'ALB. Consultez la dnsStatus section relative à l'état de la ressource pour détecter d' DNS-specific éventuelles erreurs.
Utiliser un certificat personnalisé sans gestion DNS Route 53
La gestion DNS de Route 53 est facultative. Si vous souhaitez gérer vos propres enregistrements DNS, omettez dnsConfig cette section et configurez votre domaine manuellement.
Pour trouver le nom d'hôte ALB pour votre déploiement, le nom d'entrée dépend de l'activation du routage intelligent.
Sans routage intelligent : l'entrée est nommée alb-<deployment-name> dans votre espace de noms.
kubectl get ingress alb-<deployment-name> -n <namespace> \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Avec routage intelligent : l'entrée est nommée alb-<deployment-name>-<namespace> dans l'espace de hyperpod-inference-system noms.
kubectl get ingress alb-<deployment-name>-<namespace> -n hyperpod-inference-system \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Créez un enregistrement DNS dans votre fournisseur DNS pointant votre domaine vers ce nom d'hôte ALB :
-
Route 53 — Créez un enregistrement A avec Alias activé, pointant vers l'ALB.
-
Autres fournisseurs DNS : créez un enregistrement CNAME pointant votre domaine vers le nom DNS ALB. Les enregistrements CNAME ne peuvent pas être utilisés dans le domaine racine (par exemple,
example.com) ; utilisez un sous-domaine comme.api.example.com
Note
Si l'ALB est recréé (par exemple, après avoir supprimé et redéployé le terminal), le nom d'hôte ALB change. Vous devez mettre à jour votre enregistrement DNS manuellement. La gestion DNS de Route 53 gère cela automatiquement.
Vérification du statut de votre déploiement
Vérifiez l'état du certificat personnalisé
kubectl describe InferenceEndpointConfig my-model -n my-namespace
Recherchez la tlsCertificate section dans le statut :
Status: Tls Certificate: Certificate ARN: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-... Certificate Health: Valid Certificate Domain Names: api.example.com Last Cert Expiry Time: 2027-04-23T00:00:00Z
Valeurs de santé du certificat :
-
Valide — Le certificat date de plus de 60 jours à compter de son expiration.
-
Expiration : le certificat expire dans les 60 jours. Un événement d'avertissement Kubernetes (
CertificateExpiring) est émis. -
Expiré — Le certificat a expiré. Un événement d'avertissement Kubernetes (
CertificateExpired) est émis.
L'opérateur vérifie l'expiration du certificat toutes les 24 heures. Lorsqu'il détecte qu'un certificat a été renouvelé dans ACM (la NotAfter date change), il télécharge automatiquement le certificat public sur Amazon S3 et émet un événement. CertificateRenewed
Vérifiez l'état du DNS
Recherchez la dnsStatus section :
Status: Dns Status: Managed By Operator: true Record Name: api.example.com Hosted Zone Id: Z1234567890ABC Dns Health: Active Message: DNS record resolves successfully
Valeurs de santé du DNS :
-
Actif : l'enregistrement DNS a été résolu avec succès. Votre domaine personnalisé est prêt à être utilisé.
-
En attente — Des enregistrements DNS ont été créés dans Route 53 mais n'ont pas encore été propagés. L'opérateur effectue une nouvelle vérification toutes les 30 secondes.
-
Erreur — La création ou la propagation de l'enregistrement DNS a échoué. Consultez le
Messagechamp pour plus de détails.
Testez le terminal déployé
Si vous avez configuré la gestion DNS de Route 53, appelez votre point de terminaison à l'aide de votre domaine personnalisé une fois que l'état DNS s'afficheActive. Si vous avez configuré uniquement un certificat personnalisé sans gestion DNS, utilisez le nom d'hôte ALB depuis l'entrée (voir). Utiliser un certificat personnalisé sans gestion DNS Route 53
curl -X POST https://api.example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}'
Note
Pour invoquer via le point de terminaison SageMaker AI, endpointName définissez-le dans vos spécifications InferenceEndpointConfig ou sageMakerEndpoint.name dans vos JumpStartModel spécifications. S'il n'endpointNameest pas défini, aucun point de terminaison SageMaker AI n'est créé et seule l'invocation directe d'ALB est disponible.
aws sagemaker-runtime invoke-endpoint \ --endpoint-name my-model \ --content-type "application/json" \ --body '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}' \ --region us-west-2 \ --cli-binary-format raw-in-base64-out \ /dev/stdout
Gérez vos certificats personnalisés et vos enregistrements DNS
Modifier le domaine ou la zone hébergée
Vous pouvez mettre à jour le domainName (incustomCertificateConfig) ou hostedZoneId (indnsConfig) sur un déploiement en cours d'exécution. La modification du nom de domaine déclenche à la fois la revalidation du certificat et le basculement du DNS : le nouveau domaine doit être valide dans votre certificat ACM (sous forme de SAN ou de correspondance générique).
L'opérateur effectue une découpe en toute sécurité :
-
Crée de nouveaux enregistrements DNS dans la nouvelle zone ou pour le nouveau domaine.
-
Vérifie la résolution des nouveaux enregistrements.
-
Supprime les anciens enregistrements DNS uniquement lorsque les nouveaux enregistrements sont confirmés actifs.
Pendant la transition, les anciens et les nouveaux domaines sont transférés à l'ALB. L'enregistrement de propriété TXT a un TTL de 300 secondes (5 minutes). Les clients DNS peuvent donc mettre en cache l'ancien enregistrement pendant 5 minutes au maximum après le nettoyage.
Nettoyage
Lorsque vous supprimez la section InferenceEndpointConfig ou que vous supprimez la dnsConfig section, l'opérateur supprime automatiquement les enregistrements Route 53 A et TXT qu'il a créés. L'opérateur supprime uniquement les enregistrements dont il est propriétaire (vérifié par l'enregistrement TXT de propriété).
Résolution des problèmes
Suivez ces étapes de débogage si votre certificat personnalisé ou votre configuration DNS ne fonctionne pas comme prévu.
-
Le déploiement échoue en raison d'une erreur d'accès à Amazon S3. Vérifiez que le compartiment Amazon S3 spécifié
tlsCertificateOutputS3Uriexiste et qu'il se trouve dans la même région. Vérifiez le rôle d'exécution de l'opérateurs3:PutObjectet sess3:PutObjectTaggingautorisations sur le bucket. L'opérateur valide l'accès en écriture à Amazon S3 en chargeant un objet de test de zéro octet lors du déploiement initial. -
La validation du certificat échoue. Vérifiez que le certificat ACM est dans l'
ISSUEDétat suivant :aws acm describe-certificate --certificate-arn <arn> --region <region>. Vérifiez que le certificatdomainNamecorrespond à un domaine ou à un SAN. Pour les certificats génériques (*.example.com), utilisez un sous-domaine spécifique tel que.api.example.com -
La création d'un enregistrement DNS échoue. Vérifiez que l'ID de zone hébergée est correct et que le rôle d'exécution de l'opérateur dispose des autorisations Route 53. Vérifiez que le domaine appartient à la zone hébergée (par exemple,
api.example.comnécessite une zone hébergée pourexample.com). Si vous constatez un conflit de délégation NS, utilisez plutôt l'ID de zone hébergée de la zone déléguée. Si vous constatez un conflit d'enregistrement, c'est qu'un autre point de terminaison ou un processus externe est propriétaire de l'enregistrement A dans ce domaine. -
L'enregistrement DNS indique En attente pendant une période prolongée. Vérifiez que les enregistrements NS de la zone hébergée sont correctement délégués par le bureau d'enregistrement du domaine parent. L'opérateur utilise le résolveur DNS du pod (généralement CoreDNS), qui peut mettre les résultats en cache. Après 10 minutes sans résolution, le statut passe à
Error. -
Avertissements relatifs à l'expiration des certificats. Renouvelez ou remplacez le certificat dans ACM. Pour les ACM-issued certificats, ACM gère le renouvellement automatiquement. Pour les certificats importés, importez un nouveau certificat. L'opérateur détecte automatiquement le renouvellement et télécharge de nouveau le certificat public sur Amazon S3.