

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplo: ElastiCache
<a name="customize-environment-resources-elasticache"></a>

Los siguientes ejemplos agregan un ElastiCache clúster de Amazon a las plataformas EC2-Classic y EC2-VPC (Amazon Virtual [Private Cloud (Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/) VPC) predeterminada y personalizada). Para obtener más información sobre estas plataformas y sobre cómo puede determinar cuáles admite EC2 para su región y su cuenta, consulte. AWS [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html) A continuación, consulte la sección de este tema que sea aplicable a su plataforma.
+ [Plataformas EC2-Classic](#customize-environment-resources-elasticache-classic)
+ [EC2-VPC (predeterminada)](#customize-environment-resources-elasticache-defaultvpc)
+ [EC2-VPC (personalizada)](#customize-environment-resources-elasticache-targetedvpc)

## Plataformas EC2-Classic
<a name="customize-environment-resources-elasticache-classic"></a>

En este ejemplo, se añade un ElastiCache clúster de Amazon a un entorno con instancias lanzadas en la plataforma EC2-Classic. Todas las propiedades que se muestran en este ejemplo son las propiedades mínimas necesarias que deben establecerse en cada tipo de recurso. [Puede descargar el ejemplo en ElastiCache example.](https://elasticbeanstalk.s3.amazonaws.com/extensions/ElastiCache.config) 

**nota**  
En este ejemplo se crean AWS recursos, por los que es posible que se te cobre. Para obtener más información sobre AWS los precios, consulte[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Algunos servicios forman parte de la capa de uso AWS gratuito. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Para usar este ejemplo, haga lo siguiente:

1. Cree un directorio `[.ebextensions](ebextensions.md)` en el directorio de nivel superior del paquete de código fuente. 

1. Cree dos archivos de configuración con la extensión `.config` y colóquelos en el directorio `.ebextensions`. En un archivo de configuración se definen los recursos y en el otro, las opciones.

1. Implemente su aplicación en Elastic Beanstalk.

   YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.

Cree un archivo de configuración (por ejemplo, `elasticache.config`) que defina los recursos. En este ejemplo, creamos el ElastiCache clúster especificando el nombre del recurso del ElastiCache clúster (`MyElastiCache`), declarando su tipo y, a continuación, configurando las propiedades del clúster. El ejemplo hace referencia al nombre del recurso del grupo de ElastiCache seguridad que se crea y define en este archivo de configuración. A continuación, creamos un grupo ElastiCache de seguridad. Definiremos el nombre de este recurso, declararemos su tipo y agregaremos una descripción del grupo de seguridad. Por último, configuramos las reglas de entrada del grupo de ElastiCache seguridad para permitir el acceso solo desde instancias del grupo de ElastiCache seguridad (`MyCacheSecurityGroup`) y del grupo de seguridad de Elastic Beanstalk (). `AWSEBSecurityGroup` El nombre del parámetro, `AWSEBSecurityGroup`, es un nombre de recurso fijo proporcionado por Elastic Beanstalk. Debe añadir reglas de entrada `AWSEBSecurityGroup` al grupo de ElastiCache seguridad para que la aplicación de Elastic Beanstalk se conecte a las instancias del clúster. 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
```

Para obtener más información sobre los recursos que se utilizan en este archivo de configuración de ejemplo, consulte las siguientes referencias: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::ElastiCache::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html)
+ [AWS::ElastiCaché: SecurityGroupIngress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html)

Cree un archivo de configuración distinto llamado `options.config` y defina la configuración de opciones personalizadas. 

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

Estas líneas indican a Elastic Beanstalk que obtenga los valores de las propiedades, y Engine de los valores **CacheNodeType,** y Engine de un archivo **CacheNodeTypede NumCacheNodes** configuración (options.config en nuestro ejemplo) que contiene una sección option\$1settings **con** una sección aws:elasticbeanstalk:customoption que contiene un par nombre-valor que contiene el valor real que se va a utilizar. NumCacheNodes En el ejemplo anterior, esto significa que se utilizará cache.m1.small, 1 y memcached para los valores. Para obtener más información acerca de `Fn::GetOptionSetting`, consulte [Funciones](ebextensions-functions.md).

## EC2-VPC (predeterminada)
<a name="customize-environment-resources-elasticache-defaultvpc"></a>

En este ejemplo, se añade un ElastiCache clúster de Amazon a un entorno con instancias lanzadas en la plataforma EC2-VPC. En concreto, la información de esta sección se aplica a los casos en los que las instancias EC2 se lanzan en la VPC predeterminada. Todas las propiedades de este ejemplo son las propiedades mínimas necesarias que deben establecerse en cada tipo de recurso. Para obtener más información sobre la VPC y las VPCs subredes predeterminadas, consulte [Su VPC y sus subredes predeterminadas](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html).

**nota**  
En este ejemplo se crean AWS recursos, por los que es posible que se le cobre. Para obtener más información sobre AWS los precios, consulte[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Algunos servicios forman parte de la capa de uso AWS gratuito. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Para usar este ejemplo, haga lo siguiente:

1. Cree un directorio `[.ebextensions](ebextensions.md)` en el directorio de nivel superior del paquete de código fuente. 

1. Cree dos archivos de configuración con la extensión `.config` y colóquelos en el directorio `.ebextensions`. En un archivo de configuración se definen los recursos y en el otro, las opciones.

1. Implemente su aplicación en Elastic Beanstalk.

   YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.

Ahora, asigne un nombre al archivo de configuración de recursos `elasticache.config`. Para crear el ElastiCache clúster, en este ejemplo se especifica el nombre del recurso del ElastiCache clúster (`MyElastiCache`), se declara su tipo y, a continuación, se configuran las propiedades del clúster. En el ejemplo, se hace referencia al ID del recurso del grupo de seguridad que creamos y definimos en este archivo de configuración.

A continuación, vamos a crear un grupo de seguridad de EC2. Vamos a definir el nombre de este recurso, a declarar el tipo, a agregar una descripción y a definir las reglas de entrada del grupo de seguridad para permitir únicamente el acceso del tráfico procedente de las instancias del grupo de seguridad de Elastic Beanstalk (`AWSEBSecurityGroup`). (El nombre del parámetro,`AWSEBSecurityGroup`, es un nombre de recurso fijo proporcionado por Elastic Beanstalk. Debe añadir reglas de entrada `AWSEBSecurityGroup` al grupo de ElastiCache seguridad para que la aplicación de Elastic Beanstalk se conecte a las instancias del clúster.) ElastiCache 

Las reglas de entrada del grupo de seguridad de EC2 también definen el protocolo IP y los números de puerto en los que los nodos de caché pueden aceptar conexiones. En Redis, el número de puerto predeterminado es `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"
```

Para obtener más información sobre los recursos que se utilizan en este archivo de configuración de ejemplo, consulte las siguientes referencias: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)

A continuación, asigne un nombre al archivo de configuración de opciones, `options.config`, y defina los ajustes predeterminados. 

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

Estas líneas le indican a Elastic Beanstalk que obtenga los valores de las propiedades `CacheNodeType`, `NumCacheNodes`, `Engine` y `CachePort` a partir de los valores `CacheNodeType`, `NumCacheNodes`, `Engine` y `CachePort` del archivo de configuración (`options.config` en nuestro ejemplo). Este archivo contiene una sección `aws:elasticbeanstalk:customoption` (bajo `option_settings`) que, a su vez, contiene pares nombre-valor con los valores reales que se van a usar. En el ejemplo anterior, se utilizaría `cache.t2.micro`, `1`, `redis` y `6379` para los valores. Para obtener más información acerca de `Fn::GetOptionSetting`, consulte [Funciones](ebextensions-functions.md).

## EC2-VPC (personalizada)
<a name="customize-environment-resources-elasticache-targetedvpc"></a>

Si crea una VPC personalizada en la plataforma EC2-VPC y la especifica como la VPC en la que EC2 lanza las instancias, el proceso de añadir un ElastiCache clúster de Amazon a su entorno es diferente del de una VPC predeterminada. La principal diferencia es que debe crear un grupo de subredes para el clúster. ElastiCache Todas las propiedades de este ejemplo son las propiedades mínimas necesarias que deben establecerse en cada tipo de recurso.

**nota**  
En este ejemplo se crean AWS recursos, por los que es posible que se le cobre. Para obtener más información sobre AWS los precios, consulte[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Algunos servicios forman parte de la capa de uso AWS gratuito. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Para usar este ejemplo, haga lo siguiente:

1. Cree un directorio `[.ebextensions](ebextensions.md)` en el directorio de nivel superior del paquete de código fuente. 

1. Cree dos archivos de configuración con la extensión `.config` y colóquelos en el directorio `.ebextensions`. En un archivo de configuración se definen los recursos y en el otro, las opciones.

1. Implemente su aplicación en Elastic Beanstalk.

   YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.

Ahora, asigne un nombre al archivo de configuración de recursos `elasticache.config`. Para crear el ElastiCache clúster, en este ejemplo se especifica el nombre del recurso del ElastiCache clúster (`MyElastiCache`), se declara su tipo y, a continuación, se configuran las propiedades del clúster. Las propiedades del ejemplo hacen referencia al nombre del grupo de subredes del ElastiCache clúster, así como al ID del recurso del grupo de seguridad que creamos y definimos en este archivo de configuración.

A continuación, vamos a crear un grupo de seguridad de EC2. Vamos a definir el nombre de este recurso, a declarar el tipo, a agregar una descripción, a especificar el ID de la VPC y a definir las reglas de entrada del grupo de seguridad para permitir únicamente el acceso del tráfico procedente de las instancias del grupo de seguridad de Elastic Beanstalk (`AWSEBSecurityGroup`). (El nombre del parámetro,`AWSEBSecurityGroup`, es un nombre de recurso fijo proporcionado por Elastic Beanstalk. Debe añadir reglas de entrada `AWSEBSecurityGroup` al grupo de ElastiCache seguridad para que la aplicación de Elastic Beanstalk se conecte a las instancias del clúster.) ElastiCache 

Las reglas de entrada del grupo de seguridad de EC2 también definen el protocolo IP y los números de puerto en los que los nodos de caché pueden aceptar conexiones. En Redis, el número de puerto predeterminado es `6379`. Por último, en este ejemplo se crea un grupo de subredes para el clúster. ElastiCache Definiremos el nombre de este recurso, declararemos su tipo y agregaremos una descripción y un ID de la subred en el grupo de subredes.

**nota**  
Se recomienda utilizar subredes privadas para el ElastiCache clúster. Para obtener más información sobre las VPC con subredes privadas, consulte [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html](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"
```

Para obtener más información sobre los recursos que se utilizan en este archivo de configuración de ejemplo, consulte las siguientes referencias: 
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)
+ [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)
+ [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)

A continuación, asigne un nombre al archivo de configuración de opciones, `options.config`, y defina los ajustes predeterminados.

**nota**  
En el siguiente ejemplo, sustituya los valores `CacheSubnets` y `VpcId` por sus propias subredes y VPC.

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

Estas líneas le indican a `CacheNodeType` que obtenga los valores de las propiedades `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets` y `VpcId` a partir de los valores `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets` y `VpcId` del archivo de configuración (`options.config` en nuestro ejemplo). Este archivo contiene una sección `aws:elasticbeanstalk:customoption` (bajo `option_settings`) que, a su vez, contiene pares nombre-valor con valores de ejemplo. En el ejemplo anterior, se utilizaría `cache.t2.micro`, `1`, `redis`, `6379`, `subnet-1a1a1a1a`, `subnet-2b2b2b2b`, `subnet-3c3c3c3c` y `vpc-4d4d4d4d` para los valores. Para obtener más información acerca de `Fn::GetOptionSetting`, consulte [Funciones](ebextensions-functions.md).