AWS 3-tier Architecture 프로젝트 (구성도)
AWS 3-tier Architecture (VPC, Subnet, NAT, Routing Table)
저번 시간에 이어서 AWS 3-tier Architecture 네트워크 구성을 해보겠습니다.
실제 구성에 앞서, 오늘 구성해볼 SG, ELB에 대해서 알아보겠습니다.
SG | ELB |
● SG
- 보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다.
VPC에서 인스턴스를 시작할 때 최대 5개의 보안 그룹에 인스턴스를 할당할 수 있습니다.
보안 그룹은 서브넷 수준이 아니라 인스턴스 수준에서 작동하므로 VPC에 있는 서브넷의 각 인스턴스를
서로 다른 보안 그룹 세트에 할당할 수 있습니다.
※ 인바운드
- 클라이언트가 서버 내부로 들어오는 것 을 말합니다. ( 클라이언트가 서버로 업로드하는 것 )
대표적으로 windows의 방화벽에서는 모든 접속이 기본적으로 차단되어있습니다.
자신의 컴퓨터로 들어오기 시작하는 네트워크 데이터를 말합니다.
※ 아웃바운드
- 서버 밖으로 나가는 것을 말합니다. ( 클라이언트가 다운로드하는 것 )
대표적으로 windows 의 방화벽에서는 모든 접속이 기본적으로 허용되어있습니다.
자신의 컴퓨터에서 나가기 시작하는 네트워크 데이터
NAME | TYPE | PORT | SOURCE |
Bastion-SG | SSH | 22 | 0.0.0.0/0 |
EXELB-SG | HTTP | 80 | 0.0.0.0/0 |
WEB-SG | HTTP | 80 | 0.0.0.0/0 |
INELB-SG | HTTP | 8080 | WEB-SG |
WAS-SG | HTTP | 8080 | INELB-SG |
DB-SG | HTTP | 3306 | WAS-SG |
▶ Bastion Host - SG
- Bastion Host는 private subnet으로 들어가기 위한 일종의 프록시 서버인데 이 Bastion Host에 접속하기 위해서
SSH로 접속을 해야 됩니다.
SSH의 포트 번호인 22와 모든 ip에서 접속할 수 있도록 소스를 0.0.0.0/0으로 설정합니다.
이처럼 Bastion Host - SG 가 생성되었습니다.
인바운드 - SSH ( 모든 ip 에서 허용 )
아웃바운드 - 모두 허용
▶ External Load Balancer - SG
- External Load Balancer 는 외부에서 들어오는 네트워크 데이터를 WEB서버로
자동 분배해주는역할을 맡고 있습니다.
private subnet에 존재하며, 웹서버로 통하는 데이터를 받아서 나누어줘야 되기 때문에 인바운드는 HTTP,
80포트를 설정하게 됩니다. 접속은 모든 ip에서 허용으로 설정해주겠습니다.
인바운드 - HTTP ( 모든접속 허용 )
아웃바운드 - 모두 허용 (Default)
▶ WEB - SG
- WEB서버는 웹브라우저 클라이언트로부터 요청을 받아서 정적인 컨텐츠를 제공합니다.
External Load Balancer 에서 들어온 데이터를 받습니다.
WEB서버에는 APACHE가 설치되어있으며, 기본적으로 HTTP 프로토콜, 80 포트를 사용합니다.
인바운드 - HTTP, 80번 포트 ( 모든 ip에서 접속 허용 )
아웃바운드 - 모두 허용
▶ Internal Load Balancer - SG
- WEB 서버를 거처 WAS 서버로 가는 데이터를 분배해주는 역할을 합니다.
WEB서버에서 나오는 데이터를 WAS서버로 전달해주어야 되기 때문에 WEB 보안 그룹과
8080 포트를 설정해줍니다.
인바운드 - 사용자 지정 TCP / 8080포트 ( WEB 보안 그룹을 거친 데이터만 허용 )
아웃바운드 - 모두 허용
▶ WAS - SG
- HTTP를 통해 들어온 요청을 동적인 컨텐츠를 제공합니다.
Internal Load Balancer를 통해 분배되어 전달된 데이터를 수행합니다.
Internal Load Balancer 보안 그룹을 통해 들어온 데이터만 통과할 수 있습니다.
APACHE Tomcat의 8080 포트로 설정합니다.
인바운드 - 사용자 지정 TCP / 8080 ( Internal Load Balancer 보안 그룹을 거친 데이터만 허용 )
아웃바운드 - 모두 허용
▶ DB - SG
- WAS에서 넘어온 데이터를 반환해줍니다.
WAS 보안그룹을 통하여 들어온 데이터만 통과 가능합니다.
MYSQL DB를 설정하며, 3306 포트를 사용합니다.
인바운드 - 3306 포트 ( WAS 보안 그룹을 거친 데이터만 허용)
아웃바운드 - 모두 허용
이로써 총 6개의 보안 그룹이 생성된 걸 확인할 수 있다.
● ELB ( Elastic Load Balancing )
- 로드 밸런싱이란, 서버에 가해지는 요청 등 부하를 적절하게 분배해주는 역할을 맡고 있습니다.
네트워크 기법인 라운드 로빈 알고리즘을 사용합니다.
이제부터 만들게 될 EX-ELB는 외부 인터넷에서 들어오는 요청을 public zone에서 private zone에 있는
WEB서버들에게 골고루 배분해주는 역할입니다.
IN-ELB는 WEB를 거쳐 동적인 컨텐츠를 요구하는 요청들을 WAS 서버들로 분배해서 전달해주는 역할입니다.
EX-ELB
외부로부터 들어오는 요청을 WEB서버로 나누어주는 역할인 External Load Balanacer부터 생성해보겠습니다.
파란색 Load Balancer 생성 버튼을 눌러줍니다.
Load Balancer에서 Application Load Balancer을 클릭하여줍니다.
▶1단계 : Load Balancer 구성
유형 선택을 한 뒤 이름과 체계, 아이피 주소 유형을 선택합니다.
이름은 EX-ELB, 체계는 외부와 통신할 수 있는 인터넷 경계를 선택, ipv4를 선택합니다.
VPC는 3 tier VPC와 미리 설정해둔 가용 영역을 선택해줍니다.
External Load Balanacer는 외부 인터넷에서 들어온 요청을 배분해줘야 하므로
public subnet으로 설정해줍니다.
▶ 2단계 : 보안 설정 구성
HTTPS 보다 보안에 취약한 HTTP를 설정해서 경고문이 뜨지만 그냥 넘어가 줍니다.
▶ 3단계 : 보안 그룹 구성
앞에서 만들어 두었던 EX-ELB-SG 보안 그룹을 선택해줍니다.
▶ 4단계 : 라우팅 구성
Load Balancer로 들어온 요청을 어떤 대상에게 보내는지, 어떤 프로토콜과 포트를 사용하는지 등을 설정해줍니다.
▶ 5단계 : 대상 등록
Load Balancer를 통해 들어온 데이터를 어떤 인스턴스로 보낼 것인지 대상 등록을 하는 과정입니다.
WEB1,2를 골랐어야 하지만 지금은 만들어두지 않았으므로 넘어가 줍니다.
▶ 6단계 : 검토
지금까지 설정한 EX-ELB 사항을 검토한 뒤 생성을 눌러줍니다
생성을 눌러 주게 되면 이렇게 EX-ELB가 생성된 걸 볼 수 있습니다.
IN-ELB
WEB서버에서 WAS 서버로 넘어가는 데이터를 분배해주는 IN-ELB를 만들어 보겠습니다.
▶ 1단계 : Load Balancer 구성
EX-ELB와 마찬가지로 VPC와 AZ를 선택해줍니다.
IN-ELB로 이름을 설정합니다
체계는 EX-ELB와 다르게 private zone안에서 작동하기 때문에 내부로 선택하여줍니다.
▶ 2단계 : 보안 설정 구성
참고만 하고 넘어가 줍니다.
▶ 3단계 : 보안 그룹 구성
미리 만들어두었던 IN-ELB-SG 보안 그룹을 선택하여줍니다.
▶ 4단계 : 라우팅 구성
ELB를 통해 데이터가 어떤 방식으로 나아갈 것인지 구성을 해줍니다
WAS 서버는 APACHE Tomcat을 사용하므로 HTTP와 8080 포트를 사용합니다.
▶ 5단계 : 대상 등록
ELB 통해 WAS 서버로 나아가기 때문에 WAS 서버를 등록해야 되지만
만들어둔 인스턴스가 없으므로 넘어가 줍니다.
▶ 6단계 : 검토
지금까지 설정한 IN-ELB 구성을 확인하여 줍니다.
검토를 끝내고 생성을 누르게 되면
지금까지 만들었던 EX-ELB, IN-ELB 가 active 상태인 것을 확인할 수 있습니다.
이로써 3 tier Architecture의 네트워크 구성인 SG, ELB까지 설정을 마치게 되었습니다.
다음에는 EC2를 생성하여
Bastion Host, WEB, WAS, RDS를 설치해보도록 하겠습니다.
'Cloud > Project' 카테고리의 다른 글
AWS 3-tier Architecture 서버 생성 및 연동 ( WAS, WEB -WAS 연동) (1) | 2021.05.31 |
---|---|
AWS 3-tier Architecture 서버 생성( Bastion, WEB, EX-ELB ) (2) | 2021.03.30 |
AWS 3-tier Architecture Network ( VPC, Subnet, NAT, Routing Table ) (1) | 2021.03.08 |
AWS 3-tier Architecture 프로젝트 (1) (2) | 2021.03.03 |