Best practices EC2 setup

Back

Questo documento descrive le impostazioni di LBL ADC in ambienti EC2 (Amazon AWS).

Il documento vuole essere un riferimento per utilizzare al meglio le funzionalità di Elastic IP in ambienti geografici in alta affidabilità e per supportare l’auto scaling delle componenti applicative.

Prerequisiti

L’installazione dei moduli LBL ADC in ambiente EC2 è facilitata dall’utilizzo delle immagini Amazon disponibili come template Amazon Machine Images (AMI).

I sistemi da scegliere potranno essere sia di derivazione CentOS sia di derivazione Ubuntu.

In dipendenza delle funzionalità EC2 che si andranno ad utilizzare, le Virtual Appliance LBL ADC dovranno avere abilitazioni adeguate per eseguire con successo le api di management.

In linea generale LBL ADC utilizzerà le seguenti API:

EC2 Elastic IP

ec2-assign-private-ip-addresses

ec2-associate-address

ec2-unassign-private-ip-addresses

EC2 Auto Scaling

ec2 describe-instances

EC2 Schema di installazione

Lo schema dell’installazione è riassunto di seguito e prevede in questa configurazione due LBL ADC con un indirizzo Elastic IP che sarà gestito da LBL ADC. Prima di iniziare l’installazione assicurarsi di avere a disposizione tutti gli elementi e preparare uno schema simile a quello proposto con indirizzi IP e identificatori EC2 per le schede e per le istanze.

LBL ADC installazione e update

– Entrare come utente root nella virtual appliance in Amazon EC2

– Verificare che il sistema abbia accesso a Internet per poter eseguire dei download

– Posizionarsi nella directory radice

# cd /

 

– Creare la directory /share e modificare i permessi

# mkdir /share

# chmod 777 /share

 

– Caricare nella directory /share della virtual appliance i pacchetti prelevati da www.oplon.net:

Lista pacchetti:

-- jdk-8u66-linux-x64.tar.gz

-- jce_policy-8.zip

-- LBLLoadBalancer_aai_009_00y_00x.zip

-- LBLLoadBalancer_datawarehouse_009_00y_00x.zip

-- LBLManagementConsole_aai_009_00y_00x.zip

-- LBLSetup_aai_009_00y_00x.zip

-- LBL_INSTALL_UPDATE_FROM_009001000_TO_00900y00x.sh

 

– Posizionarsi su /share ed eseguire da root (sudo –i):

# sh LBL_INSTALL_UPDATE_FROM_009001000_TO_00900y00x.sh

 

– Il sistema di aggiornamento richiederà di eseguire il backup prima di procedere con l’aggiornamento se esiste una installazione LBL preesistente

– Se presente il file jce_policy-8.zip, il programma di aggiornamento chiederà di confermare l’installazione JCE Unlimited Stength Jurisdiction

ATTENZIONE: Se prima installazione, alla richiesta di aggiornamento del sistema operativo è obbligatorio rispondere con y (sì) per adeguare il sistema operativo messo a disposizione da Amazon

– Una volta terminata l’installazione o l’aggiornamento impostare o verificare l’indirizzo di management e se le login e password amministrative e delegate sono impostate. Se preimpostate si noteranno 3 asterischi *** nei campi password

– Al termine dell’aggiornamento uscire dall’interfaccia grafica (logout) e rientrare per riacquisire il pieno utilizzo dello start dei tools attraverso le icone.

– Assicurarsi che il daemon LBL sia stato inserito nei programmi da eseguire alla partenza. Se non fosse stato inserito nei programmi da far partire allo startup, il programma /etc/init.d/S96LBLVirtualApplianceStarter è già stato impostato dallo shell di installazione e quindi è sufficiente eseguire

# runlevel

N 3

# cd /etc/rc3.d

# ln -s ../init.d/S96LBLVirtualApplianceStarter S96LBLVirtualApplianceStarter

# reboot

 

LBL ADC & EC2 Elastic IP

Per abilitare le funzionalità LBL ADC & EC2 Elastic IP da root andare in lblhome e nella directory legacy bin cambiare la normale operatività network con la gestione EC2 Elastic IP.

# lblhome

# pwd

/TCOProject/bin/LBL/LBL_HOME

# cd legacyBin/Linux/

# cp LBLNetwork.sh LBLNetwork.sh.org

# cp LBLNetworkEC2.sh LBLNetwork.sh

# vi LBLNetwork.sh

 

… ricercare e compilare con i nomi interfacce, network e password tutti i comandi:

-- ec2-assign-private-ip-addresses

-- ec2-associate-address

-- ec2-unassign-private-ip-addresses

 

I comandi è possibile anche provarli da linea di commando per assicurarsi di aver completato correttamente la configurazione.

Per impostare e verificare i comandi sono necessari i valori che sostituiscono le keyword in rosso di seguito elencate con i valori precedentemente ricavati dallo schema

Variabili ambiente da verificare su utente Istanza ami

JAVA_HOME=/usr/lib/jvm/jre; export JAVA_HOME

EC2_AMITOOL_HOME=/opt/aws/amitools/ec2; export EC2_AMITOOL_HOME

EC2_HOME=/opt/aws/apitools/ec2; export EC2_HOME

PATH=$PATH:/opt/aws/bin; export PATH

Region= region EC2

eni-99999999 = inteface id

XX_ADDRESS_XX=Elastic IP

XX_USER_KEY_XX = user key

XX_USER_PASSWORD_XX = user password

ec2-assign-private-ip-addresses --region eu-west-1 -n eni-99999999 --secondary-private-ip-address XX_ADDRESS_XX --allow-reassignment -O XX_USER_KEY_XX -W XX_USER_PASSWORD_XX

ec2-associate-address --region eu-west-1 -n eni-99999999 -a eipalloc-99999999 --private-ip-address XX_ADDRESS_XX -O XX_USER_KEY_XX -W XX_USER_PASSWORD_XX

ec2-unassign-private-ip-addresses --region eu-west-1 --network-interface eni-99999999 --secondary-private-ip-address XX_ADDRESS_XX -O XX_USER_KEY_XX -W XX_USER_PASSWORD_XX

 

LBL ADC Internal Virtual IP e EC2 Elastic IP

Per impostare l’indirizzo IP EC2 Elastic IP è necessario predisporre un indirizzo virtuale interno, non eip ma impostato da LBL ADC, che possa essere raggiunto da tutti i nodi che compongono il cluster, ad esempio l’interfaccia di heart-beat. Bisogna quindi impostare un indirizzo virtuale che in realtà servirà da gestione del gateway EC2 Amazon che invece non avrà un corrispettivo indirizzo locale nelle due virtual appliance.

<virtualAddressesMgr>

<virtualAddress enable="true"

description="virtual address heart-beat"

address="10.999.999.100"

netmask="255.255.255.0"

healthCheckPort="80"

healthCheckSSL="false"

healthCheckUriPath="/LBLHealthCheck">

<virtualInterface device="eth2"
deviceName="eth2"/>

<publicNetworkHealthCheckPolicy>

<publicNetwork address="8.8.8.8"/>

<publicNetwork address="8.8.4.4"/>

</publicNetworkHealthCheckPolicy>

<backendNetworkHealthCheckPolicy>

<backendNetwork address="8.8.8.8"/>

<backendNetwork address="8.8.4.4"/>

</backendNetworkHealthCheckPolicy>

</virtualAddress>

<virtualAddress enable="true"

description="virtual address elastic"

address="192.168.43.114"

netmask="255.255.255.0"

healthCheckPort="80"

healthCheckSSL="false"

healthCheckUriPath="/LBLHealthCheck">

<virtualInterface device=""
deviceName=""/>

<publicNetworkHealthCheckPolicy>

</publicNetworkHealthCheckPolicy>

<backendNetworkHealthCheckPolicy>

</backendNetworkHealthCheckPolicy>

</virtualAddress>

</virtualAddressesMgr>

 

LBL ADC setup endpoints

Come endpoints si dovranno creare tanti endpoint quanti si prevede che saranno gestiti.

La particolarità dei servizi da gestire è che il nome associativo ed il nome host dovranno avere un prefisso, come nell’esempio LBL_SERVER e una numerazione progressiva. Es 0000 00001 etc.

Questi nomi saranno utilizzati dal sistema per associare gli indirizzi di autoscaling che verranno via via generati e distrutti.

Altra particolarità è che tutti gli endpoint dovranno avere come parametro “dhcp” impostato a true per indicare che ci sarà un indirizzo variabile.

LBL ADC setup services check

In services check impostare tanti health check quanti sono i server che si pensa di arrivare a gestire.

La particolarità dei servizi da monitorare è che il nome associativo ed il nome host dovranno avere un prefisso, come nell’esempio LBL_SERVER e una numerazione progressiva. Es 0000 00001 etc.

Questi nomi saranno utilizzati dal sistema per associare gli indirizzi di autoscaling che verranno via via generati e distrutti.

Una volta terminato mettere in esecuzione il modulo con avvio “automatico

LBL ADC setup endpoints scaling

Per abilitare l’autoscaling è necessario predisporre uno shell che esegua la richiesta attraverso le EC2 api che riportano la lista degli indirizzi dei server attualmente disponibili.

Es. /TCOProject/bin/addresslist.sh:

aws ec2 describe-instances --region eu-west-1 --instance-ids $(aws autoscaling describe-auto-scaling-instances --region eu-west-1 --output text --query "AutoScalingInstances[?AutoScalingGroupName=='prd-nginx-asg'].InstanceId") --query "Reservations[*].Instances[*].{IP:PrivateIpAddress}" --output text

 

Rendere eseguibile lo shell:

# chmod 700 /TCOProject/bin/addresslist.sh

 


Una volta terminato il test della shell attraverso l’interfaccia grafica andare in modules endpoints scaling e compilare i seguenti parametri:

OS cmd = TCOProject/bin/addresslist.sh

Prefix = LBL_SERVER

Num. Format = %04d (questo valore darà come risultato dei nomi server LBL_SERVER0000)

 

Una volta terminato mettere in esecuzione il modulo con avvio “automatico

Sei interessato alle nostre soluzioni?