
개요PO분이 급하게 도메인을 만들고 정리하시느라 AWS가 아닌 GoDaddy에서 도메인 이름을 발급받으셨다. 거기다 상용 AWS 계정이 승인이 안나서 cloudflare에 모든 서브도메인 라우팅을 설정해두셨다. 추가적으로 SSL 인증서까지 cloudflare 에서 적용하셨다. AWS 상용 계정이 승인되고나서 도메인 서버, SSL 인증서를 마이그레이션해야했다. 처음에 언뜻 듣기로는 아 이거 뭐 금방하지라는 생각으로 모든 권한을 넘겨받았다. 그리고 바로 일이 터졌는데... 별일은 아니고 좀 오래걸렸다. 차근차근 방법을 알아보자cloudflare 설정 일시중지 혹은 삭제하기가장 먼저 해야할 내용은 아니지만 반드시 알아야할 설정이 여기있어서 처음에 뒀다. cloudflare는 CDN 역할만 해주는게 아니라 네임..

개요현재 프로젝트에서 파일 저장소로 S3를 사용하고 있다. 파일을 저장하면서 몇 가지 요구 사항이 붙게 됐다. 1. 업데이트를 하면 파일이 새로 업로드됨2. 그런데 업데이트 하기 전 파일로 롤백하려는 요구 사항이 있을 수 있음3. 그럼 업데이트된 파일을 어떻게 관리할 것인가? 사용하지 않는 파일에 아이디를 일일히 부여하는게 맞는가? 그럼 로우가 계속 늘어날텐데?4. 그러면 삭제 정책이 필요한데, 얼마나 저장할 것이며 어떻게 삭제할 것인가? 스케줄러를 돌리는 것도 말이 안되지 않나? 이런식으로 계속 꼬리질문이 나오는 상황에서 S3를 뒤져보던 중 객체 버저닝이란 것을 알게 됐다.https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/versioning-w..

개요기존 서비스에서는 EKS + ArgoCD를 이용한 GitOps를 구축해놨었다. 그런데, 새로운 프로젝트에서는 ECS를 쓰면서 CI/CD를 아예 갈아치워야 하는 상황이 됐다. ECS 환경에서도 ArgoCD를 할 수 있다고는 하는데... 하는 방법이 구체적으로 나와있지 않았다. ArgoCD 메인테이너가 해준 설명 : https://github.com/argoproj/argo-cd/discussions/17843 어떻게해야하나 찾아보니까... GitHub Actions에서 ECS용 워크플로우를 만들어놔서 ArgoCD보다 더 쉽게 CI/CD를 구축할 수 있었다. 원리는 Task Definition에 명시해둔 이미지 이름을 변경하고 Task를 재실행시켜서 재배포하는 방식이다. 준비물은 Task Definit..

개요새로운 서비스가 시작하면서 AWS관리부터 devOps, BE 개발을 전반적으로 다 관리하고 있다. 그러다보니 서버 설정을 만질때가 많은데, 그중에서 관리가 특히 필요한 것들이 외부 API 키나 DB 커넥션 관련 정보다. 1. 누출되면 데이터를 싹 털릴 수도 있고, 무분별한 사용으로 비용이 치솟을 수 있는 것들.2. 기간 만료/갱신 등으로 인해 수시로 변경되고, 서버 프로필 별로 따로 관리가 필요한 것들. 이런 것들을 한번에 관리할 수 있도록 서비스를 지원하는게 AWS Parameter Store다. 이번 포스팅에는 아래와 같이 사용법을 정리해보려고 한다. 1. Terraform으로 db관련 간단한 파라미터를 등록2. ECS Task의 IAM 정책에 ssm 작업 추가3. SpringBoot 3.0에서..

이번에 새로 진행하는 프로젝트의 인프라는 k8s가 아니라 ECS로 선택했다. BE를 병행하는 입장에서 k8s의 계속해서 바뀌는 업데이트와 복잡성을 따라가기 어렵다 판단해서였다. 그래서 차근차근 Terraform으로 ECS를 구축하던 중 IAM을 설정하다 의외의 문제를 발견했다. aws_iam_policy_attachment와 관련된 문제여서 짚고가보려고한다. 현상부터 특이하다. 1. terraform init (-upgrade)2. terraform plan를 할때 매번 새로운 upgrade 요소가 나옴3. terraform apply에서 아래와 같은 에러가 발생4. 다시 1로 돌아가서 upgade를 해주면 plan에서 새로운 리소스가 잡힘. 2~3의 반복 분명 정책을 만들고 attachment를 실행했..

문제 발생상용 배포 당일 정신없던 배포 준비를 마친 후, 상용서버 배포를 진행했다. 그리고 몇 번의 핫픽스를 내보낸 후 FE 개발자 분이 안보이는 부분에 문제가 있다고 연락이 왔다. FE에서 자기들이 쓰려고 FE의 서버로 보내는 API를 만들었는데 이 URL로 요청을 보내면 403 에러가 난다는 것. 403 Forbidden을 가장 많이 보는 경우는 CORS 문제다. 하지만 해당 요청이 들어온 CloudFront(이하 CF)의 옵션을 보면 CORS 문제가 아니다라는 걸 바로 알 수 있다. AWS에서도 403 에러 관련 문서를 제공하는데 나에겐 큰 도움이 되지 않았었다. 함정이 도사리고 있어서 매우 고통스러웠던, 문제 해결과정을 알아보자.. 문제 분석1. 정말 CORS 문제가 아닌가?이 도메인으로 접근하..

문제 상황 정리작년 9월쯤부터 비용절감을 위해 dev 서버를 spot 인스턴스로 변경했다. 약 30% 정도 비용절감이 효과가 있어서 당시에는 꽤 괜찮은 선택이었는데, 운영하면서 문제가 발생했다. dev 서버가 spot 인스턴스를 너무 자주 뺏기고, 다시 할당 받는데 시간이 오래 걸리는 현상이 반복됐다. 한두번이면 상관 없는데 하루에도 몇 번씩 뺏기고 다시뜨는데 10분씩 걸리니까, 개발에 차질이 생기는 경우가 생겼다. 이 문제를 해결하고 싶었다. 문제 정의spot instance란?스팟 인스턴스는 실행 중인 동안에는 온디맨드 인스턴스와 정확히 동일합니다. 그러나 스팟은 실행 중인 인스턴스를 워크로드를 완료할 수 있을 만큼 충분히 오래 유지할 수 있다고 보장하지 않습니다. 또한 스팟은 찾고 있는 인스턴스의 ..

AWS에서 제공하는 완전관리형 쿠버네티스 서비스인 EKS는 업데이트 주기가 엄청나게 빠르다. Amazon EKS Kubernetes 버전에 관한 문서를 읽어보면 다음과 같이 안내한다. 1. EKS 신규 버전 출시는 쿠버네티스 업스트림 릴리즈 주기(4개월)을 따름.2. 신규 버전 출시 후 14개월은 무료로 표준 지원3. 표준 지원 종료 후 12개월 추가 지원 (클러스터 당 0.6$/h의 추가 요금 발생)4. 추가버전 종료까지 업그레이드를 하지 않을경우 가장 마지막 버전으로 강제 업그레이드5. 평균적으로 업스트림 릴리즈 이후 약 2~6개월 이후 EKS 지원 만약 추가 지원으로 빠진다면, 클러스터 당 한달에 약 60만원(0.6 × 1380 × 24 × 30) 정도의 추가 비용이 발생한다. 그래서 그런지 콘솔에..
- Total
- Today
- Yesterday
- java
- GIT
- 오블완
- S3
- AWS
- 후쿠오카
- MySQL
- ChatGPT
- CloudFront
- OpenAI
- EKS
- terraform
- JWT
- docker
- 람다
- elasticsearch
- Log
- AWS EC2
- lambda
- cache
- Kotlin
- 티스토리챌린지
- Elastic cloud
- openAI API
- Spring
- springboot
- object
- AOP
- serverless
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |