본문 바로가기
카테고리 없음

aws 로드밸런서 리스너 설정하기. 서비스 점검, 특정 디렉토리 및 파일 접근 차단 기능

by asj8000 2023. 1. 7.
반응형

EC2와 로드밸런서를 사용하는 경우

로드밸런서의 리스너 기능을 통해, 서비스에 특정 접근을 마음대로 컨트롤할 수 있다.

 

아래 요구사항대로 예시를 봐보자.

 

요구사항 1.

서비스 전체가 점검이 필요하다. 모든 API와 웹 페이지들에 점검중임을 표시하는 메시지, 혹은 화면을 띄워주어야 한다.

 

요구사항 2.

특정 디렉토리, 파일을 사용자가 접근하지 못하게 설정해야 한다.

 

 

 

우선 로드밸런서의 리스너 기능은 아래 화면에서 접근 가능하다

 

 

EC2 ->  로드밸런싱 ->  로드밸런서 ->

설정할 특정 로드밸런서 클릭 후,  하단 리스너 버튼 클릭 ->

HTTPS : 443 의  규칙 보기/편집 버튼 클릭 
(https를 사용중이지 않고 http만 사용중이라면 443이 아닌 80포트)

들어올 경우 아래와 같은 화면을 확인할 수 있고

 

상단 + 버튼, 연필버튼, 양화살표 버튼, 마이너스 버튼을 통해

각각 추가, 수정, 우선순위 조정, 삭제를 할 수 있다.

자 그럼, 요구사항을 만족시켜보자.

 

 

요구사항 1.

서비스 전체가 점검이 필요하다.

모든 API와 웹 페이지들에 점검중임을 표시하는 메시지, 혹은 화면을 띄워주어야 한다.

 

상단의 플러스 버튼을 눌러 조건 추가를 시작해보자

 

조건은 경로 설정 후 루트 디렉토리 ( / ) 를 입력, 
응답은 고정으로 원하는 HTTP 응답 코드와 리턴값을 설정해주면 된다.

이렇게 설정을 해줄 경우, 서비스 내로 접근되는 모든 접근에 내가 설정한 응답이 반환된다.

 

만약 혹시라도.. API와 웹페이지가 동일한 EC2 내에서 작동되고 있고,

각각 다른 응답을 보내주고 싶은 경우엔,

 

아래처럼 API용, 웹페이지용 두가지 규칙을 만들고 우선순위를 조정하여,

API 관련된 접근이 먼저 작동하도록 작업하면 된다.

이럴 경우 규칙 순서대로, /api/ 요청에선 위쪽 규칙이, 그 외 나머지 모든 접근에선 아래쪽 규칙이 작동하게 된다.

 

*웹에선 점검 페이지 html을 응답값으로 설정하면 되고, 앱에선 서버에서 503 상태값을 반환해줄 경우 특정 페이지를 띄우는 방식으로 처리하면 된다.

 

요구사항 2.

특정 디렉토리, 파일을 사용자가 접근하지 못하게 설정해야 한다.

서비스 내에 보안이 필요한 파일이 올라가져 있어, 이것에 일반 사용자가 접근하지 못하게 만들어야 한다던가.

특정 파일은 관리자만 접근할 수 있도록 설정해보자


*사실 너무 당연하게도, 보안이 필요한 파일이라면 서비스 내에 올라가선 안된다. 하지만 언제나 상황이란 것이 있을테니,, 한번 같이 다뤄보자

 

단순히 차단만 하는 것은 매우 간단하다. 

 

위에서 다룬 방법처럼 디렉토리를 통째로 차단할 수도 있고, 

특정 확장자를 가진 파일 전부를 차단시킬수도 있다

 

혹은, 지원해주는 다른 기능들을 통해, 관리자나 특정 서비스에서만 접근이 가능하도록 설정할 수 있다.

 

예를 들어, 특정  HTTP 헤더값을 가지고 있는 상태에서 전송한 요청일 경우

페이지에 리다이렉션 시켜주는 방식이 있다.

 

 

 

관련된 추가 내용은 아래 공식 문서를 참고하자.

Application Load Balancer를 위한 리스너

반응형

댓글