

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Les exemples suivants ajoutent un ElastiCache cluster Amazon aux plateformes EC2-Classic et EC2-VPC (Amazon Virtual [Private Cloud (Amazon VPC) par défaut et personnalisées](https://docs.aws.amazon.com/vpc/latest/userguide/)). Pour plus d'informations sur ces plateformes et sur la manière de déterminer celles prises en charge par EC2 pour votre région et votre AWS compte, consultez[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html). Consultez ensuite la section de cette rubrique qui s'applique à votre plateforme.
+ [Plateformes EC2-classic](#customize-environment-resources-elasticache-classic)
+ [EC2-VPC (par défaut)](#customize-environment-resources-elasticache-defaultvpc)
+ [EC2-VPC (personnalisé)](#customize-environment-resources-elasticache-targetedvpc)

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

Cet exemple ajoute un ElastiCache cluster Amazon à un environnement avec des instances lancées sur la plateforme EC2-Classic. Toutes les propriétés répertoriées dans cet exemple correspondent aux propriétés requises minimales qui doivent être définies pour chaque type de ressource. Vous pouvez télécharger l'exemple [ElastiCacheci-dessous](https://elasticbeanstalk.s3.amazonaws.com/extensions/ElastiCache.config). 

**Note**  
Cet exemple crée AWS des ressources qui peuvent vous être facturées. Pour plus d'informations sur la AWS tarification, consultez[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Certains services font partie du niveau d'utilisation AWS gratuit. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d’informations, consultez [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Pour utiliser cet exemple, procédez comme suit :

1. Créez un répertoire `[.ebextensions](ebextensions.md)` dans le répertoire de niveau supérieur de votre bundle de fichiers source. 

1. Créez deux fichiers de configuration avec l'extension `.config`, puis placez-les dans votre répertoire `.ebextensions`. Un fichier de configuration définit les ressources et l'autre fichier de configuration définit les options.

1. Déployez votre application sur Elastic Beanstalk.

   YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.

Créez un fichier de configuration (par exemple, `elasticache.config`) qui définit les ressources. Dans cet exemple, nous créons le ElastiCache cluster en spécifiant le nom de la ressource du ElastiCache cluster (`MyElastiCache`), en déclarant son type, puis en configurant les propriétés du cluster. L'exemple fait référence au nom de la ressource du groupe de ElastiCache sécurité créée et définie dans ce fichier de configuration. Ensuite, nous créons un groupe ElastiCache de sécurité. Nous définissons le nom de cette ressource, nous déclarons son type, puis nous ajoutons une description du groupe de sécurité. Enfin, nous avons défini les règles d'entrée pour le groupe de ElastiCache sécurité afin d'autoriser l'accès uniquement depuis les instances du groupe de ElastiCache sécurité (`MyCacheSecurityGroup`) et du groupe de sécurité Elastic Beanstalk (). `AWSEBSecurityGroup` Le nom du paramètre, `AWSEBSecurityGroup`, est un nom de ressource fixe fourni par Elastic Beanstalk. Vous devez ajouter des règles d'entrée `AWSEBSecurityGroup` à votre groupe de ElastiCache sécurité pour que votre application Elastic Beanstalk puisse se connecter aux instances de votre 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
```

Pour plus d'informations sur les ressources utilisées dans cet exemple de fichier de configuration, consultez les références suivantes : 
+ [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::ElastiCache : SecurityGroupIngress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html)

Créez un fichier de configuration distinct nommé `options.config` et définissez les paramètres d'option personnalisés. 

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

Ces lignes indiquent à Elastic Beanstalk d'obtenir les valeurs des propriétés,, et Engine à **CacheNodeTypepartir NumCacheNodes** des valeurs **CacheNodeType,** et Engine dans un fichier de configuration (options.config dans notre exemple) qui contient une section option\_settings **avec** une section aws:elasticbeanstalk:customoption contenant une paire nom-valeur contenant la valeur réelle à utiliser. NumCacheNodes Dans l'exemple ci-dessus, cela signifie que les éléments cache.m1.small, 1 et memcached seraient utilisés pour les valeurs. Pour plus d’informations sur `Fn::GetOptionSetting`, consultez [Fonctions](ebextensions-functions.md).

## EC2-VPC (par défaut)
<a name="customize-environment-resources-elasticache-defaultvpc"></a>

Cet exemple ajoute un ElastiCache cluster Amazon à un environnement avec des instances lancées sur la plateforme EC2-VPC. Plus précisément, les informations de cette section s'appliquent à un scénario où EC2 lance des instances dans le VPC par défaut. Toutes les propriétés figurant dans cet exemple correspondent aux propriétés requises minimales qui doivent être définies pour chaque type de ressource. Pour plus d'informations sur le VPC et les VPCs sous-réseaux par défaut, consultez la section [Votre VPC et vos sous-réseaux par](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) défaut.

**Note**  
Cet exemple crée AWS des ressources qui peuvent vous être facturées. Pour plus d'informations sur la AWS tarification, consultez[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Certains services font partie du niveau d'utilisation AWS gratuit. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d’informations, consultez [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Pour utiliser cet exemple, procédez comme suit :

1. Créez un répertoire `[.ebextensions](ebextensions.md)` dans le répertoire de niveau supérieur de votre bundle de fichiers source. 

1. Créez deux fichiers de configuration avec l'extension `.config`, puis placez-les dans votre répertoire `.ebextensions`. Un fichier de configuration définit les ressources et l'autre fichier de configuration définit les options.

1. Déployez votre application sur Elastic Beanstalk.

   YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.

Ensuite, attribuez le nom `elasticache.config` au fichier de configuration de ressources. Pour créer le ElastiCache cluster, cet exemple indique le nom de la ressource du ElastiCache cluster (`MyElastiCache`), déclare son type, puis configure les propriétés du cluster. L'exemple fait référence à l'ID de la ressource de groupe de sécurité que nous créons et définissons dans ce fichier de configuration.

Ensuite, nous créons un groupe de sécurité EC2. Nous définissons le nom de cette ressource, déclarons son type, ajoutons une description et définissons les règles de trafic entrant pour le groupe de sécurité afin de n'autoriser l'accès qu'à partir des instances incluses dans le groupe de sécurité Elastic Beanstalk (`AWSEBSecurityGroup`). (Le nom du paramètre`AWSEBSecurityGroup`, est un nom de ressource fixe fourni par Elastic Beanstalk. Vous devez ajouter des règles d'entrée `AWSEBSecurityGroup` à votre groupe de ElastiCache sécurité pour que votre application Elastic Beanstalk puisse se connecter aux instances de votre cluster.) ElastiCache 

Les règles de trafic entrant pour le groupe de sécurité EC2 définissent également le protocole IP et les numéros de port sur lesquels les nœuds de cache peuvent accepter des connexions. Pour Redis, le numéro de port par défaut est `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"
```

Pour plus d'informations sur les ressources utilisées dans cet exemple de fichier de configuration, consultez les références suivantes : 
+ [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)

Ensuite, attribuez le nom `options.config` au fichier de configuration des options et définissez les paramètres d'option personnalisés. 

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

Avec ces lignes de code, Elastic Beanstalk récupère les valeurs des propriétés `CacheNodeType`, `NumCacheNodes`, `Engine` et `CachePort` à partir des valeurs `CacheNodeType`, `NumCacheNodes`, `Engine` et `CachePort` figurant dans un fichier de configuration (`options.config` dans notre exemple). Ce fichier inclut une section `aws:elasticbeanstalk:customoption` (sous `option_settings`) qui contient des paires nom-valeur incluant les valeurs réelles à utiliser. Dans l'exemple précédent, les éléments `cache.t2.micro`, `1`, `redis` et `6379` seraient utilisés pour les valeurs. Pour plus d’informations sur `Fn::GetOptionSetting`, consultez [Fonctions](ebextensions-functions.md).

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

Si vous créez un VPC personnalisé sur la plateforme EC2-VPC et que vous le spécifiez comme VPC dans lequel EC2 lance les instances, le processus d'ajout d'un ElastiCache cluster Amazon à votre environnement est différent de celui d'un VPC par défaut. La principale différence est que vous devez créer un groupe de sous-réseaux pour le ElastiCache cluster. Toutes les propriétés figurant dans cet exemple correspondent aux propriétés requises minimales qui doivent être définies pour chaque type de ressource.

**Note**  
Cet exemple crée AWS des ressources qui peuvent vous être facturées. Pour plus d'informations sur la AWS tarification, consultez[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Certains services font partie du niveau d'utilisation AWS gratuit. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d’informations, consultez [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Pour utiliser cet exemple, procédez comme suit :

1. Créez un répertoire `[.ebextensions](ebextensions.md)` dans le répertoire de niveau supérieur de votre bundle de fichiers source. 

1. Créez deux fichiers de configuration avec l'extension `.config`, puis placez-les dans votre répertoire `.ebextensions`. Un fichier de configuration définit les ressources et l'autre fichier de configuration définit les options.

1. Déployez votre application sur Elastic Beanstalk.

   YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.

Ensuite, attribuez le nom `elasticache.config` au fichier de configuration de ressources. Pour créer le ElastiCache cluster, cet exemple indique le nom de la ressource du ElastiCache cluster (`MyElastiCache`), déclare son type, puis configure les propriétés du cluster. Les propriétés de l'exemple font référence au nom du groupe de sous-réseaux du ElastiCache cluster ainsi qu'à l'ID de la ressource du groupe de sécurité que nous créons et définissons dans ce fichier de configuration.

Ensuite, nous créons un groupe de sécurité EC2. Nous définissons le nom de cette ressource, déclarons son type, ajoutons une description et l'ID de VPC, et définissons les règles de trafic entrant pour le groupe de sécurité afin de n'autoriser l'accès qu'à partir des instances incluses dans le groupe de sécurité Elastic Beanstalk (`AWSEBSecurityGroup`). (Le nom du paramètre`AWSEBSecurityGroup`, est un nom de ressource fixe fourni par Elastic Beanstalk. Vous devez ajouter des règles d'entrée `AWSEBSecurityGroup` à votre groupe de ElastiCache sécurité pour que votre application Elastic Beanstalk puisse se connecter aux instances de votre cluster.) ElastiCache 

Les règles de trafic entrant pour le groupe de sécurité EC2 définissent également le protocole IP et les numéros de port sur lesquels les nœuds de cache peuvent accepter des connexions. Pour Redis, le numéro de port par défaut est `6379`. Enfin, cet exemple crée un groupe de sous-réseaux pour le ElastiCache cluster. Nous définissons le nom de cette ressource, déclarons son type et ajoutons la description et l'ID du sous-réseau dans le groupe de sous-réseaux.

**Note**  
Nous vous recommandons d'utiliser des sous-réseaux privés pour le ElastiCache cluster. Pour plus d'informations sur un VPC avec un sous-réseau privé, consultez [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"
```

Pour plus d'informations sur les ressources utilisées dans cet exemple de fichier de configuration, consultez les références suivantes : 
+ [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)

Ensuite, attribuez le nom `options.config` au fichier de configuration des options et définissez les paramètres d'option personnalisés.

**Note**  
Dans l'exemple suivant, remplacez les exemples de valeurs `CacheSubnets` et `VpcId` par vos propres sous-réseaux et 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
```

Avec ces lignes de code, Elastic Beanstalk récupère les valeurs des propriétés `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets` et `VpcId` à partir des valeurs `CacheNodeType`, `NumCacheNodes`, `Engine`, `CachePort`, `CacheSubnets` et `VpcId` figurant dans un fichier de configuration (`options.config` dans notre exemple). Ce fichier inclut une section `aws:elasticbeanstalk:customoption` (sous `option_settings`) qui contient des paires nom-valeur incluant des exemples de valeurs. Dans l'exemple ci-dessus, les éléments `cache.t2.micro`, `1`, `redis`, `6379`, `subnet-1a1a1a1a`, `subnet-2b2b2b2b`, `subnet-3c3c3c3c` et `vpc-4d4d4d4d` seraient utilisés pour les valeurs. Pour plus d’informations sur `Fn::GetOptionSetting`, consultez [Fonctions](ebextensions-functions.md).