bitcoin
bitcoin

$91164.07 USD 

0.66%

ethereum
ethereum

$3157.70 USD 

1.43%

tether
tether

$1.00 USD 

0.06%

solana
solana

$239.65 USD 

0.70%

bnb
bnb

$618.85 USD 

-1.00%

xrp
xrp

$1.12 USD 

0.24%

dogecoin
dogecoin

$0.374046 USD 

0.70%

usd-coin
usd-coin

$1.00 USD 

0.00%

cardano
cardano

$0.737822 USD 

0.49%

tron
tron

$0.203246 USD 

0.25%

shiba-inu
shiba-inu

$0.000025 USD 

-0.82%

toncoin
toncoin

$5.65 USD 

3.31%

avalanche
avalanche

$35.02 USD 

-0.65%

sui
sui

$3.71 USD 

-3.73%

chainlink
chainlink

$15.04 USD 

5.53%

暗号通貨のニュース記事

AWS CDK と TypeScript を使用して Amazon ElastiCache for Redis クラスターをデプロイする | AWS データベース ブログ

2024/04/05 23:25

AWS Cloud Development Kit (AWS CDK) を使用すると、1 行のコードで AWS リソースを作成できます。たとえば、次の行を使用して TypeScript で VPC を作成できます: new EC2.Vpc(this, 'cache_vpc'); ただし、サポートするリソースを作成する必要があることが多いため、いくつかの AWS リソースには数行のコードが必要です。たとえば、Redis CfnReplicationGroup 用の Amazon ElastiCache を作成する前に、CfnSubnetGroup と SecurityGroup を作成する必要があります。この要約では、AWS CDK と TypeScript を使用して Amazon ElastiCache クラスターをデプロイする手順を説明します。 Redis サーバーレス用 Amazon ElastiCache を使用してリソースをデプロイする方法も示します。

AWS CDK と TypeScript を使用して Amazon ElastiCache for Redis クラスターをデプロイする | AWS データベース ブログ

Creating AWS Resources with AWS Cloud Development Kit (AWS CDK) for ElastiCache

ElastiCache 用の AWS クラウド開発キット (AWS CDK) を使用した AWS リソースの作成

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) を使用すると、開発者は TypeScript などの使い慣れたプログラミング言語を使用して AWS リソースを定義およびプロビジョニングできます。この記事では、AWS CDK と TypeScript を使用して Amazon ElastiCache クラスターと ElastiCache サーバーレス リソースをデプロイするプロセスを読者に説明します。

Prerequisites

前提条件

  • AWS account
  • AWS Command Line Interface (AWS CLI)
  • AWS CDK
  • Node.js 16.14.0 or later

Creating Prerequisite Resources

AWS アカウントAWS コマンドラインインターフェイス (AWS CLI)AWS CDKNode.js 16.14.0 以降前提条件リソースの作成

  1. Install AWS CDK:
npm install -g aws-cdk

AWS CDK をインストールします:npm install -g aws-cdk

cdk --version
  1. Create AWS CDK Directory Structure:
mkdir work & cd work

cdk --versionAWS CDK ディレクトリ構造の作成:mkdir 作業と cd 作業

cdk init --language typescript
  1. Install NPM Packages:
npm install
  1. Create VPC:

In the lib/work-stack.ts file, create a VPC:

cdk init -- language typescriptNPM パッケージをインストールします:npm installVPC を作成します:lib/work-stack.ts ファイルで、VPC を作成します。

import * as cdk from 'aws-cdk-lib';

import * から cdk として 'aws-cdk-lib';

import { Construct } from 'constructs';

import { Construct } from 'constructs';

import * as EC2 from 'aws-cdk-lib/aws-ec2';

import * 'aws-cdk-lib/aws-ec2' から EC2 としてインポートします。

export class WorkStack extends cdk.Stack {

エクスポート クラス WorkStack extends cdk.Stack {

private vpc: EC2.Vpc;

プライベート vpc: EC2.Vpc;

constructor(scope: Construct, id: string, props?: cdk.StackProps) {

コンストラクター(スコープ: Construct、id: string、props?: cdk.StackProps) {

super(scope, id, props);

super(スコープ、ID、小道具);

this.vpc = new EC2.Vpc(this, 'cache_vpc');

this.vpc = 新しい EC2.Vpc(this, 'cache_vpc');

}

}

}
  1. Bootstrap AWS Environment:
cdk bootstrap
  1. Synthesize CloudFormation Template:
cdk synth
  1. Deploy VPC:
cdk deploy --require-approval never

Create Subnet Group

}ブートストラップ AWS 環境:cdk bootstrapCloudFormation テンプレートの合成:cdk synthVPC のデプロイ:cdkdeploy --require-approval NeverCreate サブネット グループ

  1. Update lib/work-stack.ts to create a subnet group for ElastiCache:
import * as cdk from 'aws-cdk-lib';

lib/work-stack.ts を更新して、ElastiCache:import * as cdk from 'aws-cdk-lib'; のサブネット グループを作成します。

import * から cdk として 'aws-cdk-lib';

import { Construct } from 'constructs';

import { Construct } from 'constructs';

import * as EC2 from 'aws-cdk-lib/aws-ec2';

import * 'aws-cdk-lib/aws-ec2' から EC2 としてインポートします。

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

export class WorkStack extends cdk.Stack {

エクスポート クラス WorkStack extends cdk.Stack {

private vpc: EC2.Vpc;

プライベート vpc: EC2.Vpc;

constructor(scope: Construct, id: string, props?: cdk.StackProps) {

コンストラクター(スコープ: Construct、id: string、props?: cdk.StackProps) {

const groupName = "ElastiCacheSubnetGroup";

const groupName = "ElastiCacheSubnetGroup";

super(scope, id, props);

super(スコープ、ID、小道具);

this.vpc = new EC2.Vpc(this, 'cache_vpc');

this.vpc = 新しい EC2.Vpc(this, 'cache_vpc');

const subnetIds = [];

const サブネット ID = [];

for (const subnet of this.vpc.privateSubnets) {

for (this.vpc.privateSubnets の const サブネット) {

console.log("createElastiCache subnet ID: ", subnet.subnetId);

console.log("createElastiCache サブネット ID: ", 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,

キャッシュサブネットグループ名: グループ名、

subnetIds: subnetIds,

サブネット ID: サブネット ID、

description: "ElastiCache Subnet Group",

説明: "ElastiCache サブネット グループ",

}

}

}

); }

}

}
  1. Synthesize and deploy the stack:
cdk synth; cdk deploy --require-approval never

Creating an ElastiCache for Redis Replication Group

} stack:cdk synth を合成してデプロイします。 cdkdeploy --require-approvalneverRedis レプリケーション グループの ElastiCache の作成

  1. Create Security Group:
import * as cdk from 'aws-cdk-lib';

セキュリティグループを作成します:import * as cdk from 'aws-cdk-lib';

import * から cdk として 'aws-cdk-lib';

import { Construct } from 'constructs';

import { Construct } from 'constructs';

import * as EC2 from 'aws-cdk-lib/aws-ec2';

import * 'aws-cdk-lib/aws-ec2' から EC2 としてインポートします。

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

export class WorkStack extends cdk.Stack {

エクスポート クラス WorkStack extends cdk.Stack {

private vpc: EC2.Vpc;

プライベート vpc: EC2.Vpc;

constructor(scope: Construct, id: string, props?: cdk.StackProps) {

コンストラクター(スコープ: Construct、id: string、props?: cdk.StackProps) {

const groupName = "ElastiCacheSubnetGroup";

const groupName = "ElastiCacheSubnetGroup";

super(scope, id, props);

super(スコープ、ID、小道具);

this.vpc = new EC2.Vpc(this, 'cache_vpc');

this.vpc = 新しい EC2.Vpc(this, 'cache_vpc');

const subnetIds = [];

const サブネット ID = [];

for (const subnet of this.vpc.privateSubnets) {

for (this.vpc.privateSubnets の const サブネット) {

console.log("createElastiCache subnet ID: ", subnet.subnetId);

console.log("createElastiCache サブネット ID: ", 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,

キャッシュサブネットグループ名: グループ名、

subnetIds: subnetIds,

サブネット ID: サブネット ID、

description: "ElastiCache Subnet Group",

説明: "ElastiCache サブネット グループ",

}

}

}

); const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

vpc: this.vpc,

vpc: this.vpc、

allowAllOutbound: true,

allowAllOutbound: true、

description: "ElastiCache Security Group",

説明: "ElastiCache セキュリティ グループ",

securityGroupName: "ElastiCacheSecurityGroup",

securityGroupName: "ElastiCacheSecurityGroup",

}

}

}

); securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis port");

securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis ポート");

}

}

}
  1. Create Replication Group:
import * as cdk from 'aws-cdk-lib';

}レプリケーショングループを作成します:import * as cdk from 'aws-cdk-lib';

import * から cdk として 'aws-cdk-lib';

import { Construct } from 'constructs';

import { Construct } from 'constructs';

import * as EC2 from 'aws-cdk-lib/aws-ec2';

import * 'aws-cdk-lib/aws-ec2' から EC2 としてインポートします。

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

export class WorkStack extends cdk.Stack {

エクスポート クラス WorkStack extends cdk.Stack {

private vpc: EC2.Vpc;

プライベート vpc: EC2.Vpc;

constructor(scope: Construct, id: string, props?: cdk.StackProps) {

コンストラクター(スコープ: Construct、id: string、props?: cdk.StackProps) {

const groupName = "ElastiCacheSubnetGroup";

const groupName = "ElastiCacheSubnetGroup";

super(scope, id, props);

super(スコープ、ID、小道具);

this.vpc = new EC2.Vpc(this, 'cache_vpc');

this.vpc = 新しい EC2.Vpc(this, 'cache_vpc');

const subnetIds = [];

const サブネット ID = [];

for (const subnet of this.vpc.privateSubnets) {

for (this.vpc.privateSubnets の const サブネット) {

console.log("createElastiCache subnet ID: ", subnet.subnetId);

console.log("createElastiCache サブネット ID: ", 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,

キャッシュサブネットグループ名: グループ名、

subnetIds: subnetIds,

サブネット ID: サブネット ID、

description: "ElastiCache Subnet Group",

説明: "ElastiCache サブネット グループ",

}

}

}

); const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

vpc: this.vpc,

vpc: this.vpc、

allowAllOutbound: true,

allowAllOutbound: true、

description: "ElastiCache Security Group",

説明: "ElastiCache セキュリティ グループ",

securityGroupName: "ElastiCacheSecurityGroup",

securityGroupName: "ElastiCacheSecurityGroup",

}

}

}

); securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis port");

securityGroup.addIngressRule(Peer.anyIpv4(), Port.tcp(6379), "Redis ポート");

const cache = new ElastiCache.CfnReplicationGroup(this, "ReplicationGroup", {

const queue = new ElastiCache.CfnReplicationGroup(this, "ReplicationGroup", {

replicationGroupDescription: "Elastic Cache Replication Group",

replicationGroupDescription: "エラスティック キャッシュ レプリケーション グループ",

numCacheClusters: 1,

numCacheClusters: 1、

automaticFailoverEnabled: false,

自動フェイルオーバー有効: false、

engine: 'redis',

エンジン: 'redis'、

cacheNodeType: 'cache.m7g.large',

キャッシュノードタイプ: 'cache.m7g.large',

cacheSubnetGroupName: subnetGroup.ref,

キャッシュサブネットグループ名: subnetGroup.ref、

securityGroupIds: [securityGroup.securityGroupId],

securityGroupIds: [securityGroup.securityGroupId],

}

}

}

); // Establish dependency between cache and subnetGroup

// キャッシュと subnetGroup の間の依存関係を確立します

cache.addDependency(subnetGroup);

キャッシュ.addDependency(サブネットグループ);

}

}

}
  1. Synthesize and deploy the stack:
cdk synth; cdk deploy --require-approval never

Deploying ElastiCache for Redis Serverless Resources

} stack:cdk synth を合成してデプロイします。 cdkdeploy --require-approvalneverRedis サーバーレス リソース用の ElastiCache のデプロイ

  1. Create Security Group:
import * as cdk from 'aws-cdk-lib';

セキュリティグループを作成します:import * as cdk from 'aws-cdk-lib';

import * から cdk として 'aws-cdk-lib';

import { Construct } from 'constructs';

import { Construct } from 'constructs';

import * as EC2 from 'aws-cdk-lib/aws-ec2';

import * 'aws-cdk-lib/aws-ec2' から EC2 としてインポートします。

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { aws_elasticache as ElastiCache } from 'aws-cdk-lib';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

import { SecurityGroup, Peer, Port } from 'aws-cdk-lib/aws-ec2';

export class WorkStack extends cdk.Stack {

エクスポート クラス WorkStack extends cdk.Stack {

private vpc: EC2.Vpc;

プライベート vpc: EC2.Vpc;

constructor(scope: Construct, id: string, props?: cdk.StackProps) {

コンストラクター(スコープ: Construct、id: string、props?: cdk.StackProps) {

const groupName = "ElastiCacheSubnetGroup";

const groupName = "ElastiCacheSubnetGroup";

super(scope, id, props);

super(スコープ、ID、小道具);

this.vpc = new EC2.Vpc(this, 'cache_vpc');

this.vpc = 新しい EC2.Vpc(this, 'cache_vpc');

const subnetIds = [];

const サブネット ID = [];

for (const subnet of this.vpc.privateSubnets) {

for (this.vpc.privateSubnets の const サブネット) {

console.log("createElastiCache subnet ID: ", subnet.subnetId);

console.log("createElastiCache サブネット ID: ", 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,

キャッシュサブネットグループ名: グループ名、

subnetIds: subnetIds,

サブネット ID: サブネット ID、

description: "ElastiCache Subnet Group",

説明: "ElastiCache サブネット グループ",

}

}

}

); const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

const securityGroup = new SecurityGroup(this, "ElastiCacheSecurityGroup", {

vpc: this.vpc,

vpc: this.vpc、

allowAllOutbound: true,

allowAllOutbound: true、

description: "ElastiCache Security Group",

説明: "ElastiCache セキュリティ グループ",

securityGroupName: "ElastiCacheSecurityGroup",

securityGroupName: "ElastiCacheSecurityGroup",

}

}

}

);

免責事項:info@kdj.com

提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。

このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。

2024年11月19日 に掲載されたその他の記事