ElastiCache aws configurato con php

Cos’è il caching, come funziona e caching con Amazon AWS ElastiCache

In questo articolo parleremo di ElastiCache aws configurato con php. Ma prima di iniziare vediamo che cosa è il caching e come utilizzarlo.

Cos’è il caching?

Quando parliamo di elaborazione, la cache è un livello di storage dei dati ad alta velocità che memorizza un sottoinsieme di dati, generalmente di natura temporanea, per rispondere più rapidamente alle richieste di un software, nel caso di un sito web, di quanto non sarebbe possibile accedendo ogni volta al percorso principale in cui si trovano i dati come in un database relazionare, un filesystem etc... Il caching permette di riutilizzare in modo efficiente tutti i dati già recuperati o elaborati. Per poter far funzionare in modo più fluido e veloce un sito web scritto in php il software attinge le informazioni attraverso un sistema di cache. Questo non accade completamente in automatico. Bisogna lavorare sulla configurazione del file php.ini che generalemente nei sistemi redhat si trova nella directory /etc/php.ini. In questa mini guida avremo modo di vedere insieme come la cache di PHP è configurata con ElastiCache di Amazon AWS.

Come funziona il caching?

I dati nella cache vengono generalmente archiviati in hardware ad accesso rapido, ad esempio la RAM, e possono essere elaborati con l’ausilio di un componente software. Nel caso specifico vedremo memcached. Lo scopo principale della cache è aumentare le prestazioni di recupero dei dati riducendo la necessità di accedere al livello di storage successivo, più lento.

La cache sacrifica la capacità in favore della velocità, perciò in genere può memorizzare solo un sottoinsieme temporaneo di dati, mentre nei database i dati vengono memorizzati in modo completo e durevole.

A cosa serve memcached?

Caching

Memcached è sicuramente la soluzione ideale per implementare caching in memoria a elevate prestazioni e ridurre la latenza dei dati in accesso, potenziare il throughput e alleggerire il carico dai sistemi di back-end in uso. E’ in grado di servire elementi in cache in meno di un millisecondo e consente di scalare in modo facile e conveniente per carichi superiori. Il software più utilizzato per il  caching dei risultati delle query dei database, caching di sessioni, caching di pagine Web, caching di API e caching di oggetti quali immagini, file e metadata.

Amazon AWS

Store di sessioni

Memcached come datastore in-memory è una soluzione gettonata tra gli sviluppatori di applicazioni per la memorizzazione e gestione dei dati delle sessioni per applicazioni in scala Internet, nei casi in cui la persistenza non è cruciale. Memcached è progettato per fornire una latenza inferiore a un millisecondo e la scala richiesta per la gestione dei dati delle sessioni, quali profili utente, credenziali e stato delle sessioni.

Amazon AWS

Redis o Memcached?

Tra i più popolari datastore abbiamo Redis e Memcached. Il più semplice da configurare e utilizzare è sicuramente Memcached, mentre Redis offre una ricca serie di funzionalità che lo rendono efficace per gli usi più disparati. Sicuramente, prima di decidere quale utilizzare, bisogna avere ben chiare le differenze tra i due motori e quali di questi soddisfa al meglio le nostre esigenze.

Qui puoi vedere le differenze tra i due datastorage Memcached vs Redis.

  Memcached Redis
Sub-millisecond latency Yes Yes
Developer ease of use Yes Yes
Data partitioning Yes Yes
Support for a broad set of programming languages Yes Yes
Advanced data structures Yes
Multithreaded architecture Yes
Snapshots Yes
Replication Yes
Transactions Yes
Pub/Sub Yes
Lua scripting Yes
Geospatial support Yes

ElastiCache aws configurato con php. Come facciamo ad installare ElastiCache in ambiente LAMP su REDHAT?

Prima di tutto facciamo accesso alla nostra istanza EC2 in ssh (con Putty) utilizzando il certificato di amazon ec2.

Ora vediamo insieme come installare elasticache aws configurato con php.

php -v

Verifichiamo la risposta per capire quale versione di PHP è installata sul sever

PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologie

Ora procediamo con il download del software necessario da installare sull’istanza EC2

  • Eseguiamo la login nel sito AWS di Amazon e apriamo la console di ElastiCache ttps://console.aws.amazon.com/elasticache/
  • Dalla console scegli il cluster che hai creato;
  • Dall’elenco Scarica ElastiCache Memcached Cluster Client, selezionare ElastiCache Cluster Client che corrisponde alla tua versione di PHP e all’architettura AMI, quindi selezionare il pulsante Download.

Iniziamo l’installazione di memcached

  • Accediamo all’istanza EC2 su cui vogliamo installare memcached;
  • Installiamo le dipendenze di PHP eseguendo il comando che segue
sudo yum install gcc-c++ php php-pear
  • Terminato l’installazione dei pacchetti di sviluppo fai il download del software php-memcached corretto per il tuo sistema operativo e la versione di PHp installata (vedi sopra). Cliccando qui puoi fare il download;
  • Una vola scaricato il software necessario esegui il seguente comando:

 

sudo pecl install <package download path>

Esempio di installazione attraverso “pecl”:

sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz

Completata l’installazione andremo a creare il file memcached.ini nella directory /etc/php.d inserendo all’interno del file ini la seguente stringa:

“extension=amazon-elasticache-cluster-client.so”

Da utente root o sudoers digitiamo la seguente riga di comando nella finestra shell:

echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini

Una volta completata l’installazione del modulo andremo a configurare php attraverso il file php.ini

sudo vi /etc/php.ini

Modifichiamo il valore “session.save_handler”

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = memcached

e la chiave “session.save_path” come segue

session.save_path = "xxxxx-01.yqi4us.cfg.euw1.cache.amazonaws.com:11211"

Sostituire il valore della chiave “session.save_path” con il nome che è stato assegnato all’istanza elasticache.

ElastiCache aws configurato con php

ElastiCache aws configurato con php

Completata l’installazione e la configurazione facciamo il restart di apache.

sudo /etc/init.d/httpd start

Puoi vedere come installare php-memcached in altri ambienti sul sito ufficiale di Amazon AWS

Questo breve articolo ci ha permesso di capire come funziona elasticache aws configurato con php.

Potrebbero interessarti anche...