AWS Elastic Container Service – Dienst in mehreren Verfügbarkeitszonen ausführen

AWS Elastic Container Service – Dienst in mehreren Verfügbarkeitszonen ausführen

Ich führe lang laufende Aufgaben über ECS aus. Die Containerinstanzen sind über mehrere Verfügbarkeitszonen verteilt. Ist es möglich, in ECS zu definieren, dass bei mehr als einer Instanz einer Aufgabe jede Aufgabe in einer anderen Verfügbarkeitszone ausgeführt werden soll (falls möglich)? Diese Funktion wäre für hohe Verfügbarkeit und Fehlertoleranz großartig. Im Moment wäre es möglich, dass alle meine 5 Instanzen einer Aufgabe auf derselben Maschine ausgeführt werden. Wenn die Maschine ausfällt, müssten daher alle Aufgaben vom Scheduler an eine andere Stelle verschoben werden, was zu Ausfallzeiten des Dienstes führen würde.

Hoffe, Sie können mir weiterhelfen.

Antwort1

Heute wurde die AZ-bewusste Planung angekündigt, also ist das jetzt gelöst

Amazon-Blogbeitrag

Antwort2

ich habe das gleiche Problem.

Im Moment verwende ich mein eigenes AMI mit Docker und AWSCLI. Ich injiziere das Init-Skript mit ec2_Data. Dieses Skript startet Docker, wendet Crontabs an (für CloudWatch-Metriken und Backups) und initialisiert Alarme.

Ich möchte kein privates Register oder Dockerhub verwenden, ich lade Docker-Images von S3

s3curl --id clouddocker -- -s --retry 5 --retry-delay 30 URL.gz | gunzip|docker load

Antwort3

Mit ecs-cli können Sie Subnetze definieren.

>ecs-cli up --help
NAME:
   up - Create the ECS Cluster (if it does not already exist) and the AWS resources required to set up the cluster.

USAGE:
   command up [command options] [arguments...]

OPTIONS:
   --keypair        Specify the name of an existing Amazon EC2 key pair to enable SSH access to the EC2 instances in your cluster.
   --capability-iam Acknowledge that this command may create IAM resources.
   --size       [Optional] Specify the number of instances to register to the cluster. The default is 1.
   --azs        [Optional] Specify a comma-separated list of 2 VPC availability zones in which to create subnets (these AZs must be in the 'available' status). This option is recommended if you do not specify a VPC ID with the --vpc option. WARNING: Leaving this option blank can result in failure to launch container instances if an unavailable AZ is chosen at random.
   --security-group     [Optional] Specify an existing security group to associate it with container instances. Defaults to creating a new one.
   --cidr       [Optional] Specify a CIDR/IP range for the security group to use for container instances in your cluster. Defaults to 0.0.0.0/0 if --security-group is not specified
   --port       [Optional] Specify a port to open on a new security group that is created for your container instances if an existing security group is not specified with the --security-group option. Defaults to port 80.
   --subnets        [Optional] Specify a comma-separated list of existing VPC Subnet IDs in which to launch your container instances. This option is required if you specify a VPC with the --vpc option.
   --vpc        [Optional] Specify the ID of an existing VPC in which to launch your container instances. If you specify a VPC ID, you must specify a list of existing subnets in that VPC with the --subnets option. If you do not specify a VPC ID, a new VPC is created with two subnets.
   --instance-type  [Optional] Specify the EC2 instance type for your container instances.

verwandte Informationen