목록사이드 프로젝트 (36)
개발놀이터
앞선 포스팅에서 우리는 EC2 인스턴스를 생성했습니다. 이제 우리는 EC2 인스턴스에 접속해보도록 하겠습니다. 이전 포스팅과 연결되는 포스팅입니다. https://coding-review.tistory.com/453 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전2 (EC2 생성) 이전 포스팅에서 AWS 설정을 마무리지었습니다. 이번엔 public subnet에 애플리케이션 서버를 두고 private subnet에 데이터베이스 서버를 둬보겠습니다. 이전 포스팅과 이어지는 포스팅입니다. https://co coding-review.tistory.com 바로 시작해보죠 PuTTY를 키고 Host Name에는 application-server 인스턴스의 퍼블릭 IPv4 주소를 입력해줍니다. 그리고 ..
이전 포스팅에서 AWS 설정을 마무리지었습니다. 이번엔 public subnet에 애플리케이션 서버를 두고 private subnet에 데이터베이스 서버를 둬보겠습니다. 이전 포스팅과 이어지는 포스팅입니다. https://coding-review.tistory.com/452 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전1 (VPC와 서브넷) 앞선 포스팅에서 우리는 VPC와 서브넷, 라우터와 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이까지 알아봤습니다. 이번 포스팅에선 그 중 첫 번째 단계라고 볼 수 있는 VPC와 서브넷을 만들 coding-review.tistory.com EC2 연결 1. 보안 그룹 생성 EC2를 만들기 전에 EC2에 연결할 보안그룹을 먼저 생성해주도록 하겠습니다...
앞선 포스팅에서 우리는 VPC와 서브넷, 라우터와 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이까지 알아봤습니다. 이번 포스팅에선 그 중 첫 번째 단계라고 볼 수 있는 VPC와 서브넷을 만들어 볼 것입니다. 개념적인 부분에 대해서 아직 모르고 계시다면 앞선 포스팅을 참고해주세요! https://coding-review.tistory.com/451 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 개념 저는 항상 의문점이 있었던 것이 애플리케이션 서버와 데이터베이스 서버를 나누게 되면 이 둘은 어떻게 통신을 하는가? 였습니다. 제가 기존에 배포하던 방식인 EC2 인스턴스에 애플리케이션과 coding-review.tistory.com VPC 생성과 서브넷 생성 1. VPC 생성 AWS 검색창에 V..
저는 항상 의문점이 있었던 것이 애플리케이션 서버와 데이터베이스 서버를 나누게 되면 이 둘은 어떻게 통신을 하는가? 였습니다. 제가 기존에 배포하던 방식인 EC2 인스턴스에 애플리케이션과 데이터베이스를 동시에 두게 되면 보안상 좋지 않다는 말을 들었습니다. 그래서 이 부분에 대해서 GPT에게 물어봤더니 VPC를 사용하면 된다는 말만 끊임없이 하더군요. 그 당시에는 VPC가 뭔지 도 몰랐고 그냥 VPC를 쓰면 되는구나 하고 넘어갔습니다. 이번 포스팅에선 본격적으로 VPC를 이용해 애플리케이션 서버와 데이터베이스 서버를 분리시켜보도록 하겠습니다. 시작해보죠. VPC가 뭐야? VPC는 Virtual Private Cloud의 약자로 직역하면 가상의 클라우드 환경이라는 말입니다. 만약 VPC가 없다면 각각의 인..
블루 그린 배포를 하는 과정에서 한 가지 문제가 생겼습니다. AWS의 로드밸런서인 ALB의 타겟그룹을 수동으로 바꿔줘야 한다는 것이었죠. CLI로 타겟 그룹을 바꿀 수 있다는 사실을 몰랐던지라 이를 어떻게 자동화할지 몰랐고 덕분에 컨테이너와 이미지를 없애고 다시 블루 버전을 띄워서 블루 그린 배포인데 블루 버전만 사용하는 아이러니함이 생겼죠. 새로운 프로젝트를 진행하다가 챗 지피티한테 궁금해서 물어봤습니다. "AWS CLI로 타겟 그룹을 변경할 수 있어?" "그럼요~" 예제 코드까지 친절하게 알려줘서 덕분에 성공할 수 있었습니다 (GPT 최고!). 그럼 이제 본격적으로 AWS CLI로 타겟 그룹을 변경하는 포스팅을 진행해보도록 하겠습니다. AWS CLI가 뭐야? 우리는 AWS의 시스템을 이용할 때 AWS..
0. Introduce 실제 운영은 모니터링 환경을 구축한다는 것을 알고 있었습니다. 때문에 실제 운영환경을 가정하고 모니터링 환경을 구축해야겠다는 니즈를 느꼈습니다. 이에 프로메테우스, 그라파나, 스프링 Actuator와 같은 기술을 공부하고 제 프로젝트에 적용했습니다. 1. 기존 프로젝트의 모니터링 기존 프로젝트엔 모니터링 기능이 없었습니다. 2. 기존 프로젝트의 문제 기존 프로젝트는 모니터링의 부재로 실제 애플리케이션의 상태를 알 수 없었습니다. 때문에 어떤 부분이 문제이고 어떤 부분을 고려하여 확장해야 하는지 알 수 없었습니다. 3. ver.3 에서 해결한 문제 기존 프로젝트의 문제점에 대해서 인지하고 있었으며 ver.3에서 모니터링 기능을 제공하기로 결정했습니다. 모니터링 문제를 해결함으로써 C..
배포 버전에서 HTTPS 접근이 아닌 HTTP 접근이기 때문에 넘어갈 수 없다는 페이지를 만났습니다. 때문에 다음으로 넘어가야 하는 상황에서 다음으로 넘어가지 못하고 멈추는 상황이 반복되었습니다. 이는 반드시 해결해야 하는 문제였기 때문에 어떤 부분이 문제일까 고민했습니다. 문제에 대해 몇가지 해결책이 떠올랐습니다. HttpServletResponse 객체를 받아와서 sendRedirect로 바꾼다. 로드밸런서의 80포트를 HTTPS로 열어준다. 1번같은 경우는 시도해봤지만 다시 페이지로 리턴해야 하는 상황이었어서 성공하지 못했습니다. 때문에 2번으로 넘어갔습니다. "HTTPS 요청이 와야하는데 HTTP 요청이 왔다는 얘기니까 HTTP 요청을 HTTPS로 바꿔주면 되는거 아냐?" 접근 자체는 좋았지만 이..
이전 포스팅과 이어집니다. https://coding-review.tistory.com/432 ACM + ALB 를 이용해 HTTPS 적용하기 (1) 이번 포스팅에선 AWS에서 HTTPS 적용하는 방법에 대해서 포스팅해보도록 하겠습니다. 조금 복잡할 수 있으니 순서대로 차근차근 알려드리겠습니다. 시작하죠! HTTPS 적용하기 1. 도메인 구매하기 우 coding-review.tistory.com 5. ELB (ALB) 설정하기 로드 밸런서는 EC2 왼쪽 탭 아래쪽에 존재합니다. 우리는 ALB 를 선택할겁니다. Application Load Balancer 를 선택합니다. 우선 로드밸런서 이름을 작성하고요. 네트워크 매핑은 자신의 EC2가 어떤 지역에 떠있는지에 따라 선택해야 하는것이 다릅니다. (사실 네..
이번 포스팅에선 AWS에서 HTTPS 적용하는 방법에 대해서 포스팅해보도록 하겠습니다. 조금 복잡할 수 있으니 순서대로 차근차근 알려드리겠습니다. 시작하죠! HTTPS 적용하기 1. 도메인 구매하기 우선 도메인을 구매해야합니다. 저는 cafe24에서 구매했습니다. 우선 구매하고 잠심 대기해주세요. 도메인의 네임서버를 바꿔줘야하는데 지금은 바꾸지 않습니다. 2. Route 53 도메인 등록 유형 NS를 클릭하면 레코드 세부 정보가 나오는데 값에 해당하는 저 네개를 cafe24 관리자 페이지에 들어가 네임서버를 변경해주면 됩니다. 연결하는 방법은 아래의 링크에 자세히 나와있습니다. https://jsikim1.tistory.com/153 AWS에 Cafe24 도메인 연결하는 방법 - Route 53, EC2..
0. Introduce 배포를 진행할 때 고려해야 하는 점을 공부하다 Warm Up 이라는 개념에 대해서 알게 되었습니다. 그리고 클래스 로더, JIT 컴파일러를 Warm Up 하는 방법에 대해서 학습하고 실습했습니다. 1. 기존 프로젝트의 배포 배포를 진행하고 클래스 로더의 지연로딩, JIT 컴파일러의 활성화 조건을 만족하지 않았습니다. 2. 기존 프로젝트의 문제 배포를 하고 난 조금 뒤에는 지연 시간이 안정되지만 배포를 한 직후에는 지연 시간이 많이 발생할 수 있는 문제점을 파악했습니다. 3. ver.3 에서 해결한 점 ApplicationRunner를 구현함으로써 클래스 로더의 지연 로딩을 해결했습니다. Jenkins의 CI 파이프 라인에서 curl 명령어를 통해 많은 요청이 예상되는 API를 wa..