Esempio: ElastiCache - AWS Elastic Beanstalk

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

Esempio: ElastiCache

I seguenti esempi aggiungono un cluster Amazon ElastiCache alle piattaforme EC2-Classic e a EC2-VPC (Amazon Virtual Private Cloud (Amazon VPC) predefiniti e personalizzati). Per ulteriori informazioni su queste piattaforme e su come stabilire quelle supportate da EC2 per la propria regione e l'account AWS, consultare https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html. Quindi, consulta la sezione di questo argomento che si applica alla tua piattaforma.

Piattaforme EC2-Classic

Questo esempio aggiunge un cluster Amazon ElastiCache a un ambiente con istanze avviate sulla piattaforma EC2-Classic. Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa. Puoi scaricare l'esempio dalla pagina dell'esempio ElastiCache.

Nota

Questo esempio crea delle risorse AWS che potrebbero essere a pagamento. Per ulteriori informazioni sui prezzi AWS consulta https://aws.amazon.com/pricing/. Alcuni servizi rientrano nel piano di utilizzo gratuito AWS. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare https://aws.amazon.com/free/.

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

  1. Crea una directory .ebextensions nella directory di primo livello del bundle di origine.

  2. Crea due file di configurazione con estensione .config, posizionandoli nella directory .ebextensions. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

  3. Distribuzione dell'applicazione in Elastic Beanstalk.

    YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Crea un file di configurazione (ad esempio, elasticache.config) che definisca le risorse. In questo esempio, abbiamo creato il cluster ElastiCache specificando il nome della risorsa cluster ElastiCache (MyElastiCache), dichiarando il tipo, quindi configurando le proprietà per il cluster. L'esempio fa riferimento al nome della risorsa del gruppo di sicurezza ElastiCache che viene creata e definita in questo file di configurazione. Successivamente, creiamo un gruppo di sicurezza ElastiCache. Definiamo il nome di questa risorsa, dichiariamo il tipo e aggiungiamo una descrizione per il gruppo di sicurezza. Infine, abbiamo impostato le regole in ingresso del gruppo di sicurezza ElastiCache per consentire l'accesso solo dalle istanze all'interno del gruppo di sicurezza ElastiCache (MyCacheSecurityGroup) e del gruppo di sicurezza Elastic Beanstalk (AWSEBSecurityGroup). Il nome del parametro, AWSEBSecurityGroup, è un nome di risorsa fisso fornito da Elastic Beanstalk. Devi aggiungere AWSEBSecurityGroup alle regole in ingresso del tuo gruppo di sicurezza ElastiCache per fare in modo che l'applicazione Elastic Beanstalk si connetta alle istanze nel cluster ElastiCache.

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyElastiCache: Type: AWS::ElastiCache::CacheCluster Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : CacheNodeType DefaultValue: cache.m1.small NumCacheNodes: Fn::GetOptionSetting: OptionName : NumCacheNodes DefaultValue: 1 Engine: Fn::GetOptionSetting: OptionName : Engine DefaultValue: memcached CacheSecurityGroupNames: - Ref: MyCacheSecurityGroup MyCacheSecurityGroup: Type: AWS::ElastiCache::SecurityGroup Properties: Description: "Lock cache down to webserver access only" MyCacheSecurityGroupIngress: Type: AWS::ElastiCache::SecurityGroupIngress Properties: CacheSecurityGroupName: Ref: MyCacheSecurityGroup EC2SecurityGroupName: Ref: AWSEBSecurityGroup

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti:

Crea un file di configurazione separato denominato options.config e definisci le impostazioni delle opzioni personalizzate.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.m1.small NumCacheNodes : 1 Engine : memcached

Queste righe dicono a Elastic Beanstalk di ottenere i valori per le proprietà CacheNodeType, NumCacheNodes ed Engine dai valori CacheNodeType, NumCacheNodes ed Engine in un file di configurazione (options.config nel nostro esempio) contenente una sezione option_settings con una sezione aws:elasticbeanstalk:customoption in cui è presente una coppia nome-valore con il valore effettivo da utilizzare. Nell'esempio precedente, questo significa che cache.m1.small, 1 e memcached verrebbero utilizzati per i valori. Per ulteriori informazioni su Fn::GetOptionSetting, consulta Funzioni.

EC2-VPC (predefinito)

Questo esempio aggiunge un cluster Amazon ElastiCache a un ambiente con istanze avviate nella piattaforma EC2-VPC. Nello specifico, le informazioni contenute in questa sezione si applicano a uno scenario in cui EC2 avvia le istanze nel VPC predefinito. Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa. Per ulteriori informazioni sui VPC predefiniti, consulta VPC e sottoreti predefiniti.

Nota

Questo esempio crea delle risorse AWS che potrebbero essere a pagamento. Per ulteriori informazioni sui prezzi AWS consulta https://aws.amazon.com/pricing/. Alcuni servizi rientrano nel piano di utilizzo gratuito AWS. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare https://aws.amazon.com/free/.

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

  1. Crea una directory .ebextensions nella directory di primo livello del bundle di origine.

  2. Crea due file di configurazione con estensione .config, posizionandoli nella directory .ebextensions. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

  3. Distribuzione dell'applicazione in Elastic Beanstalk.

    YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Ora dai un nome al file di configurazione delle risorse elasticache.config. Per creare il cluster ElastiCache, questo esempio specifica il nome della risorsa del cluster ElastiCache (MyElastiCache), dichiara il tipo, quindi configura le proprietà per il cluster. L'esempio fa riferimento all'ID della risorsa del gruppo di sicurezza creata e definita in questo file di configurazione.

Successivamente, creiamo un gruppo di sicurezza EC2. Definiamo il nome per questa risorsa, dichiariamo il tipo, aggiungiamo una descrizione e impostiamo le regole in ingresso per il gruppo di sicurezza per consentire l'accesso solo dalle istanze all'interno del gruppo di sicurezza Elastic Beanstalk (AWSEBSecurityGroup). Il nome del parametro, AWSEBSecurityGroup, è un nome di risorsa fisso fornito da Elastic Beanstalk. È necessario aggiungere AWSEBSecurityGroup alle regole in ingresso del gruppo di sicurezza ElastiCache in modo che l'applicazione Elastic Beanstalk possa connettersi alle istanze nel cluster ElastiCache.

Le regole in ingresso per il gruppo di sicurezza EC2 definiscono inoltre il protocollo IP e i numeri di porta su cui i nodi di cache possono accettare le connessioni. Per Redis, il numero predefinito della porta è 6379.

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyCacheSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Lock cache down to webserver access only" SecurityGroupIngress : - IpProtocol : "tcp" FromPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" ToPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" SourceSecurityGroupName: Ref: "AWSEBSecurityGroup" MyElastiCache: Type: "AWS::ElastiCache::CacheCluster" Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : "CacheNodeType" DefaultValue : "cache.t2.micro" NumCacheNodes: Fn::GetOptionSetting: OptionName : "NumCacheNodes" DefaultValue : "1" Engine: Fn::GetOptionSetting: OptionName : "Engine" DefaultValue : "redis" VpcSecurityGroupIds: - Fn::GetAtt: - MyCacheSecurityGroup - GroupId Outputs: ElastiCache: Description : "ID of ElastiCache Cache Cluster with Redis Engine" Value : Ref : "MyElastiCache"

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti:

Successivamente, dai un nome al file di configurazione delle opzioni options.config e definisci le impostazioni delle opzioni personalizzate.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.t2.micro NumCacheNodes : 1 Engine : redis CachePort : 6379

Queste righe dicono a Elastic Beanstalk di ottenere i valori per le proprietà CacheNodeType, NumCacheNodes, Engine, CachePort, CacheNodeType, NumCacheNodes, Engine e dai valori CachePort in un file config (options.config nel nostro esempio). Questo file include una sezione aws:elasticbeanstalk:customoption (in option_settings) che contiene coppie nome-valore con i valori effettivi da utilizzare. Nell'esempio precedente, cache.t2.micro, 1, redis e 6379 verranno utilizzati per i valori. Per ulteriori informazioni su Fn::GetOptionSetting, consulta Funzioni.

EC2-VPC (personalizzato)

Se crei un VPC personalizzato sulla piattaforma EC2-VPC e lo definisci come il VPC in cui EC2 avvia le istanze, il processo di aggiungere un cluster Amazon ElastiCache al tuo ambiente differisce da quello di un VPC di default. La differenza principale è che devi creare un gruppo di sottoreti per il cluster ElastiCache. Tutte le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ogni tipo di risorsa.

Nota

Questo esempio crea delle risorse AWS che potrebbero essere a pagamento. Per ulteriori informazioni sui prezzi AWS consulta https://aws.amazon.com/pricing/. Alcuni servizi rientrano nel piano di utilizzo gratuito AWS. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare https://aws.amazon.com/free/.

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

  1. Crea una directory .ebextensions nella directory di primo livello del bundle di origine.

  2. Crea due file di configurazione con estensione .config, posizionandoli nella directory .ebextensions. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

  3. Distribuzione dell'applicazione in Elastic Beanstalk.

    YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Ora dai un nome al file di configurazione delle risorse elasticache.config. Per creare il cluster ElastiCache, questo esempio specifica il nome della risorsa del cluster ElastiCache (MyElastiCache), dichiara il tipo, quindi configura le proprietà per il cluster. Le proprietà dell'esempio fanno riferimento al nome del gruppo di sottoreti per il cluster ElastiCache, nonché all'ID della risorsa del gruppo di sicurezza che abbiamo creato e definito in questo file di configurazione.

Successivamente, creiamo un gruppo di sicurezza EC2. Definiamo il nome per questa risorsa, dichiariamo il tipo, aggiungiamo una descrizione, l'ID VPC, e impostiamo le regole in ingresso per il gruppo di sicurezza per consentire l'accesso solo dalle istanze all'interno del gruppo di sicurezza Elastic Beanstalk (AWSEBSecurityGroup). Il nome del parametro, AWSEBSecurityGroup, è un nome di risorsa fisso fornito da Elastic Beanstalk. È necessario aggiungere AWSEBSecurityGroup alle regole in ingresso del gruppo di sicurezza ElastiCache in modo che l'applicazione Elastic Beanstalk possa connettersi alle istanze nel cluster ElastiCache.

Le regole in ingresso per il gruppo di sicurezza EC2 definiscono inoltre il protocollo IP e i numeri di porta su cui i nodi di cache possono accettare le connessioni. Per Redis, il numero predefinito della porta è 6379. Infine, questo esempio crea un gruppo di sottoreti per il cluster ElastiCache. Definiamo il nome di questa risorsa, dichiariamo il tipo e aggiungiamo una descrizione e l'ID della sottorete nel gruppo di sottoreti.

Nota

È consigliabile utilizzare sottoreti private per il cluster ElastiCache. Per ulteriori informazioni su un VPC con una sottorete privata, consulta https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html.

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyElastiCache: Type: "AWS::ElastiCache::CacheCluster" Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : "CacheNodeType" DefaultValue : "cache.t2.micro" NumCacheNodes: Fn::GetOptionSetting: OptionName : "NumCacheNodes" DefaultValue : "1" Engine: Fn::GetOptionSetting: OptionName : "Engine" DefaultValue : "redis" CacheSubnetGroupName: Ref: "MyCacheSubnets" VpcSecurityGroupIds: - Ref: "MyCacheSecurityGroup" MyCacheSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Lock cache down to webserver access only" VpcId: Fn::GetOptionSetting: OptionName : "VpcId" SecurityGroupIngress : - IpProtocol : "tcp" FromPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" ToPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" SourceSecurityGroupId: Ref: "AWSEBSecurityGroup" MyCacheSubnets: Type: "AWS::ElastiCache::SubnetGroup" Properties: Description: "Subnets for ElastiCache" SubnetIds: Fn::GetOptionSetting: OptionName : "CacheSubnets" Outputs: ElastiCache: Description : "ID of ElastiCache Cache Cluster with Redis Engine" Value : Ref : "MyElastiCache"

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti:

Successivamente, dai un nome al file di configurazione delle opzioni options.config e definisci le impostazioni delle opzioni personalizzate.

Nota

In questo esempio, sostituisci i valori di esempio CacheSubnets e VpcId con il tuo VPC e le tue sottoreti.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.t2.micro NumCacheNodes : 1 Engine : redis CachePort : 6379 CacheSubnets: - subnet-1a1a1a1a - subnet-2b2b2b2b - subnet-3c3c3c3c VpcId: vpc-4d4d4d4d

Queste righe dicono a Elastic Beanstalk di ottenere i valori per le proprietà CacheNodeType, NumCacheNodes, Engine, CachePort, CacheSubnets, VpcId, CacheNodeType, NumCacheNodes, Engine, CachePort, CacheSubnets e dai valori VpcId in un file config (options.config nel nostro esempio). Questo file include una sezione aws:elasticbeanstalk:customoption (in option_settings) che contiene coppie nome-valore con valori di esempio. Nell'esempio precedente, cache.t2.micro, 1, redis, 6379, subnet-1a1a1a1a, subnet-2b2b2b2b, subnet-3c3c3c3c e vpc-4d4d4d4d verranno utilizzati per i valori. Per ulteriori informazioni su Fn::GetOptionSetting, consulta Funzioni.