Amazon Elastic Container Service su AWS Outposts - Amazon Elastic Container Service

Amazon Elastic Container Service su AWS Outposts

AWS Outposts abilita servizi AWS nativi, infrastrutture e modelli operativi nelle strutture on-premise. Negli ambienti AWS Outposts puoi utilizzare le stesse API AWS, gli stessi strumenti e la stessa infrastruttura utilizzati nel Cloud AWS.

Amazon ECS su AWS Outposts è ideale per carichi di lavoro a bassa latenza che devono essere eseguiti in prossimità di dati e applicazioni on-premise.

Per ulteriori informazioni su AWS Outposts, consulta la Guida per l'utente diAWS Outposts.

Considerazioni

Di seguito sono riportate le considerazioni sull'utilizzo di Amazon ECS in AWS Outposts:

  • Amazon Elastic Container Registry, AWS Identity and Access Management e Network Load Balancer vengono eseguiti nella regione AWS, non su AWS Outposts. In tal modo si aumenta la latenza tra questi servizi e i container.

  • AWS Fargate non è disponibile su AWS Outposts.

Di seguito sono riportate le considerazioni sulla connettività di rete per AWS Outposts:

  • Se la connettività di rete tra AWS Outposts e la relativa regione AWS viene persa, i cluster continueranno a funzionare. Tuttavia, non potrai creare nuovi cluster o intraprendere nuove azioni nei cluster esistenti fino a quando la connettività non viene ripristinata. In caso di errori di istanza, l'istanza non verrà sostituita automaticamente. L'agente CloudWatch Logs non sarà in grado di aggiornare i log e i dati degli eventi.

  • Ti consigliamo di fornire una connettività affidabile, altamente disponibile e a bassa latenza tra l'AWS Outposts e la relativa regione AWS.

Prerequisiti

Di seguito sono indicati i prerequisiti per l'utilizzo di Amazon ECS in AWS Outposts:

  • Devi aver installato e configurato un Outpost nel data center locale.

  • É necessaria una connessione di rete affidabile tra l'Outpost e la relativa Regione AWS.

Panoramica della creazione di cluster su AWS Outposts

Di seguito è riportata una panoramica della configurazione:

  1. Crea un ruolo e una policy con i diritti per AWS Outposts.

  2. Crea un profilo dell'istanza IAM con diritti per AWS Outposts.

  3. Crea un VPC o usane uno esistente che si trova nella stessa regione del tuo AWS Outposts.

  4. Crea una sottorete o usane una esistente associata all'AWS Outposts.

    Questa è la sottorete in cui vengono eseguite le istanze di container.

  5. Crea un gruppo di sicurezza per le istanze di container nel tuo cluster.

  6. Crea un cluster Amazon ECS.

  7. Definisci le variabili di ambiente dell'agente del container di Amazon ECS per avviare l'istanza nel cluster.

  8. Esegui un container.

Per informazioni dettagliate su come integrare Amazon ECS con AWS Outposts, consulta Estensione di Amazon ECS su due rack AWS Outposts.

Nell'esempio seguente viene creato un cluster Amazon ECS in un AWS Outposts.

  1. Crea un ruolo e una policy con i diritti per AWS Outposts.

    Il file role-policy.json è il documento di policy che contiene l'effetto e le operazioni per le risorse. Per informazioni sul formato del file, consulta PutRolePolicy nella Guida di riferimento dell'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. Crea un profilo dell'istanza IAM con diritti per 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. Crea un VPC.

    aws ec2 create-vpc --cidr-block 10.0.0.0/16
  4. Come creare una sottorete associata all'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
  5. Crea un gruppo di sicurezza per le istanze del container, specificando l'intervallo CIDR corretto per l'AWS Outposts. (Questo passaggio è diverso per 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
  6. Creare il cluster.

  7. Definisci le variabili di ambiente dell'agente del container di Amazon ECS per avviare l'istanza nel cluster creato nella fase precedente e definisci i tag che desideri aggiungere per aiutare a identificare il cluster (ad esempio, Outpost per indicare che il cluster è per 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
    Nota

    Per evitare ritardi causati dal pull delle immagini del container da Amazon ECR nella regione, utilizza le cache delle immagini. A tale scopo, ogni volta che viene eseguita un'attività, configura l'agente Amazon ECS sui valori di default per utilizzare l'immagine memorizzata nella cache nell'istanza stessa impostando ECS_IMAGE_PULL_BEHAVIOR su prefer-cached.

  8. Crea l'istanza di container, specificando il VPC e la sottorete per l'AWS Outposts in cui deve essere eseguita questa istanza e un tipo di istanza disponibile nell'AWS Outposts. (Questo passaggio è diverso per AWS Outposts.)

    Il file userdata.txt contiene i dati utente che l'istanza può utilizzare per eseguire i comuni processi di configurazione automatizzati e anche per eseguire script all'avvio dell'istanza. Per informazioni sul file per le chiamate API consulta Esecuzione di comandi sull'istanza Linux all'avvio nella Guida per l'utente di 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
    Nota

    Questo comando viene utilizzato anche quando si aggiungono istanze al cluster. Tutti i container distribuiti nel cluster vengono posizionati nell'AWS Outposts specifico.