Exemplo: ElastiCache - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: ElastiCache

Os exemplos a seguir adicionam um cluster do Amazon ElastiCache às plataformas EC2-Classic e EC2-VPC (padrão e personalizado Amazon Virtual Private Cloud (Amazon VPC)). Para obter mais informações sobre essas plataformas e saber como determinar quais delas são compatíveis com o EC2 para a sua região e conta da AWS, consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html. Depois, consulte a seção neste tópico que se aplica à sua plataforma.

Plataformas EC2-Classic

Este exemplo adiciona um cluster do Amazon ElastiCache a um ambiente com instâncias iniciadas na plataforma EC2-Classic. Todas as propriedades listadas neste exemplo são as propriedades mínimas necessárias que devem ser definidas para cada tipo de recurso. É possível fazer download do exemplo em Exemplo do ElastiCache.

nota

Este exemplo cria recursos da AWS, pelos quais você poderia ser cobrado. Para obter mais informações sobre a definição de preços do AWS, consulte https://aws.amazon.com/pricing/. Alguns serviços fazem parte do nível de uso gratuito da AWS. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte https://aws.amazon.com/free/ para obter mais informações.

Para usar esse exemplo, faça o seguinte:

  1. Crie um diretório .ebextensions no diretório de nível superior do pacote de origem.

  2. Crie dois arquivos de configuração com a extensão .config e os coloque no diretório .ebextensions. Um arquivo de configuração define os recursos, e o outro arquivo de configuração define as opções.

  3. Implante a aplicação no Elastic Beanstalk.

    YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

Crie um arquivo de configuração (por exemplo, elasticache.config) que define os recursos. Neste exemplo, criamos o cluster do ElastiCache ao especificar o nome do recurso dele (MyElastiCache), declarar seu tipo e, em seguida, configurar as propriedades para o cluster. O exemplo faz referência ao nome do recurso de security group do ElastiCache, que é criado e definido neste arquivo de configuração. Depois, criamos um security group do ElastiCache. Definimos o nome deste recurso, declaramos seu tipo e adicionamos uma descrição para o security group. Por fim, vamos definir as regras de entrada para o security group do ElastiCache. Dessa forma, o acesso é permitido somente a partir de instâncias dentro do security group do ElastiCache (MyCacheSecurityGroup) e o security group do Elastic Beanstalk (AWSEBSecurityGroup). O nome do parâmetro, AWSEBSecurityGroup, é o nome do recurso fixo fornecido pelo Elastic Beanstalk. É necessário adicionar o AWSEBSecurityGroup às regras de entrada do grupo de segurança do ElastiCache para que a aplicação do Elastic Beanstalk se conecte às instâncias do cluster do 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 obter mais informações sobre os recursos usados neste exemplo de arquivo de configuração, consulte as seguintes referências:

Crie um arquivo de configuração separado chamado options.config e defina as opções de configurações personalizadas.

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

Essas linhas instruem o Elastic Beanstalk a obter os valores para as propriedades CacheNodeType, NumCacheNodes e Engine, a partir dos valores CacheNodeType, NumCacheNodes e Engine, em um arquivo de configuração (options.config em nosso exemplo). Esse arquivo contém uma seção de option_settings com outra de aws:elasticbeanstalk: customoption que tem um par de nome e valor com o valor real a ser usado. No exemplo acima, isso significa que cache.m1.small, 1 e Memcached seriam usados para os valores. Para obter mais informações sobre o Fn::GetOptionSetting, consulte Funções.

EC2-VPC (padrão)

Este exemplo adiciona um cluster do Amazon ElastiCache a um ambiente com instâncias iniciadas na plataforma EC2-VPC. A informação nessa seção se aplica especificamente a um cenário em que o EC2 inicia instâncias na VPC padrão. Todas as propriedades neste exemplo são as mínimas necessárias que devem ser definidas para cada tipo de recurso. Para obter mais informações sobre as VPCs padrão, consulte Sua VPC padrão e sub-redes.

nota

Este exemplo cria recursos da AWS, pelos quais você poderia ser cobrado. Para obter mais informações sobre a definição de preços do AWS, consulte https://aws.amazon.com/pricing/. Alguns serviços fazem parte do nível de uso gratuito da AWS. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte https://aws.amazon.com/free/ para obter mais informações.

Para usar esse exemplo, faça o seguinte:

  1. Crie um diretório .ebextensions no diretório de nível superior do pacote de origem.

  2. Crie dois arquivos de configuração com a extensão .config e os coloque no diretório .ebextensions. Um arquivo de configuração define os recursos, e o outro arquivo de configuração define as opções.

  3. Implante a aplicação no Elastic Beanstalk.

    YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

Agora nomeie o arquivo de configuração de recursos elasticache.config. Para criar o cluster do ElastiCache, esse exemplo especifica o nome do recurso do cluster do ElastiCache (MyElastiCache), declara o tipo e então configura as propriedades do cluster. O exemplo faz referência ao ID do recurso do security group que criamos e definimos neste arquivo de configuração.

Depois, criamos um security group do EC2. Definimos o nome deste recurso, declaramos o tipo, adicionamos uma descrição e definimos as regras de entrada no security group para permitir o acesso somente a partir de instâncias dentro do security group do Elastic Beanstalk (AWSEBSecurityGroup). (O nome do parâmetro, AWSEBSecurityGroup, é um nome de recurso fixo fornecido pelo Elastic Beanstalk. É necessário adicionar o AWSEBSecurityGroup às regras de ingresso do grupo de segurança do ElastiCache para que a aplicação do Elastic Beanstalk se conecte às instâncias do cluster do ElastiCache.)

As regras de entrada para o security group do EC2 também definem o protocolo de IP e os números de portas em que os nós de cache podem aceitar conexões. Para Redis, o número padrão da 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"

Para obter mais informações sobre os recursos usados neste exemplo de arquivo de configuração, consulte as seguintes referências:

Depois, nomeie o arquivo de configuração de opções options.config e defina as opções de configurações personalizadas.

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

Essas linhas instruem o Elastic Beanstalk para obter os valores para as propriedades CacheNodeType, NumCacheNodes, Engine e CachePort dos valores CacheNodeType, NumCacheNodes, Engine e CachePort em um arquivo de configuração (options.config em nosso exemplo). Esse arquivo inclui uma seção de aws:elasticbeanstalk:customoption (em option_settings) que contém pares de nome e valor com o valores reais para serem usados. No exemplo anterior, cache.t2.micro, 1, redis e 6379 seriam usados para os valores. Para obter mais informações sobre o Fn::GetOptionSetting, consulte Funções.

EC2-VPC (personalizado)

Se você criar uma VPC personalizada na plataforma EC2-VPC e especificá-la como o local onde o EC2 inicia as instâncias, o processo de adicionar um cluster do Amazon ElastiCache ao seu ambiente será diferente do de uma VPC padrão. A principal diferença é que você precisa criar um grupo de sub-rede para o cluster do ElastiCache. Todas as propriedades neste exemplo são as mínimas necessárias que devem ser definidas para cada tipo de recurso.

nota

Este exemplo cria recursos da AWS, pelos quais você poderia ser cobrado. Para obter mais informações sobre a definição de preços do AWS, consulte https://aws.amazon.com/pricing/. Alguns serviços fazem parte do nível de uso gratuito da AWS. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte https://aws.amazon.com/free/ para obter mais informações.

Para usar esse exemplo, faça o seguinte:

  1. Crie um diretório .ebextensions no diretório de nível superior do pacote de origem.

  2. Crie dois arquivos de configuração com a extensão .config e os coloque no diretório .ebextensions. Um arquivo de configuração define os recursos, e o outro arquivo de configuração define as opções.

  3. Implante a aplicação no Elastic Beanstalk.

    YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

Agora nomeie o arquivo de configuração de recursos elasticache.config. Para criar o cluster do ElastiCache, esse exemplo especifica o nome do recurso do cluster do ElastiCache (MyElastiCache), declara o tipo e então configura as propriedades do cluster. As propriedades no exemplo fazem referência ao nome do grupo de sub-rede para o cluster do ElastiCache, bem como para o ID do recurso do security group que criamos e definimos neste arquivo de configuração.

Depois, criamos um security group do EC2. Definimos o nome deste recurso, declaramos o tipo, adicionamos uma descrição, o ID da VPC, e definimos as regras de entrada no security group para permitir o acesso somente a partir das instâncias dentro do security group do Elastic Beanstalk (AWSEBSecurityGroup). (O nome do parâmetro, AWSEBSecurityGroup, é um nome de recurso fixo fornecido pelo Elastic Beanstalk. É necessário adicionar o AWSEBSecurityGroup às regras de ingresso do grupo de segurança do ElastiCache para que a aplicação do Elastic Beanstalk se conecte às instâncias do cluster do ElastiCache.)

As regras de entrada para o security group do EC2 também definem o protocolo de IP e os números de portas em que os nós de cache podem aceitar conexões. Para Redis, o número padrão da porta é 6379. Por fim, esse exemplo cria um grupo de sub-rede para o cluster do ElastiCache. Definimos o nome desse recurso, declaramos seu tipo e adicionamos uma descrição e um ID da sub-rede no grupo de sub-rede.

nota

Recomendamos que você use sub-redes privadas para o cluster do ElastiCache. Para obter mais informações sobre uma VPC com uma sub-rede privada, 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 obter mais informações sobre os recursos usados neste exemplo de arquivo de configuração, consulte as seguintes referências:

Depois, nomeie o arquivo de configuração de opções options.config e defina as opções de configurações personalizadas.

nota

No exemplo a seguir, substitua o exemplo CacheSubnets e os valores de VpcId com suas próprias sub-redes e 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

Essas linhas instruem o Elastic Beanstalk para obter os valores para as propriedades CacheNodeType, NumCacheNodes, Engine, CachePort, CacheSubnets e VpcId dos valores CacheNodeType, NumCacheNodes, Engine, CachePort, CacheSubnets e VpcId em um arquivo de configuração (options.config em nosso exemplo). Esse arquivo inclui uma seção de aws:elasticbeanstalk:customoption (em option_settings) que contém pares de nome e valor com os valores de exemplo. No exemplo acima, cache.t2.micro, 1, redis, 6379, subnet-1a1a1a1a, subnet-2b2b2b2b, subnet-3c3c3c3c e vpc-4d4d4d4d seriam usados para os valores. Para obter mais informações sobre o Fn::GetOptionSetting, consulte Funções.