Terraform으로 Infra를 Code로 관리하자!
·
CI&CD
지난주 토요일 AWS Student Community Day에 참여했다. 많은 연사자분들이 클라우드에 관한 유익한 이야기를 해주셨는데, 그중에 Terraform이라는 흥미로운 기술을 알게 되어, 들은 내용을 정리하면서 조금 더 알아보았다.(사담이지만, AWS Korea가 위치한 역삼 센터필드는 정말 신기했다. 엘레베이터 타기 전에 터치패드로 층수 선택하고, 내부에 층 버튼이 없는 엘리베이터는 살면서 처음봤다..) IaC란?Terraform이 무엇인지 이해하려면 먼저 IaC가 무엇인지 알아야 한다. IaC(Infrastructure as Code)란, 인프라, 즉 서버나 데이터베이스 등을 코드로 정의하여 자동화하고 재현 가능하게 관리하는 방식이다. 재현 가능하다 함은 즉, 어느 개발자가 어느 환경에서 실행..
정형 데이터를 담는 값 타입 컬렉션을 대체해보자
·
카테고리 없음
요구사항: 푼 문제 데이터를 어떻게 효율적으로 저장할 것인가?우리 학회에서 진행 중인 프로젝트는 Solved.ac API를 사용해 백준에서 푼 문제 데이터를 불러오고 있다. 이때 각 학회원의 푼 문제 수는 Solved 엔티티에 저장하며 문제 티어와 사용자를 기준으로 각 데이터를 구분하고 있다. 이러한 방식에는 큰 문제가 있다. 백준에서는 문제 티어가 Unrated부터 Ruby 1까지 총 31단계로 나뉘는데, 이는 즉 Solved 테이블의 row 수가 (학회원 수) x 31이 된다는 의미이다. 학회원이 학기마다 유동적이지만 보수적으로 잡아도 100명인데, 이는 즉 row 수만 3000여개가 될 수 있다는 말이다. 이는 성능 및 유지보수 면에서 너무 비효율적인 방법이라고 생각했다.그렇다고 각 난이도에 대해 ..
내 손으로 데이터베이스를 날린, 그 후 5일간의 이야기
·
CI&CD
교내 알고리즘 학회에서 solved.ac의 api를 이용하여 소속 학회원들의 레이팅을 매겨주는 웹 서비스를 운영중이다.지난 주말 새벽에 원인 미상의 오류로 서버가 터지고, 그 이후 있었던 일에 대한 회고를 적어보고자 한다. 2025-05-10 (토)[02:30] EC2 인스턴스 접속 불가새벽에 서버가 터졌다는 연락을 받고 AWS 콘솔을 확인했는데, 어떤 이유로 터진 건지 로그도 출력이 안되고 EC2 내부 접속조차 되지 않았다. 일단 DB가 살아있는지의 여부가 매우 중요했는데, RDS 콘솔에서 DB는 정상으로 확인되었기 때문에 안심했다. 우리 서비스 서버는 Elastic Beanstalk를 통해 배포되어 있는데, 애초에 내가 AWS 서비스에 대해서 깊게 알지 못하다 보니 이런 상황에 대해 잘 몰랐다. 그래..
Amazon ECR/ECS 란 무엇일까?
·
CI&CD
서론컨테이너 기술은 애플리케이션 배포 방식에 큰 변화를 가져왔다. DevOps 및 CI/CD 파이프라인과 연계하여 빠른 배포가 가능하게 되었으며, 주변 여러 프로젝트에서도 Docker와 같은 컨테이너 기술을 많이 이용하는 것을 볼 수 있다. 이 글에서는 AWS에서 지원하는 컨테이너 기술인 ECR과 ECS에 대해 알아볼 것이며, 그에 앞서 ECR과 ECS의 핵심 기술인 컨테이너와 컨테이너 오케스트레이션에 대해 간단하게 알아보자.컨테이너컨테이너는 애플리케이션과 그 실행에 필요한 모든 요소를 하나로 패키징하는 기술이다.VM(가상 머신)과 비교해서 이식성, 확장성이 뛰어나, 현대 소프트웨어 개발 환경에서 매우 많이 이용된다.대표적으로 Docker가 있다.컨테이너 오케스트레이션컨테이너 오케스트레이션은 수많은 컨테..
HTTP 상태 코드 분석과 보안 측면 고찰 (401 / 403 / 404)
·
카테고리 없음
클라이언트의 요청을 어떻게 거부해야 할까?지난 해 처음 해보는 팀 프로젝트에서 백엔드 파트로 참여하면서, 여러 고민을 했던 경험이 있다.그 중 가장 기억에 남는 것은 클라이언트에 반환할 상태 코드 관련 고민이었다. 우리 프로젝트에서는 권한이 Member와 Admin으로 나뉘어 있었다.RentalStatus는 Member/Admin 둘 다 접근 가능한 필드였으나, 각자 변경할 수 있는 Status가 달랐다.그래서 Service Layer에 Validation 로직을 길게 짜지 말고, Validation을 dto에서 처리해보면 어떨까 하고 씨름해보았던 기억이 있다. 그런데 본인 권한에 맞지 않는 Status로 변경하면 어떤 상태코드를 반환해야 할지 의문을 가지게 되었다.적절한 상태코드를 생각하지 못한 관계로..