dev.to/aws-builders의 영문 블로그를 수집해서 한국어로 소개해주는 프로젝트.
-
Getting Started With the AWS CDK를 참고해서 cdk를 설치하고, cdk를 실행할 때 사용할 IAM User를 생성한 후,
~/.aws/config
에 등록한다. 예를 들어서,cdk_user
라는 IAM User를 생성 한 후, 아래와 같이~/.aws/config
에 추가로 등록한다.$ cat ~/.aws/config [profile cdk_user] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY region=us-east-1
-
Lambda Layer에 등록할 Python 패키지를 저장할 s3 bucket을 생성한다. 예를 들어,
lambda-layer-resources
라는 이름의 s3 bucket을 생성한다.$ aws s3api create-bucket --bucket lambda-layer-resources --region us-east-1
-
아래와 같이 소스 코드를 git clone 한 후에,
build-aws-lambda-layer.sh
를 이용해서 Lambda Layer에 등록할 Python 패키지를 생성해서 s3에 저장한다.$ git clone https://github.com/ksmin23/devto-rss-feed-trans-bot.git $ cd devto-rss-feed-trans-bot $ python3 -m venv .env $ source .env/bin/activate (.env) $ pip install -r requirements.txt (.env) $ ./build-aws-lambda-layer.sh lambda-layer-resources/var
-
cdk.context.json
파일을 열어서,lib_bucket_name
에 Lambda Layer에 등록할 Python 패키지가 저장된 s3 bucket 이름을 적는다
dev.to/aws-builders의 영문 블로그 포스트를 한국어로 번역하기 때문에trans_src_lang
을en
,trans_dest_lang
을ko
로 각각 설정한다.
수집한 블로그 포스트 내용을 저장할 DynamoDB 테이블을 미리 생성한 경우,dynamodb_table_name
에 DynamoDB 테이블 이름을 넣는다.dynamodb_table_name
설정이 없는 경우, 자동으로 DynamoDB 테이블을 생성한다.
RSS Feed를 읽는 주기를 변경하고자 하는 경우,event_schedule
을 crontab 문법 처럼 등록 한다.
event_schedule
기본 값은 매 3시간 마다 RSS Feed를 읽어서 번역한다.{ "vpc_name": "Your-VPC-Name", "lib_bucket_name": "Your-S3-Bucket-Name-Of-Lib", "dynamodb_table_name": "Your-DynamoDB-Tablename", "dry_run": "false", "trans_src_lang": "en", "trans_dest_lang": "ko", "event_schedule": "0 */3 * * *" }
-
cdk deploy
명령어를 이용해서 배포한다.(.env) $ export CDK_DEFAULT_ACCOUNT=$(aws sts get-caller-identity --query Account --output text) (.env) $ export CDK_DEFAULT_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region) (.env) $ cdk --profile=cdk_user deploy
-
배포한 애플리케이션을 삭제하려면,
cdk destroy
명령어를 아래와 같이 실행 한다.(.env) $ cdk --profile=cdk_user destroy
cdk ls
list all stacks in the appcdk synth
emits the synthesized CloudFormation templatecdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk docs
open CDK documentation