Exemple : ElastiCache - AWS Elastic Beanstalk

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

Les exemples suivants permettent d'ajouter un cluster Amazon ElastiCache aux plateformes EC2-Classic et EC2-VPC (Amazon Virtual Private Cloud (Amazon VPC) par défaut et personnalisé). Pour plus d'informations sur ces plateformes et sur la façon d'identifier celles qui sont prises en charge par EC2 pour votre région et votre compte AWS, consultez 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

Cet exemple ajoute un cluster Amazon ElastiCache à un environnement avec des instances lancées dans 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 sur la page Exemple ElastiCache.

Note

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

Pour utiliser cet exemple, procédez comme suit :

  1. Créez un répertoire .ebextensions dans le répertoire de niveau supérieur de votre bundle de fichiers source.

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

  3. 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 cluster ElastiCache en spécifiant le nom de la ressource de cluster ElastiCache (MyElastiCache), en déclarant son type, puis en configurant les propriétés pour le cluster. L'exemple fait référence au nom de la ressource de groupe de sécurité ElastiCache qui est créée et définie dans ce fichier de configuration. Ensuite, nous créons un groupe de sécurité ElastiCache. 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 définissons les règles de trafic entrant pour le groupe de sécurité ElastiCache afin de n'autoriser l'accès qu'à partir des instances incluses dans le groupe de sécurité ElastiCache (MyCacheSecurityGroup) et 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 AWSEBSecurityGroup aux règles de trafic entrant de votre groupe de sécurité ElastiCache pour que votre application Elastic Beanstalk se connecte 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 :

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

Avec ces lignes de code, Elastic Beanstalk récupère les valeurs des propriétés CacheNodeType, NumCacheNodes et Engine à partir des valeurs CacheNodeType, NumCacheNodes et Engine figurant dans un fichier de configuration (options.config dans notre exemple). Celui-ci contient une section option_settings dont la section aws:elasticbeanstalk:customoption inclut une paire nom-valeur qui contient la valeur réelle à utiliser. 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.

EC2-VPC (par défaut)

Cet exemple ajoute un cluster Amazon ElastiCache à un environnement avec des instances lancées dans 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 les VPC par défaut, consultez Vos VPC et sous-réseaux par défaut.

Note

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

Pour utiliser cet exemple, procédez comme suit :

  1. Créez un répertoire .ebextensions dans le répertoire de niveau supérieur de votre bundle de fichiers source.

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

  3. 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 au fichier de configuration de ressources elasticache.config. Pour créer le cluster ElastiCache, cet exemple spécifie le nom de la ressource de cluster ElastiCache (MyElastiCache), déclare son type, puis configure les propriétés pour le 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 AWSEBSecurityGroup aux règles d'entrée de votre groupe de sécurité ElastiCache 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 :

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.

EC2-VPC (personnalisé)

Si vous créez un VPC personnalisé sur la plateforme EC2-VPC et que vous le spécifiez en tant que VPC dans lequel EC2 lance les instances, le processus d'ajout d'un cluster Amazon ElastiCache à votre environnement diffère de celui d'un VPC par défaut. La différence principale est que vous devez créer un groupe de sous-réseaux pour le cluster ElastiCache. 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 des ressources AWS, qui peuvent éventuellement vous être facturées. Pour plus d'informations sur la tarification AWS, consultez https://aws.amazon.com/pricing/. Certains services font partie du niveau d'offre gratuite d'AWS. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d'informations, consultez https://aws.amazon.com/free/.

Pour utiliser cet exemple, procédez comme suit :

  1. Créez un répertoire .ebextensions dans le répertoire de niveau supérieur de votre bundle de fichiers source.

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

  3. 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 au fichier de configuration de ressources elasticache.config. Pour créer le cluster ElastiCache, cet exemple spécifie le nom de la ressource de cluster ElastiCache (MyElastiCache), déclare son type, puis configure les propriétés pour le cluster. Dans cet exemple, les propriétés font référence au nom du groupe de sous-réseaux pour le cluster ElastiCache ainsi qu'à 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 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 AWSEBSecurityGroup aux règles d'entrée de votre groupe de sécurité ElastiCache 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 cluster ElastiCache. 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 cluster ElastiCache. 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.

#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 :

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.