Ich möchte ein Opsworks stack
erstellen, mit einem Autoscaling Group
, so dass die Instanzen dynamisch entsprechend der Gebühr hinzugefügt werden können. Jetzt, für meine Umgebung, gibt es immer eine hohe Auslastung um 00h, 6h, 12h und 18h. Ich suche nach einer Möglichkeit, die Autoscaling zu diesen Stunden zu konfigurieren: zu jeder der vorherigen Stunden, Hinzufügen von 4 Instanzen von der Autoscaling Group
, den Rest der Zeit ist nur eine Instanz online.Konfigurieren der Autoscaling zu bestimmten Zeiten
Ich bin auch nach diesem Document, so dass die Instanz von der Schicht von einem Lambda Function
deregistrieren. Hier
ist das Snippet:
"InstanceRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"opsworks:AssignInstance",
"opsworks:DescribeInstances"
],
"Resource": [ "*" ]
}
]}
}
},
"InstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [{ "Ref": "InstanceRole" }]
}
},
"LaunchConfig": {
"Type" : "AWS::AutoScaling::LaunchConfiguration",
"Properties" : {
"AssociatePublicIpAddress" : true,
"ImageId" : { "Fn::FindInMap": ["AWSRegionToAMI", { "Ref": "AWS::Region" }, "AMIID"] },
"InstanceType" : {"Ref" : "InstanceType"},
"IamInstanceProfile": {"Ref": "InstanceProfile"},
"EbsOptimized" : true,
"SecurityGroups" : [{ "Ref" : "SG" }],
"UserData" : {
"Fn::Base64": {
"Fn::Join" : ["",
["#!/bin/bash",
"sed -i'' -e 's/.*requiretty.*//' /etc/sudoers",
"pip install --upgrade awscli",
"INSTANCE_ID=$(/usr/bin/aws opsworks register --use-instance-profile --infrastructure-class ec2 --region us-east-1 --stack-id ",
{ "Ref": "StackID"}," --override-hostname $(tr -cd 'a-z' < /dev/urandom |head -c8) --local 2>&1 |grep -o 'Instance ID: .*' |cut -d' ' -f3) /usr/bin/aws opsworks wait instance-registered --region us-east-1 --instance-id $INSTANCE_ID
/usr/bin/aws opsworks assign-instance --region us-east-1 --instance-id $INSTANCE_ID --layer-ids ",{ "Ref": "myLayer" }
]]
}
}
}
},
"AutoScalingGroup": {
"Type" : "AWS::AutoScaling::AutoScalingGroup",
"Properties" : {
"VPCZoneIdentifier": { "Ref": "subnetIds" },
"LaunchConfigurationName" : { "Ref" : "LaunchConfig"},
"LoadBalancerNames" : [{"Ref" : "ELB"}],
"MaxSize": { "Ref": "MaxSize" },
"MinSize": 1,
"Tags":
[{
"Key": "Name",
"Value": "opsworks_stack_id",
"PropagateAtLaunch": true
}],
}
},
Wie kann ich diese Art von Autoscaling konfigurieren? Sollte ich Time-based
verwenden? Jeder Vorschlag wird sehr geschätzt.
Haben Sie darüber nachgedacht zu verwenden Autoscaling mit opsworks? http://docs.aws.amazon.com/opensworks/latest/userguide/workinginstances-autoscaling-loadbased.html http://docs.aws.amazon.com/opswords/latest/userguide/workinginstances-autoscaling.html #cwalarms – strongjz
ja aber nicht genug. Ich denke, ich werde beide benutzen; traditionelle Autoscaling- und zeitbasierte Instanzen – Somar