|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Articles d’actualité sur les crypto-monnaies
Déployer un cluster Amazon ElastiCache pour Redis à l'aide d'AWS CDK et TypeScript | AWS Database Blog
Apr 05, 2024 at 11:25 pm
L'AWS Cloud Development Kit (AWS CDK) vous permet de créer des ressources AWS avec une seule ligne de code. Par exemple, vous pouvez créer un VPC dans TypeScript avec la ligne suivante :new EC2.Vpc(this, 'cache_vpc');Cependant, plusieurs ressources AWS nécessitent plusieurs lignes de code car vous devez souvent créer des ressources de support. Par exemple, vous devez créer un CfnSubnetGroup et un SecurityGroup avant de créer un Amazon ElastiCache pour Redis CfnReplicationGroup. Ce résumé illustre les étapes de déploiement d'un cluster Amazon ElastiCache à l'aide d'AWS CDK et TypeScript. Nous vous montrons également comment déployer des ressources à l'aide d'Amazon ElastiCache pour Redis Serverless.

Creating AWS Resources with AWS Cloud Development Kit (AWS CDK) for ElastiCache
Création de ressources AWS avec AWS Cloud Development Kit (AWS CDK) pour ElastiCache
Introduction
Introduction
AWS Cloud Development Kit (AWS CDK) enables developers to define and provision AWS resources using familiar programming languages such as TypeScript. This article guides readers through the process of deploying an Amazon ElastiCache cluster and ElastiCache Serverless resources using AWS CDK and TypeScript.
AWS Cloud Development Kit (AWS CDK) permet aux développeurs de définir et de provisionner des ressources AWS à l'aide de langages de programmation familiers tels que TypeScript. Cet article guide les lecteurs tout au long du processus de déploiement d'un cluster Amazon ElastiCache et de ressources ElastiCache Serverless à l'aide d'AWS CDK et TypeScript.
Prerequisites
Conditions préalables
- AWS account
- AWS Command Line Interface (AWS CLI)
- AWS CDK
- Node.js 16.14.0 or later
Creating Prerequisite Resources
Compte AWSAWS Command Line Interface (AWS CLI)AWS CDKNode.js 16.14.0 ou version ultérieureCréation de ressources prérequises
- Install AWS CDK:
npm install -g aws-cdkInstaller AWS CDK : npm install -g aws-cdk
cdk --version- Create AWS CDK Directory Structure:
mkdir work & cd workcdk --versionCréer la structure du répertoire AWS CDK : travail mkdir et travail cd
cdk init --language typescript- Install NPM Packages:
npm install- Create VPC:
In the lib/work-stack.ts file, create a VPC:
cdk init --langue typescriptInstaller les packages NPM :npm installCréer un VPC :Dans le fichier lib/work-stack.ts, créez un VPC :
import * as cdk from 'aws-cdk-lib';importer * en tant que cdk depuis 'aws-cdk-lib' ;
import { Construct } from 'constructs';importer { Construct } à partir de 'constructions' ;
import * as EC2 from 'aws-cdk-lib/aws-ec2';importer * en tant qu'EC2 depuis 'aws-cdk-lib/aws-ec2' ;
export class WorkStack extends cdk.Stack {la classe d'exportation WorkStack étend cdk.Stack {
private vpc: EC2.Vpc;vpc privé : EC2.Vpc ;
constructor(scope: Construct, id: string, props?: cdk.StackProps) {constructeur (portée : construction, identifiant : chaîne, accessoires ? : cdk.StackProps) {
super(scope, id, props);super(portée, identifiant, accessoires);
this.vpc = new EC2.Vpc(this, 'cache_vpc');this.vpc = new EC2.Vpc(this, 'cache_vpc');
}}
}- Bootstrap AWS Environment:
cdk bootstrap- Synthesize CloudFormation Template:
cdk synth- Deploy VPC:
cdk deploy --require-approval neverCreate Subnet Group
}Environnement AWS Bootstrap : cdk bootstrapSynthesize CloudFormation Modèle : cdk synthDeploy VPC : cdk déployer --require-approval neverCreate Subnet Group
- Update
lib/work-stack.tsto create a subnet group for ElastiCache:
import * as cdk from 'aws-cdk-lib';Mettez à jour lib/work-stack.ts pour créer un groupe de sous-réseaux pour ElastiCache : import * as cdk from 'aws-cdk-lib' ;
importer * en tant que cdk depuis 'aws-cdk-lib' ;
import { Construct } from 'constructs';importer { Construct } à partir de 'constructions' ;
import * as EC2 from 'aws-cdk-lib/aws-ec2';importer * en tant qu'EC2 depuis 'aws-cdk-lib/aws-ec2' ;
import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';importer { aws_elasticache as ElastiCache } depuis 'aws-cdk-lib' ;
export class WorkStack extends cdk.Stack {la classe d'exportation WorkStack étend cdk.Stack {
private vpc: EC2.Vpc;vpc privé : EC2.Vpc ;
constructor(scope: Construct, id: string, props?: cdk.StackProps) {constructeur (portée : construction, identifiant : chaîne, accessoires ? : cdk.StackProps) {
const groupName = "ElastiCacheSubnetGroup";const groupName = "ElastiCacheSubnetGroup";
super(scope, id, props);super(portée, identifiant, accessoires);
this.vpc = new EC2.Vpc(this, 'cache_vpc');this.vpc = new EC2.Vpc(this, 'cache_vpc');
const subnetIds = [];const subnetIds = [];
for (const subnet of this.vpc.privateSubnets) {pour (sous-réseau const de this.vpc.privateSubnets) {
console.log("createElastiCache subnet ID: ", subnet.subnetId);console.log("ID de sous-réseau createElastiCache : ", subnet.subnetId);
subnetIds.push(subnet.subnetId);subnetIds.push(subnet.subnetId);
}}
}
const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {
cacheSubnetGroupName: groupName,cacheSubnetGroupName : nom_groupe,
subnetIds: subnetIds,identifiants de sous-réseau : identifiants de sous-réseau,
description: "ElastiCache Subnet Group",description : "Groupe de sous-réseaux ElastiCache",
}}
}
);
}}
}- Synthesize and deploy the stack:
cdk synth; cdk deploy --require-approval neverCreating an ElastiCache for Redis Replication Group
}Synthétisez et déployez le stack:cdk synth; cdk déployer --require-approval neverCréation d'un groupe de réplication ElastiCache pour Redis
- Create Security Group:
import * as cdk from 'aws-cdk-lib';Créer un groupe de sécurité : importer * en tant que cdk depuis 'aws-cdk-lib' ;
importer * en tant que cdk depuis 'aws-cdk-lib' ;
import { Construct } from 'constructs';importer { Construct } à partir de 'constructions' ;
import * as EC2 from 'aws-cdk-lib/aws-ec2';importer * en tant qu'EC2 depuis 'aws-cdk-lib/aws-ec2' ;
import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';importer { aws_elasticache as ElastiCache } depuis 'aws-cdk-lib' ;
import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';importer { SecurityGroup, Peer, Port } depuis 'aws-cdk-lib/aws-ec2' ;
export class WorkStack extends cdk.Stack {la classe d'exportation WorkStack étend cdk.Stack {
private vpc: EC2.Vpc;vpc privé : EC2.Vpc ;
constructor(scope: Construct, id: string, props?: cdk.StackProps) {constructeur (portée : construction, identifiant : chaîne, accessoires ? : cdk.StackProps) {
const groupName = "ElastiCacheSubnetGroup";const groupName = "ElastiCacheSubnetGroup";
super(scope, id, props);super(portée, identifiant, accessoires);
this.vpc = new EC2.Vpc(this, 'cache_vpc');this.vpc = new EC2.Vpc(this, 'cache_vpc');
const subnetIds = [];const subnetIds = [];
for (const subnet of this.vpc.privateSubnets) {pour (sous-réseau const de this.vpc.privateSubnets) {
console.log("createElastiCache subnet ID: ", subnet.subnetId);console.log("ID de sous-réseau createElastiCache : ", subnet.subnetId);
subnetIds.push(subnet.subnetId);subnetIds.push(subnet.subnetId);
}}
}
const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {
cacheSubnetGroupName: groupName,cacheSubnetGroupName : nom_groupe,
subnetIds: subnetIds,identifiants de sous-réseau : identifiants de sous-réseau,
description: "ElastiCache Subnet Group",description : "Groupe de sous-réseaux ElastiCache",
}}
}
);
const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {
vpc: this.vpc,vpc : ceci.vpc,
allowAllOutbound: true,allowAllOutbound : vrai,
description: "ElastiCache Security Group",description : "Groupe de sécurité ElastiCache",
securityGroupName: "ElastiCacheSecurityGroup",securityGroupName : "ElastiCacheSecurityGroup",
}}
}
);
securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis port");securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Port Redis");
}}
}- Create Replication Group:
import * as cdk from 'aws-cdk-lib';}Créer un groupe de réplication : importer * en tant que cdk depuis 'aws-cdk-lib' ;
importer * en tant que cdk depuis 'aws-cdk-lib' ;
import { Construct } from 'constructs';importer { Construct } à partir de 'constructions' ;
import * as EC2 from 'aws-cdk-lib/aws-ec2';importer * en tant qu'EC2 depuis 'aws-cdk-lib/aws-ec2' ;
import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';importer { aws_elasticache as ElastiCache } depuis 'aws-cdk-lib' ;
import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';importer { SecurityGroup, Peer, Port } depuis 'aws-cdk-lib/aws-ec2' ;
export class WorkStack extends cdk.Stack {la classe d'exportation WorkStack étend cdk.Stack {
private vpc: EC2.Vpc;vpc privé : EC2.Vpc ;
constructor(scope: Construct, id: string, props?: cdk.StackProps) {constructeur (portée : construction, identifiant : chaîne, accessoires ? : cdk.StackProps) {
const groupName = "ElastiCacheSubnetGroup";const groupName = "ElastiCacheSubnetGroup";
super(scope, id, props);super(portée, identifiant, accessoires);
this.vpc = new EC2.Vpc(this, 'cache_vpc');this.vpc = new EC2.Vpc(this, 'cache_vpc');
const subnetIds = [];const subnetIds = [];
for (const subnet of this.vpc.privateSubnets) {pour (sous-réseau const de this.vpc.privateSubnets) {
console.log("createElastiCache subnet ID: ", subnet.subnetId);console.log("ID de sous-réseau createElastiCache : ", subnet.subnetId);
subnetIds.push(subnet.subnetId);subnetIds.push(subnet.subnetId);
}}
}
const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {
cacheSubnetGroupName: groupName,cacheSubnetGroupName : nom_groupe,
subnetIds: subnetIds,identifiants de sous-réseau : identifiants de sous-réseau,
description: "ElastiCache Subnet Group",description : "Groupe de sous-réseaux ElastiCache",
}}
}
);
const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {
vpc: this.vpc,vpc : ceci.vpc,
allowAllOutbound: true,allowAllOutbound : vrai,
description: "ElastiCache Security Group",description : "Groupe de sécurité ElastiCache",
securityGroupName: "ElastiCacheSecurityGroup",securityGroupName : "ElastiCacheSecurityGroup",
}}
}
);
securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis port");securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Port Redis");
const cache = new ElastiCache.CfnReplicationGroup(this, "ReplicationGroup", {const cache = new ElastiCache.CfnReplicationGroup(this, "ReplicationGroup", {
replicationGroupDescription: "Elastic Cache Replication Group",replicationGroupDescription : "Groupe de réplication du cache élastique",
numCacheClusters: 1,numCacheClusters : 1,
automaticFailoverEnabled: false,automatiqueFailoverEnabled : faux,
engine: 'redis',moteur : 'redis',
cacheNodeType: 'cache.m7g.large',cacheNodeType : 'cache.m7g.large',
cacheSubnetGroupName: subnetGroup.ref,cacheSubnetGroupName : subnetGroup.ref,
securityGroupIds: [securityGroup.securityGroupId],securityGroupIds : [securityGroup.securityGroupId],
}}
}
);
// Establish dependency between cache and subnetGroup// Établit une dépendance entre le cache et subnetGroup
cache.addDependency(subnetGroup);cache.addDependency(subnetGroup);
}}
}- Synthesize and deploy the stack:
cdk synth; cdk deploy --require-approval neverDeploying ElastiCache for Redis Serverless Resources
}Synthétisez et déployez le stack:cdk synth; cdk déployer --require-approval neverDeploying ElastiCache pour les ressources sans serveur Redis
- Create Security Group:
import * as cdk from 'aws-cdk-lib';Créer un groupe de sécurité : importer * en tant que cdk depuis 'aws-cdk-lib' ;
importer * en tant que cdk depuis 'aws-cdk-lib' ;
import { Construct } from 'constructs';importer { Construct } à partir de 'constructions' ;
import * as EC2 from 'aws-cdk-lib/aws-ec2';importer * en tant qu'EC2 depuis 'aws-cdk-lib/aws-ec2' ;
import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';importer { aws_elasticache as ElastiCache } depuis 'aws-cdk-lib' ;
import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';importer { SecurityGroup, Peer, Port } depuis 'aws-cdk-lib/aws-ec2' ;
export class WorkStack extends cdk.Stack {la classe d'exportation WorkStack étend cdk.Stack {
private vpc: EC2.Vpc;vpc privé : EC2.Vpc ;
constructor(scope: Construct, id: string, props?: cdk.StackProps) {constructeur (portée : construction, identifiant : chaîne, accessoires ? : cdk.StackProps) {
const groupName = "ElastiCacheSubnetGroup";const groupName = "ElastiCacheSubnetGroup";
super(scope, id, props);super(portée, identifiant, accessoires);
this.vpc = new EC2.Vpc(this, 'cache_vpc');this.vpc = new EC2.Vpc(this, 'cache_vpc');
const subnetIds = [];const subnetIds = [];
for (const subnet of this.vpc.privateSubnets) {pour (sous-réseau const de this.vpc.privateSubnets) {
console.log("createElastiCache subnet ID: ", subnet.subnetId);console.log("ID de sous-réseau createElastiCache : ", subnet.subnetId);
subnetIds.push(subnet.subnetId);subnetIds.push(subnet.subnetId);
}}
}
const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {const subnetGroup = new ElastiCache.CfnSubnetGroup(this, "ElastiCacheSubnetGroup", {
cacheSubnetGroupName: groupName,cacheSubnetGroupName : nom_groupe,
subnetIds: subnetIds,identifiants de sous-réseau : identifiants de sous-réseau,
description: "ElastiCache Subnet Group",description : "Groupe de sous-réseaux ElastiCache",
}}
}
);
const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {
vpc: this.vpc,vpc : ceci.vpc,
allowAllOutbound: true,allowAllOutbound : vrai,
description: "ElastiCache Security Group",description : "Groupe de sécurité ElastiCache",
securityGroupName: "ElastiCacheSecurityGroup",securityGroupName : "ElastiCacheSecurityGroup",
}}
}
);
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
- Malware en Corée du Nord et Asia Express : la sortie de CoinEx dans un paysage numérique en évolution
- Sep 18, 2026 at 08:05 am
- Au milieu de l’augmentation des cybermenaces nord-coréennes et d’une scène cryptographique asiatique dynamique, CoinEx, une bourse fondée à Hong Kong, ferme ses portes après neuf ans, signalant un moment charnière pour les marchés régionaux des actifs numériques et les paysages réglementaires.
-
-
- Vitalik Buterin conteste le récit catastrophique de la cybersécurité de l'IA et plaide pour une vérification formelle
- Sep 18, 2026 at 12:05 am
- Vitalik Buterin, co-fondateur d'Ethereum, réfute le « récit catastrophique de l'IA » en matière de cybersécurité, affirmant le potentiel de l'IA à renforcer les défenses grâce à une vérification formelle, une position étayée par les recherches en cours sur la sécurité d'Ethereum.
-
- AML RightSource remporte le prestigieux prix Dobra-Sight pour l'excellence en matière de conformité des actifs numériques
- Sep 18, 2026 at 12:05 am
- AML RightSource obtient la reconnaissance Dobra-Sight pour son rôle central dans l'accompagnement des entreprises dans le paysage complexe de la conformité des actifs numériques et des réglementations AML.
-
- Solana et XRP naviguent dans les marées changeantes du marché de la cryptographie, avec un clin d'œil aux tendances plus larges de tokenisation
- Sep 17, 2026 at 08:05 pm
- Solana et XRP sont confrontés à des niveaux de support clés dans un contexte de ralentissement du marché. Pendant ce temps, Solana se prépare pour sa conférence à Londres, mettant l'accent sur la tokenisation, tandis que XRP trouve une nouvelle utilité via les FAssets de Flare. Un regard sur l’évolution du paysage cryptographique.
-
- Compte HBO Max Reddit piraté pour une attaque de logiciel malveillant de vol de crypto : une nouvelle vague d'escroqueries sophistiquées
- Sep 17, 2026 at 12:05 pm
- Une campagne sophistiquée de malware, baptisée PasteSwitch, a exploité le compte HBO Max Reddit vérifié pour distribuer des logiciels malveillants de vol de cryptographie, mettant en évidence l'évolution des menaces sur les comptes d'utilisateurs et les actifs numériques.
-
- Le comité de la Chambre fait progresser le projet de loi sur la réserve stratégique de Bitcoin, façonnant l'avenir des avoirs fédéraux en cryptographie
- Sep 17, 2026 at 12:05 pm
- Le comité des services financiers de la Chambre des représentants a approuvé l'American Reserve Modernization Act, faisant avancer le projet de loi sur la réserve stratégique de Bitcoin pour établir des stocks fédéraux de Bitcoin et d'actifs numériques.
-
- Projet de loi fiscale sur les crypto-monnaies : les actifs numériques sont confrontés à de nouvelles règles fiscales, mais la clarté reste insaisissable
- Sep 17, 2026 at 08:05 am
- La Chambre a avancé un projet de loi fiscale sur les crypto-monnaies visant à aligner les règles fiscales sur les actifs numériques avec la finance traditionnelle, offrant un certain allègement mais laissant des questions clés, notamment en matière d'exploitation minière et de jalonnement, non résolues.
-
- MemeToro révolutionne les lancements de Memecoin sur la chaîne BNB avec l'IA et des contrats intelligents de lancement équitable
- Sep 17, 2026 at 08:05 am
- MemeToro présente une rampe de lancement alimentée par l'IA et un dépôt de lancement équitable sur BNB Chain, établissant une nouvelle norme en matière de transparence et de sécurité dans les actualités memecoin.

































