Ejemplo: ElastiCache - AWS Elastic Beanstalk

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

Los ejemplos a continuación añaden un clúster de Amazon ElastiCache a las plataformas de EC2-Classic y EC2-VPC (ambas predeterminadas y personalizadas de Amazon Virtual Private Cloud (Amazon VPC)). Para obtener más información sobre estas plataformas y cómo puede determinar cuáles son las que EC2 admite para su región y su cuenta de AWS, consulte 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

En este ejemplo, se agrega un clúster de Amazon ElastiCache 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 Ejemplo de ElastiCache.

nota

En este ejemplo se crean recursos de AWS, los cuales podrían incurrir gastos. Para obtener más información sobre los precios de AWS, consulte https://aws.amazon.com/pricing/. Algunos servicios forman parte del nivel de uso gratuito de AWS. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte https://aws.amazon.com/free/.

Para usar este ejemplo, haga lo siguiente:

  1. Cree un directorio .ebextensions en el directorio de nivel superior del paquete de código fuente.

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

  3. 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, vamos a crear el clúster de ElastiCache especificando el nombre del recurso (MyElastiCache), declarando el tipo y configurando las propiedades del clúster. En el ejemplo, se hace referencia al recurso de grupo de seguridad de ElastiCache que se crea y se define en este archivo de configuración. A continuación, crearemos un grupo de seguridad de ElastiCache. Definiremos el nombre de este recurso, declararemos su tipo y agregaremos una descripción del grupo de seguridad. Por último, definiremos las reglas de entrada del grupo de seguridad de ElastiCache para permitir el acceso únicamente al tráfico procedente de las instancias del grupo de ElastiCache (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 agregar AWSEBSecurityGroup a las reglas de entrada del grupo de seguridad de ElastiCache para que la aplicación de Elastic Beanstalk pueda conectarse a las instancias del clúster de 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:

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 CacheNodeType, NumCacheNodes y Engine a partir de los valores CacheNodeType, NumCacheNodes y Engine de un archivo de configuración (options.config en nuestro ejemplo) que contiene una sección option_settings con una sección aws:elasticbeanstalk:customoption que, a su vez, contiene el par nombre-valor con el valor real que se va a usar. 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.

EC2-VPC (predeterminada)

En este ejemplo, se agrega un clúster de Amazon ElastiCache 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 acerca de las VPC predeterminadas, consulte VPC y subredes predeterminadas.

nota

En este ejemplo se crean recursos de AWS, los cuales podrían incurrir gastos. Para obtener más información sobre los precios de AWS, consulte https://aws.amazon.com/pricing/. Algunos servicios forman parte del nivel de uso gratuito de AWS. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte https://aws.amazon.com/free/.

Para usar este ejemplo, haga lo siguiente:

  1. Cree un directorio .ebextensions en el directorio de nivel superior del paquete de código fuente.

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

  3. 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. En este ejemplo, para crear el clúster de ElastiCache, se especifica el nombre del recurso del clúster de ElastiCache (MyElastiCache), se declara el tipo y 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 agregar AWSEBSecurityGroup a las reglas de entrada del grupo de seguridad de ElastiCache para que la aplicación de Elastic Beanstalk pueda conectarse a las instancias del clúster de 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:

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.

EC2-VPC (personalizada)

Si crea una VPC personalizada en la plataforma EC2-VPC y la define como la VPC en la que EC2 lanza las instancias, el proceso para agregar un clúster de Amazon ElastiCache al entorno será diferente que si se utiliza la VPC predeterminada. La principal diferencia es que debe crear un grupo de subredes para el clúster de 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 recursos de AWS, los cuales podrían incurrir gastos. Para obtener más información sobre los precios de AWS, consulte https://aws.amazon.com/pricing/. Algunos servicios forman parte del nivel de uso gratuito de AWS. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte https://aws.amazon.com/free/.

Para usar este ejemplo, haga lo siguiente:

  1. Cree un directorio .ebextensions en el directorio de nivel superior del paquete de código fuente.

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

  3. 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. En este ejemplo, para crear el clúster de ElastiCache, se especifica el nombre del recurso del clúster de ElastiCache (MyElastiCache), se declara el tipo y se configuran las propiedades del clúster. Las propiedades del ejemplo hacen referencia al nombre del grupo de subredes del clúster de ElastiCache, así como al ID del recurso de 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 agregar AWSEBSecurityGroup a las reglas de entrada del grupo de seguridad de ElastiCache para que la aplicación de Elastic Beanstalk pueda conectarse a las instancias del clúster de 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 de 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

Le recomendamos que utilice subredes privadas con el clúster de ElastiCache. Para obtener más información sobre las VPC con subredes privadas, consulte 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:

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.