Amazon Elastic Container Service sur AWS Outposts - Amazon Elastic Container Service

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.

Amazon Elastic Container Service sur AWS Outposts

AWS Outposts permet AWS des services, une infrastructure et des modèles d'exploitation natifs dans les installations sur site. Dans AWS Outposts les environnements, vous pouvez utiliser les mêmes AWS API, outils et infrastructures que ceux que vous utilisez dans le AWS Cloud.

Amazon ECS on AWS Outposts est idéal pour les charges de travail à faible latence qui doivent être exécutées à proximité de données et d'applications sur site.

Pour plus d'informations AWS Outposts, consultez le guide de AWS Outposts l'utilisateur.

Considérations

Voici les points à prendre en compte lors de l'utilisation d'Amazon ECS sur AWS Outposts :

  • Amazon Elastic Container Registry et Network Load Balancer s'exécutent dans la AWS région, et non sur. AWS Identity and Access Management AWS Outposts Cela a pour effet d'accroître les latences entre ces services et les conteneurs.

  • AWS Fargate n'est pas disponible sur AWS Outposts.

Voici les considérations relatives à la connectivité réseau pour AWS Outposts :

  • Si la connectivité réseau entre votre AWS région AWS Outposts et sa région est perdue, vos clusters continueront à fonctionner. Toutefois, vous ne pouvez pas créer de nouveaux clusters ni effectuer de nouvelles actions sur les clusters existants tant que la connectivité n'a pas été rétablie. En cas de défaillance d'instance, l'instance ne sera pas automatiquement remplacée. L'agent CloudWatch Logs ne sera pas en mesure de mettre à jour les journaux et les données des événements.

  • Nous vous recommandons de fournir une connectivité fiable, à haute disponibilité et à faible latence entre votre AWS région AWS Outposts et la sienne.

Prérequis

Les conditions requises pour utiliser Amazon ECS sont les suivantes : AWS Outposts

  • Vous devez avoir installé et configuré un Outpost dans votre centre de données sur site.

  • Vous devez avoir une connexion réseau fiable entre votre Outpost et sa région AWS .

Créez un cluster sur AWS Outposts

Pour créer un cluster Amazon ECS sur et AWS Outposts avec le AWS CLI, spécifiez un groupe de sécurité et un sous-réseau à associer à votre AWS Outposts.

Pour créer un sous-réseau associé à votre AWS Outposts.

aws ec2 create-subnet \ --cidr-block 10.0.3.0/24 \ --vpc-id vpc-xxxxxxxx \ --outpost-arn arn:aws:outposts:us-west-2:123456789012:outpost/op-xxxxxxxxxxxxxxxx \ --availability-zone-id usw2-az1

L'exemple suivant crée un cluster Amazon ECS sur un AWS Outposts.

  1. Créez un rôle et une politique avec des droits activés AWS Outposts.

    Le fichier role-policy.json est le document de politique qui contient l'effet et les actions des ressources. Pour plus d'informations sur le format de fichier, consultez le manuel PutRolePolicyde référence de l'API IAM

    aws iam create-role –-role-name ecsRole \ --assume-role-policy-document file://ecs-policy.json aws iam put-role-policy --role-name ecsRole --policy-name ecsRolePolicy \ --policy-document file://role-policy.json
  2. Créez un profil d'instance IAM avec des droits sur AWS Outposts.

    aws iam create-instance-profile --instance-profile-name outpost aws iam add-role-to-instance-profile --instance-profile-name outpost \ --role-name ecsRole
  3. Créez un VPC.

    aws ec2 create-vpc --cidr-block 10.0.0.0/16
  4. Créez un groupe de sécurité pour les instances de conteneur, en spécifiant la plage CIDR appropriée pour AWS Outposts. (Cette étape est différente pour AWS Outposts.)

    aws ec2 create-security-group --group-name MyOutpostSG aws ec2 authorize-security-group-ingress --group-name MyOutpostSG --protocol tcp \ --port 22 --cidr 10.0.3.0/24 aws ec2 authorize-security-group-ingress --group-name MyOutpostSG --protocol tcp \ --port 80 --cidr 10.0.3.0/24
  5. Créez le cluster.

  6. Définissez les variables d'environnement de l'agent de conteneur Amazon ECS pour lancer l'instance dans le cluster créé à l'étape précédente et définissez les identifications que vous souhaitez ajouter afin d'identifier le cluster (par exemple Outpost pour indiquer que le cluster est destiné à un Outpost).

    #! /bin/bash cat << ‘EOF’ >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_IMAGE_PULL_BEHAVIOR=prefer-cached ECS_CONTAINER_INSTANCE_TAGS={“environment”: ”Outpost”} EOF
    Note

    Pour éviter les retards causés par l'extraction d'images de conteneur d'Amazon ECR dans la région, utilisez des caches d'images. Pour ce faire, chaque fois qu'une tâche est exécutée, configurez l'agent Amazon ECS pour qu'il utilise par défaut l'image mise en cache sur l'instance elle-même en définissant ECS_IMAGE_PULL_BEHAVIOR sur prefer-cached.

  7. Créez l'instance de conteneur, en spécifiant le VPC et le sous-réseau de l' AWS Outposts sur lequel cette instance doit s'exécuter et un type d'instance disponible sur l' AWS Outposts. (Cette étape est différente pour AWS Outposts.)

    Le fichier userdata.txt contient les données des utilisateurs que l'instance peut utiliser pour effectuer des tâches de configuration automatisées courantes et même exécuter des scripts après le démarrage de l'instance. Pour plus d'informations sur le fichier pour les appels d'API, consultez la section Exécuter des commandes sur votre instance Linux au lancement dans le guide de l'utilisateur Amazon EC2.

    aws ec2 run-instances --count 1 --image-id ami-xxxxxxxx --instance-type c5.large \ --key-name aws-outpost-key –-subnet-id subnet-xxxxxxxxxxxxxxxxx \ --iam-instance-profile Name outpost --security-group-id sg-xxxxxx \ --associate-public-ip-address --user-data file://userdata.txt
    Note

    Cette commande sert également à ajouter des instances supplémentaires au cluster. Tous les conteneurs déployés dans le cluster sont placés sur cet AWS Outposts.

  8. Enregistrez votre définition de tâche. Utilisez la commande suivante et remplacez ecs-task.json par le nom de votre définition de tâche.

    aws ecs register-task-definition --cli-input-json file://ecs-task.json
  9. Exécutez la tâche ou créez le service.

    Run the task
    aws ecs run-task --cluster mycluster --count 1 --task-definition outpost-app:1
    Create the service
    aws ecs create-service –-cluster mycluster --service-name outpost-service \ --task-definition outpost-app:1 --desired-count 1