1. AWS SAA-C03이란?AWS 자격증은 AWS 클라우드 컴퓨팅 플랫폼 사용에 대한 지식과 전문성을 입증할 수 있는 프로그램이다.아키텍트 / 운영 / 개발로 영역이 구분되어 있으며, 난이도는 기초 / 어소시에이트(Associate) / 프로페셔널(Professional)로 이루어져 있다. SAA Solution Architect Associate의 약자로, 아키텍처 설계 능력을 평가하는 자격증이다.보안 아키텍처 설계, 복원력을 갖춘 아키텍처 설계, 고성능 아키텍처 설계, 비용에 최적화된 아키텍처 설계 4가지 영역에 대한 설계 능력을 평가하는 시험이다.(C03은 버전을 의미하며, 2024년 5월 기준 최신 버전이다) 총 130분동안 65문항을 풀어야 하고 총점 1000점 중 합격 최소 점수는 720점..
1. 들어가며 이전 포스트에서 도커로 MySQL을 띄우는 방법에 대해 알아보았다. [Packy] Docker로 MySQL 띄우고 Spring Boot에 연동하기 0. 들어가며 이전까지는 로컬 DB 환경으로 H2 데이터베이스를 사용하였다. 그러다 소프트웨어 마에스트로 과정을 하며 멘토님께서 'H2는 MySQL과 다른 데이터베이스이기 때문에 문법 차이 등으로 leeeeeyeon-dev.tistory.com 패키 프로젝트에서는 메인을 MySQL로 사용하고, Refresh 토큰 관리나 캐싱 등에 Redis를 사용할 예정이다. 참고로 명령어를 통해 Redis를 띄우는 방법은 아래와 같다. # 터미널 1 # 1. image pull docker image pull redis # 2. redis 실행 docker r..
1. ngrok이란? ngrok은 NAT와 방화벽 뒤에 있는 로컬 서버를 안전한 터널을 통해 공개 인터넷에 노출시켜 주는 도구이다. 즉, 포트 포워딩 같은 네트워크 환경 설정 변경없이 로컬에 실행중인 서버를 안전하게 외부에서 접근 가능하도록 해주는 도구이다. Product Trusted by over 5 million developers and recommended by category leaders ngrok.com 2. ngrok 설치 공식 사이트에서 설치 파일을 다운로드할 수도 있지만, 나는 brew를 사용하여 설치하였다. brew install --cask ngrok 3. ngrok 사용 방법 매우 쉽다. 아래 명령어만 입력해주면 된다. ngrok http (포트 번호) 명령어를 입력하면 위와 같..
들어가며 서비스 출시가 완료되었기 때문에 이제는 운영을 고려한 개발을 진행해야 한다. ex) API 버전 관리를 통해 API가 변경되어도 기존 API를 사용 가능할 수 있게 하기 (앱 배포 주기가 서버 배포 주기보다 길며, 앱 강제 업데이트를 하지 않으면 이전 버전을 쓰는 사람들도 많기 때문) 등 ... 그리고 서비스 장애가 발생하여도 이를 빠르게 파악하고, 최대한 빨리 서비스가 정상 동작하는 상태로 만드는 것이 중요하다. 장애 원인을 찾아 본질적 원인을 해결하는 것도 중요하지만, 사용자 입장에서 보았을 때 서비스가 뻗어보이지 않는 모습으로 보여주는 것이 중요하다. 위와 같은 비정상적인 UI는 사용자들을 당황하게 만들 것이다. 이렇게 장애가 발생했음을 사용자에게 공지해주거나, 이렇게 장애가 발생한 부분만..
들어가며 쿠버네티스 v1.28 기준으로 쿠버네티스는 다음과 같은 기준까지 수용하도록 설계되었다. 노드 당 파드 110개 이하 노드 5,000개 이하 전체 파드 150,000개 이하 전체 컨테이너 300,000개 이하 나는 최근 '쿠버네티스 교과서'라는 도서로 스터디를 진행하며 쿠버네티스에 대해 공부하고 있다. 나의 상황의 경우 단일 노드 클러스터로도 충분하기 때문에, 이번 포스트에서는 앞으로 진행할 예제의 준비물로 단일 노드 쿠버네티스 클러스터를 생성하는 과정에 대해 알아본다. 현재 사용 중인 M1 맥북 로컬 환경에 Minikube 등을 사용하여 쿠버네티스 환경을 구성할까? 생각도 하였지만, AWS 서비스에 친숙해지고 싶어서 맨땅에 헤딩으로 실패한 경험이 있어서 (가능하다면) 추후 프로젝트에 도입하고 싶..
프로젝트 상황 서비스를 운영하기 위해서는 개발하는 과정에서 사용하는 개발 환경과 실제 사용자들이 사용하는 운영 환경을 분리해야 한다. 현재 진행 중인 프로젝트에서는 하나의 EC2 인스턴스 안에서 2개의 포트를 사용하여 개발 환경과 운영 환경을 동시에 실행시키고 있다. 8080번 포트: Profile이 dev인 Spring boot 서버 실행 8081번 포트: Profile이 prod인 Spring boot 서버 실행 Best Practice로는 개발 환경과 운영 환경을 물리적으로 분리하는 것이 좋다. 하지만 물리적 분리를 하기 위해서는 자원이 2배로 필요하기 때문에 포트를 2개 사용하여 하나의 인스턴스 내에서 개발 환경과 운영 환경을 분리하는 방법을 선택했다. 그리고 서브 도메인으로 개발 환경은 dev,..