0. 개발환경 Terraform : 1.7.3 Python : 3.12.x 1. 문제의 발생 Lambda로 크롤링 함수를 만들어서 서비스에 이용하고 있는데, 특정 parameter에 대해서 5XX에러를 띄우는 현상이 발생했습니다. 호출되는 과정은 NestJS Backend -> API Gateway -> Lambda(python) 순서로 호출됩니다. Postman에서 API Gateway를 호출하였을 때, 502 Bad Gateway와 함께 다음과 같은 에러 메시지를 return 했습니다. { "message": "Internal server error" } 2. 문제의 원인 및 해결 처음에는 단순한 크롤링 과정의 문제인줄 알았습니다. 하지만 로컬에서 lambda에서 사용하는 python 함수를 돌려본 ..
terraform
AWS Elastic Beanstalk(이하 EB)에는 서비스를 관리하기 위한 역할(Role)을 최초 애플리케이션 생성시 만들게 된다.Web Console로 EB를 생성하면 아래와 같은 화면을 볼 수 있다. 이때 '새 서비스 역할 생성 및 사용'을 선택하게 되면 자동으로 EB에 액세스하고 관리하는데 필요한 역할이 부여된 IAM을 생성하게 된다. 그렇다면 테라폼을 사용해서 EB를 생성할 때 iam을 어떻게 설정해줄 수 있을까. 문제 상황IAM설정을 해주지 않고 terraform apply를 하면, 권한이 없어 EB가 생성되다말고 롤백을 하게 되는 모습을 볼 수 있다. 아래 사진과 같이 상태가 'Unknown'으로 바뀌고 health check를 못하는 상태가 된다. 이벤트 부분을 보면 health che..
[Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 (tistory.com) [Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 왜 Linux에서 돌리게 되었는가? AWS 요소 관리를 위해서 테라폼을 사용하려는데, 싸지방 컴에 직접 깔자니 껏다키면 리셋되는 문제가 있었다. 그래서 외부 서버를 사서 접속해서 code를 run 할까하다 pypystory.tistory.com 1편에서 볼 수 있었듯 github codespace 위에서 terraform을 실행할 수 있게 되었다. 근데 여기서 한가지 문제가 있다. 발생한 문제 바로 github codespac..
코엑스에서 진행되는 2023 AWS summit seoul에 다녀왔습니다. 코로나 이후 3년만에 열리는 행사라 규모있게 진행되었다고 합니다. 크게 발표와 부스로 나눠져있었는데, 발표에선 기술적인 부분이나 AWS 서비스 활용 방법에 대한 설명이었고, 부스에서는 AWS 관련 클라우드 서비스의 자사제품 홍보가 대부분이었습니다. AWS 관련된 서비스 특히 외부 구축이나 Devops 비용 절감툴 등 몰랐던 서비스들도 겉핥기 해볼 수 있어서 재미있었습니다. 크게 관심 있던 부스는 2곳 정도였는데, 최근 애용중인 Terraform을 개발하는 Hashicorp라는 회사와 프로젝트에 도입을 고려중인 Datadog 부스였습니다. 특히 datadog 부스에서는 직접 엔지니어분의 설명을 들을 수 있었는데, 그동안 Sentry..
크롤링을 할 일이 생겼는데, 파이썬 코드로 작성된 파일 여러개를 동시 실행하다보니 t*.micro에서는 원활하게 돌아가지 않고, 버벅거림이 있었다. 최소 small, medium에서 돌려야 깔끔하게 돌아가는걸 확인했다. 이제 금액이 고민이었다. medium 온디멘드로 띄워 놓으면 좋겠지만 한달에 나가는 비용이 만만치 않을 것이다. 그렇다고 크롤링 할 때마다 켰다 끄자니 너무 귀찮은일... 그래서 spot instance를 생성해서 가격적인 측면을 타협하고, 생성/삭제 과정을 terraform으로 관리하고자한다. 기본적인 설치/세팅은 shell script로 관리하고, crontab을 이용해 자동화 시킨다. Terraform 설정 1. aws provider 설정 - IAM 계정 정보는 aws cli로 로..
테라폼이란? 테라폼(Terraform)은 HashiCorp가 개발한 오픈-소스코드형 IaC이다. HCL(.tf)이라는 선언형 구성 언어나 JSON을 사용하여 infrastructure를 정의하고 제공할 수 있습니다. - https://en.wikipedia.org/wiki/Terraform_(software) Setting 1. AWS IAM 계정 생성, 이때 엑세스키 발급을 같이 해주도록 합니다. 권한은 테스트를 위해서 poweruser 권한을 부여했습니다. 2. 테라폼 설치 (macOS 기준) & AWS CLI 설치 brew install terraform brew install awscli 3. terraform -v로 설치 확인해줍니다. 4. (선택) VSCode terraform Extensio..