티스토리 뷰

서비스 오픈을 준비하면서 내가 가장 걱정했던 것인 AWS에 서버 구축하기를 마쳐서 그 과정을 정리해본다. 우선 구축하려는 아키텍처는 아래와 같았다.

EC2 인스턴스 만들기

 EC2 인스턴스를 만드는 과정은 다른 블로그에 잘 나와 있으므로 생략한다. 서버1을 먼저 인스턴스 생성으로 만든 후에 서버1을 이미지화하여 템플릿 생성 후 템플릿으로 인스턴스를 복제하여 서버2를 생성했다. 이때, 서버1을 접속하기 위한 .pem 파일을 함께 사용할 수 있었다. 만약 각 서버마다 다른 .pem 파일로 관리하기를 원한다면 새로 만들어주는 수 밖에 없는 듯하다.

RDS로 Master-Slave 만들기

RDS로 DB를 하나 만든 후, 그 DB를 선택하고 읽기 전용 복제본 생성을 선택한다. 이렇게 되면 Master로는 CRUD가 전부 가능하지만, 읽기 전용 복제본(Slave)로는 Select만 가능해진다. 그리고 Master에 생긴 변화를 바로 반영하는 것을 확인할 수 있었다. Slave를 생성하면 엔드포인트 정보가 뜨는데 이 엔드포인트 정보로 애플리케이션 단에서 Slave는 이 엔드포인트로 설정해주면 된다.

후이즈에서 구매한 도메인 연결하기

 이미 후이즈에서 구매한 도메인이 있어서 그 도메인에 연결하는 과정을 거쳐야 했다. 그냥 외부 도메인 연결만 하는 건 해본 경험이 있긴 한데 이 도메인을 LB와 붙여야 해서 이 과정에서 조금 헤맸다. 간단하게 정리해보자면, Route 53에서 호스팅 영역을 생성 -> NS 유형의 정보를 도메인 구입처에서 네임서버 변경에 입력 -> SSL 인증서 신청 -> 인증서 발급 확인 및 DNS 변경 확인 -> LB 생성 -> Route 53에서 레코드 생성을 눌러 LB와 연결 이런 과정이다.

 후이즈에서 네임서버를 변경하고 아래 명령어로 변경되었는지 확인했다.

nslookup example.com

 그리고 변경된 것을 확인할 수 있었다.

LB 생성하기

 사실 AWS를 사용하면서 EC2와 RDS, Route 53만 조금 만져봤을 뿐, LB를 생성하는 건 처음이었다. 나는 위와 같이 서버로의 HTTP 요청을 분산하고 싶은 것이라 Application Load Balancer를 생성했다. 이때, Listener를 잘 생성해주어야 한다. 예를 들어, 내가 애플리케이션에서 사용하는 포트가 80이 아니라면 Target Group을 설정할 때 그 포트를 입력해주어야 한다. 그리고 리스너를 생성할 때에는 80, 443(HTTPS)을 지정해줘야 로드밸런서에서 내가 애플리케이션에서 사용하는 포트로 요청을 보낼 수 있다. 그리고 너무나 당연하게도 로드밸런서에 연결된 보안 그룹에서 80, 443에 대한 규칙을 설정해줘야 한다.


 위 과정을 거쳐 도메인을 입력했을 때 잘 접속되는 것을 확인할 수 있었다. 도메인을 연결하고 LB와 연결하는 부분이 조금 어렵게 느껴질 수도 있지만 내가 생각해서 정리한 과정은 아래와 같다.(아래 과정 중 보안 그룹 설정은 빼놓았다.)

- 도메인 구입처에서 네임서버 변경 = 이 도메인으로 요청시 AWS의 DNS로 요청하도록 변경하는 것

- AWS 네임서버에서는 유형이 A(alias, 별칭)인 레코드를 찾아 트래픽 라우팅 대상으로 요청 전달(그래서 트래픽 라우팅 대상이 로드밸런서로 설정이 되어 있어야 한다.)

- 로드밸런서는 요청받은 포트에 따라(80 or 443) 대상 그룹을 찾고, 그 대상의 포트(내가 애플리케이션에서 사용하는 포트)로 요청을 전달

300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함