레닷
IT 이야기
레닷
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • 파이썬 (9)
      • 코드 (6)
      • 에러 (3)
    • Linux (4)
    • Window (3)
    • AWS (23)
      • 3tier Architecture (8)
      • Service (10)
    • Azure (3)
      • domain & https (3)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 도메인
  • 파이썬
  • rds
  • DNS
  • 클라우드
  • gcp
  • aws
  • AWS 3tier
  • db
  • 인증서
  • web
  • 서버
  • 리눅스
  • 프로젝트
  • windows
  • 에러
  • https
  • SSL인증서
  • Azure
  • SSL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
레닷

IT 이야기

AWS/3tier Architecture

[AWS] AWS 3tier Architecture 구성 6. 로드밸런서 생성

2023. 4. 25. 03:23
반응형

로드밸런서는 네트워크 트래픽을 여러 대의 서버에 분산시켜 부하를 균형화하는 역할을 한다. 또한 외부에서 일반적으로는 접속하지 못하는 private subnet 속에 있는 서버로 접속할 수 있게 해주는 역할도 한다.

다양한 로드밸런서가 있으며 이를 통틀어서 ELB라 하고 보통 웹사이트를 운영할 때는 ALB를 사용한다.

 

우선 로드밸런서를 생성하기 전에 각 서버에서 실행할 패키지를 먼저 설치하자.

web 서버에서는 nginx를 설치할 것이고

was 서버에서는 Tomcat9을 설치할 예정이다.

 

1. web서버에 nginx 설치

sudo yum -y update
sudo yum -y install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

active 확인

 

2. Was서버에 Tomcat9 설치

해당 과정은 수동으로 설치해야하기 때문에 조금 복잡하다.

# yum 업데이트
sudo yum -y update

# Java 설치 (Tomcat을 사용하려면 Java는 필수)
sudo yum -y install java-1.8.0-openjdk.x86_64

# Tomcat 설치 (기본 yum리포지토리에 없기 때문에 직접 wget으로 다운받는다)
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.tar.gz

# 압축풀기(압축파일 삭제는 선택)
sudo tar xzf apache-tomcat-9.0.73.tar.gz
sudo rm -rf apache-tomcat-9.0.73.tar.gz

# Tomcat의 위치 쉽게 찾기 위해 최상위 디렉토리로 이동
# 이 부분도 선택이지만 여기서는 최상위 경로에 있다고 가정할 것이다.
sudo mv /home/ec2-user/apache-tomcat-9.0.73/ /

# 톰캣 서비스 실행
sudo sh /apache-tomcat-9.0.73/bin/startup.sh
-----------------------------------------------------------------------------------------
# Tomcat 디렉토리 속에 다양한 파일이 있지만 중요한 건 이 4가지이다.
[root@ip-172-20-2-221 apache-tomcat-9.0.73]# ls
bin : Tomcat 애플리케이션을 시작하거나 종료할 수 있는 sh파일이 있는 장소
webapps : 웹 페이지를 관리하는 장소
lib : MySQL과 연동을 할 때 필요한 Connector를 넣을 장소
conf : 서버에 관한 정보(포트 등)를 수정할 수 있는 파일이 있는 장소

Tomcat 실행

 

3. Target Group(대상 그룹) 생성

로드밸런서를 만들기 전에 Target Group을 만들어 인스턴스를 넣어둔 후 로드밸런서에서 해당 Target Group에 있는 인스턴스로 HTTP 트래픽을 보내도록 해야 한다.

프로토콜과 포트 부분은 해당 서버로 상태 검사를 하기 위해 요청을 보낼 부분이며 nginx를 사용하는 web Target Group에서는 80번,  Tomcat을 사용하는 was Target Group에서는 8080 포트를 지정해 주면 된다.

 

a. Web Target Group

nginx 기본 포트 : 80, 아래에 상태검사 프로토콜은 건들 필요 없다
Web서버를 선택 후 포함버튼 클릭

 

b. Was Target Group

Tomcat 기본 포트 : 8080
Was서버를 선택 후 포함버튼 클릭

 

결과

 

4. EX-LB(외부 로드밸런서) 생성

 

ALB 선택
'외부'에서 들어오는 트래픽을 web서버로 보내야 하기 때문에 인터넷 경계에 놓는다
서브넷을 만들 때 설정한 가용영역을 선택 후 외부와 통신이 가능해야하기 때문에 public subnet에 위치시킨다.
EX-LB 보안그룹 지정
Web Target Group으로 전달되도록 설정

 

5. IN-LB(내부 로드밸런서) 생성

ALB & 내부에 있는 로드밸런서는 외부에서 접근을 하면 안되므로 안쪽에 놓는다
내부에 놓아야 하니 web서버가 있는 private subnet에 놓자
IN-LB 보안그룹 지정
Tomcat의 기본 포트인 8080으로 Was Target Group으로 전달

 

6. 결과 확인

각 타겟그룹 - 대상 탭에서 상태 확인이 healthy가 뜨면 제데로 구성한 것이다.

 

외부 로드밸런서의 DNS로 접속을 하면 EX-LB(외부 로드밸런서)와 연결된 web서버로 접속이 된다.

EX-LB의 DNS이름으로 접속을 시도하면 Web서버에서 설치한 nginx의 기본 페이지가 뜬다

 

 

IN-LB(내부 로드밸런서)는 안쪽에 놓았기 때문에 바깥에서는 확인을 못하고 web서버에서 curl명령어로 확인 가능하다

# Web 서버에서
# curl [IN-LB DNS주소]:8080
curl internal-IN-LB-abcdefgh.ap-northeast-3.elb.amazonaws.com:8080

이런식으로 html태그가 나오면 정상적으로 작동되고 있다는 뜻이다.

반응형

'AWS > 3tier Architecture' 카테고리의 다른 글

[AWS] AWS 3tier Architecture 구성 7. 오토스케일링  (0) 2023.04.26
[AWS] AWS 3tier Architecture 구성 5. RDS서버 생성  (0) 2023.04.25
[AWS] AWS 3tier Architecture 구성 4. 인스턴스 생성  (32) 2023.04.25
[AWS] AWS 3tier Architecture 구성 3. 보안그룹  (8) 2023.04.23
[AWS] AWS 3tier Architecture 구성 2. 게이트웨이 & 라우팅 설정  (0) 2023.04.23
    'AWS/3tier Architecture' 카테고리의 다른 글
    • [AWS] AWS 3tier Architecture 구성 7. 오토스케일링
    • [AWS] AWS 3tier Architecture 구성 5. RDS서버 생성
    • [AWS] AWS 3tier Architecture 구성 4. 인스턴스 생성
    • [AWS] AWS 3tier Architecture 구성 3. 보안그룹
    레닷
    레닷

    티스토리툴바