AWS CDK 요약, TIPS
6470 단어 TypeScriptAWSCDK
개요
2019년 7월 AWS CDK가 GA(generally available)가 되면서 많은 사람들이 신경을 쓰고 있다고 생각합니다.저는 최근에 갑자기 AWS CDK를 사용하기 시작했기 때문에 입문 지식부터 요점까지 정리해 보려고 합니다.주변 엔지니어들의 소감을 살펴보면'너무 좋다'는 의견도 많으니 꼭 한번 시도해 보세요.
참고로 각 자원에 대한 기술방법은 여러 가지 기사가 나왔기 때문에 생략하였습니다. 본 기사는 개관과 TIPS를 기재하였습니다.
AWS CDK
세션 자료·애니메이션 일람 - AWS DevDay Tokyo 2019|AWS의 B-3
hello world $ npm i -g aws-cdk // cdkコマンドをインストール
$ mkdir hello-cdk
$ cd hello-cdk
$ cdk init sample-app --language=typescript
이렇게 하면 응용 프로그램의 모형을 생성할 수 있다.
파일 계층
상당히 간단하다.
helle-cdk
binlib에 정의된 창고를 불러오고 초기화합니다.
| - 모든 lib 창고에 따라 파일을 분리해서 정의합니다.
|-- test
|-- cdk.json
|-- tsconfig.json
|-- jest.config.js
cdk.json은 deploy의 행동을 설명합니다.{
"app": "npx ts-node bin/hello.ts"
}
ts-node 같은 tsc나 웹 팩 등 컴파일하지 않고'node'처럼 실행하는 도구, bin/hello를 사용합니다.ts를 실행하고 있습니다.
배치 $ cdk deploy
그리고$ cdk synth
에서 클라우드 형식 템플릿 생성
개발
개발의 추진 방법을 설명하다.
전제 지식
구조 함수
최초로 생성된lib/hello-stack.ts는 이런 느낌이에요.
lib/hello-stack.tsexport class HelloStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const queue = new sqs.Queue(this, 'HelloQueue', {
visibilityTimeout: cdk.Duration.seconds(300)
});
const topic = new sns.Topic(this, 'HelloTopic');
topic.addSubscription(new subs.SqsSubscription(queue));
}
}
예를 들어, SNS Queue는 new sqs.Queue...
에서 생성됩니다.구조 함수의 매개 변수는 기본적으로 1this(cdk.Stack), 2id:string, 3개의 매개 변수입니다.참고로 이때 이동하는 구조 함수를 hight-level 구조라고 합니다.이것은 기본 설정, 일반적으로 이렇게 하는 최선의 실천 설정, 기본 IAM 정책 등을 포함한 다기능 일체형 소프트웨어 패키지와 같다.따라서 visibilityTimeout
만 지정되지만 양호한 SQL::Queue가 생성됩니다.
다른 한편, 저급 구축도 존재한다. 클래스 이름의 시작에는 반드시'Cfn'이 있어야 한다.그것은 구름 형식과 일일이 대응하는 속성을 제공한다.해보다CfnQueue 매개 변수에 설정된 "visibility Timeout"의 정의는 다음과 같습니다. 여기에는 일대일로 대응하는 CloudFormation 템플릿 속성에 대한 링크가 열거되어 있습니다.(완전 친절)/**
* `AWS::SQS::Queue.VisibilityTimeout`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-visiblitytimeout
*/
readonly visibilityTimeout?: number;
고급 구축은 저급 구축과 결합하여 실현된 것이다.두 가지 용도로 기본적으로 높은 등급을 사용하지만, 대응하지 않는 새로운 자원을 설정하거나 상세한 설정을 할 때 낮은 등급의 구축을 사용해야 할 수도 있다.
문서 보기
공식 문서를 훑어보다.
AWS CDK · AWS CDK Reference Documentation
왼쪽 네비게이션 시스템에서 자원의 분류가 일렬로 배열되어 있으니 필요한 부분을 참조하십시오.처음 사용하는 자원에 대해 "overview"를 확인하면 이해하기 쉬우며 코드 단계에서 대체적으로 사용 방법이 쓰여 있다.
그리고 구축에서 필요한 자원에 대한 상세한 정보를 보십시오.
TIPS
작법은 여러 가지가 있다
여러 자원 간의 의존 관계를 정의할 때, 왕왕 여러 개의 문법이 존재한다.예를 들어 S3에서 트리거 이벤트를 설정할 때, S3에서 트리거 이벤트를 정의할 수도 있고, S3에서 호출된 Lambda의 이벤트 원본에서 S3를 지정할 수도 있다.따라서 방법을 망설일 때 너무 구애받지 말고 응용 프로그램에 따라 어떤 사고가 이해하기 쉬운지 판단하는 것이 좋다.
필요한 리소스 직접 추가
이번 한스톤에는 설치하지 않은 자원이 많다.필요한 물건npm i --save @aws-cdk/aws-lambda
버려진 함수에 대한 지원이 부족합니다.
이때 내 환경 문제일 수도 있지만, 때로는 유형 오류가 발생할 수도 있다.이 경우 다음 명령을 실행하여 해결합니다.cd node_modules/@aws-cdk
rm -rf */node_modules
구린내가 많다
2019년 7월에야 가가 됐기 때문에 곧 버그라고 할 수 있는 증상이 뚜렷하게 나타날 것이다. 현재 Issue도 많이 상승했다.
그러나 비교적 작은 설정까지 실용적인 수준으로 사용하기 쉬운 도구이기 때문에 코드에 모든 것을 표현하고 싶은 과격파 사상과 합의를 잘 하면서 가능한 범위 내에서 사용하는 것이 좋다고 생각합니다.
Reference
이 문제에 관하여(AWS CDK 요약, TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hedrall/items/7bda81eae6b6dc04d5ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ npm i -g aws-cdk // cdkコマンドをインストール
$ mkdir hello-cdk
$ cd hello-cdk
$ cdk init sample-app --language=typescript
상당히 간단하다.
helle-cdk
binlib에 정의된 창고를 불러오고 초기화합니다.
| - 모든 lib 창고에 따라 파일을 분리해서 정의합니다.
|-- test
|-- cdk.json
|-- tsconfig.json
|-- jest.config.js
cdk.json은 deploy의 행동을 설명합니다.
{
"app": "npx ts-node bin/hello.ts"
}
ts-node 같은 tsc나 웹 팩 등 컴파일하지 않고'node'처럼 실행하는 도구, bin/hello를 사용합니다.ts를 실행하고 있습니다.배치 $ cdk deploy
그리고$ cdk synth
에서 클라우드 형식 템플릿 생성
개발
개발의 추진 방법을 설명하다.
전제 지식
구조 함수
최초로 생성된lib/hello-stack.ts는 이런 느낌이에요.
lib/hello-stack.tsexport class HelloStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const queue = new sqs.Queue(this, 'HelloQueue', {
visibilityTimeout: cdk.Duration.seconds(300)
});
const topic = new sns.Topic(this, 'HelloTopic');
topic.addSubscription(new subs.SqsSubscription(queue));
}
}
예를 들어, SNS Queue는 new sqs.Queue...
에서 생성됩니다.구조 함수의 매개 변수는 기본적으로 1this(cdk.Stack), 2id:string, 3개의 매개 변수입니다.참고로 이때 이동하는 구조 함수를 hight-level 구조라고 합니다.이것은 기본 설정, 일반적으로 이렇게 하는 최선의 실천 설정, 기본 IAM 정책 등을 포함한 다기능 일체형 소프트웨어 패키지와 같다.따라서 visibilityTimeout
만 지정되지만 양호한 SQL::Queue가 생성됩니다.
다른 한편, 저급 구축도 존재한다. 클래스 이름의 시작에는 반드시'Cfn'이 있어야 한다.그것은 구름 형식과 일일이 대응하는 속성을 제공한다.해보다CfnQueue 매개 변수에 설정된 "visibility Timeout"의 정의는 다음과 같습니다. 여기에는 일대일로 대응하는 CloudFormation 템플릿 속성에 대한 링크가 열거되어 있습니다.(완전 친절)/**
* `AWS::SQS::Queue.VisibilityTimeout`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-visiblitytimeout
*/
readonly visibilityTimeout?: number;
고급 구축은 저급 구축과 결합하여 실현된 것이다.두 가지 용도로 기본적으로 높은 등급을 사용하지만, 대응하지 않는 새로운 자원을 설정하거나 상세한 설정을 할 때 낮은 등급의 구축을 사용해야 할 수도 있다.
문서 보기
공식 문서를 훑어보다.
AWS CDK · AWS CDK Reference Documentation
왼쪽 네비게이션 시스템에서 자원의 분류가 일렬로 배열되어 있으니 필요한 부분을 참조하십시오.처음 사용하는 자원에 대해 "overview"를 확인하면 이해하기 쉬우며 코드 단계에서 대체적으로 사용 방법이 쓰여 있다.
그리고 구축에서 필요한 자원에 대한 상세한 정보를 보십시오.
TIPS
작법은 여러 가지가 있다
여러 자원 간의 의존 관계를 정의할 때, 왕왕 여러 개의 문법이 존재한다.예를 들어 S3에서 트리거 이벤트를 설정할 때, S3에서 트리거 이벤트를 정의할 수도 있고, S3에서 호출된 Lambda의 이벤트 원본에서 S3를 지정할 수도 있다.따라서 방법을 망설일 때 너무 구애받지 말고 응용 프로그램에 따라 어떤 사고가 이해하기 쉬운지 판단하는 것이 좋다.
필요한 리소스 직접 추가
이번 한스톤에는 설치하지 않은 자원이 많다.필요한 물건npm i --save @aws-cdk/aws-lambda
버려진 함수에 대한 지원이 부족합니다.
이때 내 환경 문제일 수도 있지만, 때로는 유형 오류가 발생할 수도 있다.이 경우 다음 명령을 실행하여 해결합니다.cd node_modules/@aws-cdk
rm -rf */node_modules
구린내가 많다
2019년 7월에야 가가 됐기 때문에 곧 버그라고 할 수 있는 증상이 뚜렷하게 나타날 것이다. 현재 Issue도 많이 상승했다.
그러나 비교적 작은 설정까지 실용적인 수준으로 사용하기 쉬운 도구이기 때문에 코드에 모든 것을 표현하고 싶은 과격파 사상과 합의를 잘 하면서 가능한 범위 내에서 사용하는 것이 좋다고 생각합니다.
Reference
이 문제에 관하여(AWS CDK 요약, TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hedrall/items/7bda81eae6b6dc04d5ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cdk deploy
$ cdk synth
개발의 추진 방법을 설명하다.
전제 지식
구조 함수
최초로 생성된lib/hello-stack.ts는 이런 느낌이에요.
lib/hello-stack.ts
export class HelloStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const queue = new sqs.Queue(this, 'HelloQueue', {
visibilityTimeout: cdk.Duration.seconds(300)
});
const topic = new sns.Topic(this, 'HelloTopic');
topic.addSubscription(new subs.SqsSubscription(queue));
}
}
예를 들어, SNS Queue는 new sqs.Queue...
에서 생성됩니다.구조 함수의 매개 변수는 기본적으로 1this(cdk.Stack), 2id:string, 3개의 매개 변수입니다.참고로 이때 이동하는 구조 함수를 hight-level 구조라고 합니다.이것은 기본 설정, 일반적으로 이렇게 하는 최선의 실천 설정, 기본 IAM 정책 등을 포함한 다기능 일체형 소프트웨어 패키지와 같다.따라서 visibilityTimeout
만 지정되지만 양호한 SQL::Queue가 생성됩니다.다른 한편, 저급 구축도 존재한다. 클래스 이름의 시작에는 반드시'Cfn'이 있어야 한다.그것은 구름 형식과 일일이 대응하는 속성을 제공한다.해보다CfnQueue 매개 변수에 설정된 "visibility Timeout"의 정의는 다음과 같습니다. 여기에는 일대일로 대응하는 CloudFormation 템플릿 속성에 대한 링크가 열거되어 있습니다.(완전 친절)
/**
* `AWS::SQS::Queue.VisibilityTimeout`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-visiblitytimeout
*/
readonly visibilityTimeout?: number;
고급 구축은 저급 구축과 결합하여 실현된 것이다.두 가지 용도로 기본적으로 높은 등급을 사용하지만, 대응하지 않는 새로운 자원을 설정하거나 상세한 설정을 할 때 낮은 등급의 구축을 사용해야 할 수도 있다.문서 보기
공식 문서를 훑어보다.
AWS CDK · AWS CDK Reference Documentation
왼쪽 네비게이션 시스템에서 자원의 분류가 일렬로 배열되어 있으니 필요한 부분을 참조하십시오.처음 사용하는 자원에 대해 "overview"를 확인하면 이해하기 쉬우며 코드 단계에서 대체적으로 사용 방법이 쓰여 있다.
그리고 구축에서 필요한 자원에 대한 상세한 정보를 보십시오.
TIPS
작법은 여러 가지가 있다
여러 자원 간의 의존 관계를 정의할 때, 왕왕 여러 개의 문법이 존재한다.예를 들어 S3에서 트리거 이벤트를 설정할 때, S3에서 트리거 이벤트를 정의할 수도 있고, S3에서 호출된 Lambda의 이벤트 원본에서 S3를 지정할 수도 있다.따라서 방법을 망설일 때 너무 구애받지 말고 응용 프로그램에 따라 어떤 사고가 이해하기 쉬운지 판단하는 것이 좋다.
필요한 리소스 직접 추가
이번 한스톤에는 설치하지 않은 자원이 많다.필요한 물건npm i --save @aws-cdk/aws-lambda
버려진 함수에 대한 지원이 부족합니다.
이때 내 환경 문제일 수도 있지만, 때로는 유형 오류가 발생할 수도 있다.이 경우 다음 명령을 실행하여 해결합니다.cd node_modules/@aws-cdk
rm -rf */node_modules
구린내가 많다
2019년 7월에야 가가 됐기 때문에 곧 버그라고 할 수 있는 증상이 뚜렷하게 나타날 것이다. 현재 Issue도 많이 상승했다.
그러나 비교적 작은 설정까지 실용적인 수준으로 사용하기 쉬운 도구이기 때문에 코드에 모든 것을 표현하고 싶은 과격파 사상과 합의를 잘 하면서 가능한 범위 내에서 사용하는 것이 좋다고 생각합니다.
Reference
이 문제에 관하여(AWS CDK 요약, TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hedrall/items/7bda81eae6b6dc04d5ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm i --save @aws-cdk/aws-lambda
cd node_modules/@aws-cdk
rm -rf */node_modules
Reference
이 문제에 관하여(AWS CDK 요약, TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hedrall/items/7bda81eae6b6dc04d5ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)