EC2 setup

Introduzione

Questo documento descrive le impostazioni di Oplon Application Delivery Controller 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 Oplon 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 Oplon ADC dovranno avere abilitazioni adeguate per eseguire con successo le api di management.

In linea generale Oplon 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 Oplon ADC con un indirizzo Elastic IP che sarà gestito da Oplon 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.

image1

Oplon 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 Oplon 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 Oplon 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

It's in -s . /init.d/S96LBLVirtualApplianceStarter S96LBLVirtualApplianceStarter

reboot

Oplon ADC & EC2 Elastic IP

Per abilitare le funzionalità Oplon 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
legacybin/Linux/ cd
cp LBLNetwork.sh LBLNetwork.sh.org
cp LBLNetworkEC2.sh 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

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

Oplon 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 Oplon 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>

Oplon 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.

image2

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

image3

Oplon 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.

image4

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

Oplon 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[a]. "IP:PrivateIpAddress" --output text

Rendere eseguibile lo shell:

chmod 700 /TCOProject/bin/addresslist.sh

image5

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)

image6

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