AWS 2장 - EC2 https 연결 (ACM, Route 53, Load Balance) (2)
포스트
취소

AWS 2장 - EC2 https 연결 (ACM, Route 53, Load Balance) (2)

AWS

간혹 인스턴스나 ACM 인증서, 레코드 등등 데이터가 사라져 보이지 않을 때, 우측 상단에 접속 위치를 확인한다. 본인이 데이터를 생성했던 지역으로 설정되어 있는지 확인 !

  • https 옵션 허용에 대한 자료들은 많기 떄문에 간략하게만 적겠다.

EC2 https 접근 허용을 위한 과정들

  • 인스턴스의 기본적인 설명은 1장에서 마쳤다.
  • vercel을 사용하여 배포하는 경우나 보안 설정을 위해 https 접속을 허용해야 하는 경우, 인스턴스의 https 연결 허용을 해주어야 한다.
  • 인스턴스는 기본적으로 http 포트로 동작하기 때문에 퍼블릭 IP의 포트로 접속하려고 할 경우 이상없이 접속이 되지만 https 보안은 따로 설정을 해주어야 한다.

Route 53

이하 53이라고 부르겠다.

  • 사용하려는 도메인을 등록한다.
  • 53에서 직접 구매하여 사용하여도 되고, 본인처럼 가비아 에서 구매 후 따로 사용하여도 된다.
  • 53에서 도메인 구입 시, 가격이 대략 1만원 이상~으로 이루어져 있고, 이후에 나오겠지만 따로 도메인 연결 작업을 안 해줘도 된다는 장점? 이 있고 가비아에서 구매 시 도메인 1+1, .shop 은 500원 등의 여러 이벤트를 이용할 수 있어 저렴한 도메인을 구매할 수 있다는 장점과 따로 연결 작업을 해줘야 한다는 단점이 있다.
  • 53은 구매 후 바로 사용하면 되니 넘어가고, 가비아에서 도메인을 구입했다면 53에서 호스팅 관리로 등록을 해주어야 한다. 스크린샷 2023-09-18 오후 12 09 44

  • 호스팅 영역에서 구입한 도메인을 입력하여 새로운 호스팅 영역을 생성해준다.
  • 호스팅 영역을 클릭하여 들어가면 레코드 라는 값들이 생성되어있고, 이 중 유형 : NS를 사용할텐데, 4개의 값이 사용한다.
  • 다시 가비아로 넘어가서, My 가비아 => 도메인 => (사용할 도메인)관리 => 네임 서버 설정 에서 1차,2차 … 있는 란에 이를 복사 붙여넣기로 1,2,3,4차에 차례대로 입력해준다.
  • 그러면 1차 준비는 끝났다.

ACM

  • Aws Certificate Manager의 줄임말로 https 옵션을 허용하기 위해서 사용해야 하는 인증서이다.
  • 진행되는 방식은 크게 특정 도메인에 관한 인증서 발급 => 로드 밸런스(A로 접근한 사람을 B로 변환시킨다고 생각하면 쉽다.) => Route 53으로 인증서를 포함시켜 접근 옵션 허용 로 기억하면 된다.
  • https로 접근하기 위해선 SSL/TLS를 활용한 공인인증서가 필요하다.
  • ACM으로 인증서와 키를 만들고 저장하며 인증서를 갱신하거나 등의 역할을 수행한다.

    스크린샷 2023-09-18 오전 11 50 03

    스크린샷 2023-09-18 오전 11 51 28

  • 인증서 요청 탭에서 사용할 도메인을 입력한 후 기본 설정들을 유지하고 다음으로 이동한다.
    • 사용하는 도메인이 example.com 이라고 가정했을 때, 누군가가 www.example.com으로 접근할 수도 있고 입력 오타가 나서 wwe.example.com으로 접속할 수 있다고 가정하자, 이러한 모든 옵션을 허용 하기위해 와일드 카드인 *을 사용하면 된다.
    • *.example.com
    • 서버에서 Authorization : *과 동일하게 생각하면 된다.
  • 모든 작업을 완료하면 인증서 나열 탭에서 발급 대기 과정을 거쳐 일정시간이 지나면 발급이 완료되어 있다.
  • 발급이 완료되었다면 인증서를 클릭한 후, 도메인 => (우측 상단) 53에서 레코드 생성 을 클릭한다. 스크린샷 2023-09-18 오후 12 16 50

  • 그럼 위에서 등록했던 호스팅이 떠있을텐데 이를 선택한 후 레코드를 생성해주면 CNAME 형식의 레코드가 생성된다.
    • 레코드 형식은 A, NA, SO, CNAME 등 뭐 여러가지가 있지만 넘어가겠다.

EC2

보안 그룹 허용

  • 우선 보안 그룹의 인바운드 아웃바운드 규칙에서 https 접근 허용이 되어 있어야 한다.
  • 규칙을 설정해주는데 대부분의 블로그에서 인바운드 규칙만 작성을 해놓았는데 AWS 공식 문서에서는 아웃바운드 규칙까지 전부 설정하는 것을 기본으로 하고 있기 때문에 그대로 유지하겠다. image

  • 간단히 짚고 넘어가자면 인바운드를 사람들이 들어가는 경로로 생각하면 쉽다.
  • 포트번호가 80으로 들어오든, 8080이든, http 연결, https 연결 등을 전부 허용하겠다.
  • 아웃바운드에서는 서버에서 클라이언트에게 돌려주겠다~ 이런 뜻으로 이해하고 있으면 된다. image
로드 밸런스 적용
  • 위의 설정으로 보안 그룹에 대한 설정은 끝났다.
  • 로드 밸런서를 검색해보면 ELB, 애플리케이션 계층 등 어려운 개념이 많이 나오는데, https 연결만을 생각한 개념을 설명하자면 보안과 무결성을 가진 https가 일반적인 http 접근이 불가능 하기 때문에 인증서가 가진 SSL을 해석하여 접근을 허용해주기 위해 필요하다고 생각하면 된다.
  • 우선 로드밸런서를 만들어 적용하기 이전에 같은 카테고리에 묶여 있는 대상 그룹을 만들어주도록 한다.

1. 대상 그룹 설정

  • 기본 구성은 인스턴스, 대상 그룹 이름은 본인이 사용할 임의의 이름을 정하고, 프로토콜은 기본값이 80으로 잡혀있는데 본인이 사용할 포트 번호를 입력해주어야 한다. image

    • 만약 본인의 인스턴스가 사용하는 포트 번호가 8080이면 8080으로 설정해주어야 한다.
  • 나머지는 크게 건들일 부분이 없이 다음으로 넘어간다.
  • 그럼 본인의 인스턴스 목록이 나오는데, 이 중 본인이 사용할 인스턴스를 선택 후 보류 중인 것으로 포함 버튼을 눌러 인스턴스를 포함시켜준다.
    • 프로토콜 포트 번호를 입력한 대로 선택한 인스턴스를 위한 포트 칸에 포트번호가 입력되어 있을텐데, 만약 선택해야 하는 포트 번호가 8080인데 입력란에 80이 있거나 다른 포트 번호가 잡혀 있다면, 이전 단계의 프로토콜 포트 번호를 확인하고 입력란에도 올바른 포트 번호를 입력해주어야 한다.

2. 로드 밸런서

  • 인스턴스 담아놓은 폴더가 대상그룹이라고 생각하면 된다.
  • 이러한 폴더의 보안 옵션값을 허용해주는 것을 로드 밸런서라고 생각하면 된다.
  • 로드 밸런서 탭에서 로드 밸런서 생성을 누르면 3가지 유형을 볼 수 있다.
  • 이 중 우리가 사용할 https 연결인 Application Load Balancer로 진행한다.
  • 임의의 로드 밸런서 이름을 정하고, 네트워크 매핑은 본인이 사용할 인스턴스의 네트워크 유형을 선택하면 되는데, 인스턴스 목록에서 가용 영역에 적혀있는 유형을 선택하면 된다.
    • xx-xxxxxxxxx-2a 이런 식으로 작성되어 있는 가용 영역이 2a 인지 c인지 등을 선택한다.
    • 귀찮으면 4가지 전부 다 선택하면 된다.
  • 보안 그룹은 로드 밸런서를 적용할 보안 그룹을 선택하면 된다.
    • 보안 그룹 자체도 https 옵션이 허용되어 있어야 한다.
  • 이제 리스너 및 라우팅 단계에서 HTTP의 대상 그룹 선택에서 우리가 위에서 만들어놓은 폴더인 대상그룹을 선택하면 된다.
  • 리스너를 추가하여 HTTPS도 대상 그룹을 선택해준다. image
다시 Route 53
  • 이제 마지막으로 https 허용한 로드밸런서를 도메인에 적용시키기 위해 53으로 이동한다.
  • 생성한 호스팅을 선택 후 레코드 생성을 누른다.
  • 레코드 이름은 위의 설명처럼 www 등의 주소 등을 추가적으로 작성해도 되고 모든 도메인 접근을 허용하기 위해 작성하지 않아도 된다. image

  • 기본적으로 레코드의 별칭옵션이 꺼져있을텐데, 별칭 옵션을 켜주면 우리가 생성한 로드 밸런스를 선택할 수 있게 된다.
  • 그리고 아래의 옵션값 그대로 설정을 해준 다음 레코드를 생성해주면 약간의 시간이 지난 후 https 접근이 가능하게 된다. image
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.