2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

generative-ai-use-cases-jp を同一アカウントに 2 つデプロイしてみた

Posted at

generative-ai-use-cases-jp を同一 AWS アカウントで 2 つデプロイしたい

Tips 的な備忘録記事です。

GitHub で公開されている generative-ai-use-cases-jp があります。会社の中で複数の部署が存在するときに、Kendra Index を別々に保持して、データを分離したいときがあります。このときに、何も考えずにデプロイを行うと 1 個の AWS アカウントの中で、AWS CDK の Stack ID が重複し、個別にデプロイができません。

そこで、次のファイルを変更することで AWS CDK の Stack ID を変更でき、個別にデプロイができます。

Git Clone してきたディレクトリで、 /package/cdk/bin/generative-ai-use-cases.ts を開きます。次のようなファイルになっているはずです。

#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { IConstruct } from 'constructs';
import { GenerativeAiUseCasesStack } from '../lib/generative-ai-use-cases-stack';

class DeletionPolicySetter implements cdk.IAspect {
  constructor(private readonly policy: cdk.RemovalPolicy) {}

  visit(node: IConstruct): void {
    if (node instanceof cdk.CfnResource) {
      node.applyRemovalPolicy(this.policy);
    }
  }
}

const app = new cdk.App();
const stack = new GenerativeAiUseCasesStack(app, 'GenerativeAiUseCasesStack');

cdk.Aspects.of(stack).add(new DeletionPolicySetter(cdk.RemovalPolicy.DESTROY));

GenerativeAiUseCasesStack の部分を好きな ID に変更することで、同一の AWS アカウント上で 2 つのデプロイが可能です。

変更前

const stack = new GenerativeAiUseCasesStack(app, 'GenerativeAiUseCasesStack');

変更後

const stack = new GenerativeAiUseCasesStack(app, '好きなID');

この後、次のコマンドを実行しデプロイを行うことで、個別に構成が可能です。

npm ci
npm run cdk:deploy
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?