Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configura i componenti di controllo del routing
Il nostro primo passo è creare un cluster. Un cluster ARC è un insieme di cinque endpoint, uno su cinque diversi Regioni AWS. L'infrastruttura ARC supporta questi endpoint affinché funzionino in modo coordinato in modo da garantire un'elevata disponibilità e una coerenza sequenziale delle operazioni di failover.
1. Creazione di un cluster
1a. Crea un cluster. network-typeÈ opzionale e può essere o. IPV4 DUALSTACK Il valore predefinito è IPV4.
aws route53-recovery-control-config create-cluster --cluster-name test --network-type DUALSTACK
"Cluster": { "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234", "Name": "test", "Status": "PENDING", "Owner": "123456789123", "NetworkType": "DUALSTACK" }
Quando si crea per la prima volta una risorsa ARC, lo stato è PENDING impostato mentre viene creato il cluster. Puoi controllarne lo stato di avanzamento chiamandodescribe-cluster.
1b. Descrivi un cluster.
aws route53-recovery-control-config --region us-west-2 \ describe-cluster --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
"Cluster": { "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234", "Name": "test", "Status": "DEPLOYED", "Owner": "123456789123", "NetworkType": "DUALSTACK" }
Quando lo stato è DEPLOYED, ARC ha creato con successo il cluster con il set di endpoint con cui interagire. Puoi elencare tutti i tuoi cluster chiamando. list-clusters
1c. Elenca i tuoi cluster.
aws route53-recovery-control-config --region us-west-2 list-clusters
"Cluster": { "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234", "Name": "test", "Status": "DEPLOYED", "Owner": "123456789123", "NetworkType": "DUALSTACK" }
1d. Aggiorna il tipo di rete per i tuoi cluster. Le opzioni sono IPV4 o DUALSTACK.
aws route53-recovery-control-config update-cluster \ --cluster-arn arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234 \ --network-type DUALSTACK
"Cluster": { "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234", "Name": "test", "Status": "PENDING", "Owner": "123456789123", "NetworkType": "DUALSTACK" }
2. Crea un pannello di controllo
Un pannello di controllo è un raggruppamento logico per organizzare i controlli di routing ARC. Quando si crea un cluster, ARC fornisce automaticamente un pannello di controllo per i chiamanti. DefaultControlPanel Puoi usare subito questo pannello di controllo.
Un pannello di controllo può esistere solo in un cluster. Se si desidera spostare un pannello di controllo in un altro cluster, è necessario eliminarlo e quindi crearlo nel secondo cluster. Puoi vedere tutti i pannelli di controllo del tuo account chiamandolist-control-panels. Per visualizzare solo i pannelli di controllo di un cluster specifico, aggiungi il --cluster-arn campo.
2a. Elenca i pannelli di controllo.
aws route53-recovery-control-config --region us-west-2 \ list-control-panels --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/eba23304-1a51-4674-ae32-b4cf06070bdd
{ "ControlPanels": [ { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/1234567dddddd1234567dddddd1234567", "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh", "DefaultControlPanel": true, "Name": "DefaultControlPanel", "RoutingControlCount": 0, "Status": "DEPLOYED" } ] }
Facoltativamente, crea il tuo pannello di controllo create-control-panel chiamando.
2 b. Crea un pannello di controllo.
aws route53-recovery-control-config --region us-west-2 create-control-panel \ --control-panel-name NewControlPanel2 \ --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
{ "ControlPanel": { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh", "DefaultControlPanel": false, "Name": "NewControlPanel2", "RoutingControlCount": 0, "Status": "PENDING" } }
Quando si crea una risorsa ARC per PENDING la prima volta, lo stato in cui è in fase di creazione è impostato. Puoi verificare lo stato di avanzamento chiamandodescribe-control-panel.
2c. Descrivi un pannello di controllo.
aws route53-recovery-control-config --region us-west-2 describe-control-panel \ --control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
{ "ControlPanel": { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh", "DefaultControlPanel": true, "Name": "DefaultControlPanel", "RoutingControlCount": 0, "Status": "DEPLOYED" } }
3. Crea un controllo di routing
Ora che hai configurato il cluster e esaminato i pannelli di controllo, puoi iniziare a creare i controlli di routing. Quando crei un controllo di routing, devi almeno specificare l'Amazon Resource Name (ARN) del cluster in cui desideri inserire il controllo di routing. Puoi anche specificare l'ARN di un pannello di controllo per il controllo del routing. Dovrai inoltre specificare il cluster in cui si trova il pannello di controllo.
Se non specifichi un pannello di controllo, il controllo del routing viene aggiunto al pannello di controllo creato automaticamente,DefaultControlPanel.
Crea un controllo di routing chiamando. create-routing-control
3a. Crea un controllo di routing.
aws route53-recovery-control-config --region us-west-2 create-routing-control \ --routing-control-name NewRc1 \ --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
{ "RoutingControl": { "ControlPanelArn": " arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "Name": "NewRc1", "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567", "Status": "PENDING" } }
I controlli di routing seguono lo stesso schema di creazione delle altre risorse ARC, quindi puoi monitorarne l'avanzamento richiamando un'operazione di descrizione.
3b. Descrivi il controllo del routing.
aws route53-recovery-control-config --region us-west-2 describe-routing-control \ --routing-control-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
{ "RoutingControl": { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "Name": "NewRc1", "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567", "Status": "DEPLOYED" } }
È possibile elencare i controlli di routing in un pannello di controllo chiamando. list-routing-controls L'ARN del pannello di controllo è obbligatorio.
3c. Elenca i controlli di routing.
aws route53-recovery-control-config --region us-west-2 list-routing-controls \ --control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
{ "RoutingControls": [ { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "Name": "Rc1", "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567", "Status": "DEPLOYED" }, { "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456", "Name": "Rc2", "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/hijklmnop987654321", "Status": "DEPLOYED" } ] }
Nel seguente esempio, in cui lavoriamo con gli stati di controllo del routing, assumiamo che abbiate i due controlli di routing elencati in questa sezione (Rc1 e Rc2). In questo esempio, ogni controllo di routing rappresenta una zona di disponibilità in cui è distribuita l'applicazione.
4. Crea regole di sicurezza
Quando utilizzi più controlli di routing contemporaneamente, potresti decidere di adottare alcune misure di protezione quando li abiliti e disabiliti, per evitare conseguenze involontarie, come la disattivazione di entrambi i controlli di routing e l'interruzione di tutto il flusso di traffico. Per creare queste protezioni, è necessario creare regole di sicurezza per il controllo del routing.
Esistono due tipi di regole di sicurezza: regole di asserzione e regole di gating. Per saperne di più sulle regole di sicurezza, vedi. Creazione di regole di sicurezza per il controllo del routing
La chiamata seguente fornisce un esempio di creazione di una regola di asserzione che assicura che almeno uno dei due controlli di routing sia impostato su in un dato On momento. Per creare la regola, si esegue create-safety-rule con il assertion-rule parametro.
Per informazioni dettagliate sul funzionamento dell'API delle regole di asserzione, consulta AssertionRule la Routing Control API Reference Guide for Amazon Application Recovery Controller.
4a. Crea una regola di asserzione.
aws route53-recovery-control-config --region us-west-2 create-safety-rule \ --assertion-rule '{"Name": "TestAssertionRule", "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", "WaitPeriodMs": 5000, "AssertedControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"], "RuleConfig": {"Threshold": 1, "Type": "ATLEAST", "Inverted": false}}'
{ "Rule": { "ASSERTION": { "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/333333444444", "AssertedControls": [ "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"], "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", "Name": "TestAssertionRule", "RuleConfig": { "Inverted": false, "Threshold": 1, "Type": "ATLEAST" }, "Status": "PENDING", "WaitPeriodMs": 5000 } } }
La chiamata seguente fornisce un esempio di creazione di una regola di gating che fornisce uno switch "on/off" o «gating» generale per un set di controlli di routing di destinazione in un pannello di controllo. Ciò consente di impedire l'aggiornamento dei controlli di routing di destinazione in modo che, ad esempio, l'automazione non possa effettuare aggiornamenti non autorizzati. In questo esempio, il gating switch è un controllo di routing specificato dal GatingControls parametro e i due controlli di routing controllati o «gated» sono specificati dal parametro. TargetControls
Nota
Prima di creare la regola di gating, è necessario creare il controllo di gating routing, che non include i record di failover DNS, e i controlli di routing di destinazione, che è possibile configurare con i record di failover DNS.
Per creare la regola, si esegue con il parametro. create-safety-rule gating-rule
Per informazioni dettagliate sul funzionamento dell'API delle regole di asserzione, consulta GatingRule la Routing Control API Reference Guide for Amazon Application Recovery Controller.
4 b. Crea una regola di gating.
aws route53-recovery-control-config --region us-west-2 create-safety-rule \ --gating-rule '{"Name": "TestGatingRule", "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", "WaitPeriodMs": 5000, "GatingControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def"] "TargetControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi", "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn"], "RuleConfig": {"Threshold": 0, "Type": "OR", "Inverted": false}}'
{ "Rule": { "GATING": { "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/444444444444", "GatingControls": [ "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" ], "TargetControls": [ "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi" "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn" ], "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", "Name": "TestGatingRule", "RuleConfig": { "Inverted": false, "Threshold": 0, "Type": "OR" }, "Status": "PENDING", "WaitPeriodMs": 5000 } } }
Come con altre risorse di controllo del routing, è possibile descrivere, elencare o eliminare le regole di sicurezza dopo che si sono propagate al piano dati.
Dopo aver impostato una o più regole di sicurezza, puoi continuare a interagire con il cluster, impostare o recuperare lo stato per i controlli di routing. Se un'set-routing-control-stateoperazione viola una regola che hai creato, riceverai un'eccezione simile alla seguente:
Cannot modify control state for [0123456bbbbbbb0123456bbbbbb01234560123 abcdefg1234567]
due to failed rule evaluation 0123456bbbbbbb0123456bbbbbb0123456333333444444
Il primo identificatore è l'ARN del pannello di controllo concatenato con l'ARN di controllo del routing. Il secondo identificatore è l'ARN del pannello di controllo concatenato con la regola di sicurezza ARN.
5. Create health checks
Per utilizzare i controlli di routing per il failover del traffico, è necessario creare controlli di integrità in Amazon Route 53 e quindi associare i controlli di integrità ai record DNS. Per il failover del traffico, un controllo di routing ARC imposta il controllo di integrità su un esito negativo, in modo che Route 53 reindirizzi il traffico. (Il controllo dello stato non verifica lo stato dell'applicazione; viene semplicemente utilizzato come metodo per reindirizzare il traffico).
Ad esempio, supponiamo di avere due celle (Regioni o Zone di disponibilità). Ne configurate una come cella principale per l'applicazione e l'altra come secondaria su cui eseguire il failover.
Per configurare i controlli di integrità per il failover, puoi fare quanto segue, ad esempio:
Utilizzate l'ARC CLI per creare un controllo di routing per ogni cella.
Utilizzate la CLI Route 53 per creare un controllo dello stato di salute ARC in Route 53 per ogni controllo di routing.
Utilizzate la CLI di Route 53 per creare due record DNS di failover in Route 53 e associare un controllo dello stato a ciascuno di essi.
5a. Crea un controllo di routing per ogni cella.
aws route53-recovery-control-config --region us-west-2 create-routing-control \ --routing-control-name RoutingControlCell1 \ --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
aws route53-recovery-control-config --region us-west-2 create-routing-control \ --routing-control-name RoutingControlCell2 \ --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
5 b. Crea un controllo dello stato di salute per ogni controllo di routing.
Nota
È possibile creare controlli di integrità ARC utilizzando l'interfaccia a riga di comando di Amazon Route 53.
aws route53 create-health-check --caller-reference RoutingControlCell1 \ --health-check-config \ Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
{ "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222", "HealthCheck": { "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "CallerReference": "RoutingControlCell1", "HealthCheckConfig": { "Type": "RECOVERY_CONTROL", "Inverted": false, "Disabled": false, "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567" }, "HealthCheckVersion": 1 } }
aws route53 create-health-check --caller-reference RoutingControlCell2 \ --health-check-config \ Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
{ "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222", "HealthCheck": { "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "CallerReference": "RoutingControlCell2", "HealthCheckConfig": { "Type": "RECOVERY_CONTROL", "Inverted": false, "Disabled": false, "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567" }, "HealthCheckVersion": 1 } }
5c. Crea due record DNS di failover e associa un controllo dello stato a ciascuno di essi.
È possibile creare record DNS di failover in Route 53 utilizzando la CLI di Route 53. Per creare i record, segui le istruzioni contenute nell'Amazon Route 53 AWS CLI Command Reference per il comando change-resource-record-sets. https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html Nei record, specifica il valore DNS per ogni cella insieme al HealthCheckID valore corrispondente creato da Route 53 per il controllo dello stato (vedi 6b).
Per la cella principale:
{ "Name": "myapp.yourdomain.com", "Type": "CNAME", "SetIdentifier": "primary", "Failover": "PRIMARY", "TTL": 0, "ResourceRecords": [ { "Value": "cell1.yourdomain.com" } ], "HealthCheckId": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
Per la cella secondaria:
{ "Name": "myapp.yourdomain.com", "Type": "CNAME", "SetIdentifier": "secondary", "Failover": "SECONDARY", "TTL": 0, "ResourceRecords": [ { "Value": "cell2.yourdomain.com" } ], "HealthCheckId": "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" }
Ora, per eseguire il failover dalla cella principale alla cella secondaria, puoi seguire l'esempio CLI nel passaggio 4b per aggiornare lo stato di RoutingControlCell1 to OFF e RoutingControlCell2 to. ON