AWS/3tier Architecture
[AWS] AWS 3tier Architecture 구성 7. 오토스케일링
web, was, db는 전부 연결이 정상적으로 된 것이 확인되었으니 nginx, tomcat을 활용하여 원하는 웹 페이지를 꾸미면 된다. 이번 장에서는 오토스케일링을 할 것이다. 오토스케일링을 하려면 우선 시작 템플릿이 무조건 필요하다. 토폴로지에 나온 것 처럼 Web서버와 Was서버에 오토스케일링 설정을 할 것이다. 1. 시작 템플릿 생성 생성 했으면 was서버도 똑같이 하면 된다. 2. 오토스케일링 그룹 생성 3. 오토스케일링 테스트 오토스케일링 생성이 확인되었으면 원래 있던 인스턴스는 있어도 되고 없어도 된다. 만들어진 웹 서버에 들어가서 cpu부하를 주자 # Amazon Linux 2023 yum -y install stress stress -c # 코어 수를 정하면 해당 코어 개수에 100% ..
[AWS] AWS 3tier Architecture 구성 6. 로드밸런서 생성
로드밸런서는 네트워크 트래픽을 여러 대의 서버에 분산시켜 부하를 균형화하는 역할을 한다. 또한 외부에서 일반적으로는 접속하지 못하는 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..
[AWS] AWS 3tier Architecture 구성 5. RDS서버 생성
RDS서버는 서버 생성 시 EC2인스턴스처럼 주소가 나오는 것이 아닌 도메인 형식의 엔드포인트 주소만 나오게 된다. 이전 단계에서 만든 DB인스턴스에서 RDS서버의 엔드포인트 주소로 연결을 하여 데이터를 관리해야 한다. 1. RDS 생성 인스턴스와 다르게 5~10분 정도 있다가 생성이 된다. RDS 생성 말고도 RDS와 관련된 활동은 대부분 시간이 꽤 걸리는 편이다. 2. 읽기 전용 복제본 생성 데이터가 많아져서 속도가 느려질때 읽기 전용 복제본으로 읽기 속도를 높일 수 있다. rds 생성과정과 동일하므로 굳이 과정을 넣지는 않겠다 3. DB서버에서 MySQL 설치 sudo apt-get update sudo apt install net-tools sudo apt-get install -y mysql-s..
[AWS] AWS 3tier Architecture 구성 4. 인스턴스 생성
인스턴스는 A가용영역에 있는 4개의 인스턴스가 필요하다. C가용영역에 있는 인스턴스는 지금 만드는 것이 아닌 오토스케일링으로 만드는 것이다. Bastion - ssh를 이용하여 private subnet에 있는 서버에 접속하기 위한 서버 Web - 웹페이지를 나타내는 서버 Was - 데이터 처리를 담당하는 서버 DB(RDS) - 데이터베이스 서버 아래에 적힌 AMI파일은 필자가 해당 OS로 생성을 했을 때 그 서버에 필요한 패키지 파일의 설치가 수월하게 된 OS이며 타 OS에서도 잘 설치할 수만 있다면 다른 것을 골라도 무관하다. 1. Bastion AMI : Amazon Linux 2023 Instance type : t2.micro(free tier) Key pair : .ppk 파일로 생성(putt..
[AWS] AWS 3tier Architecture 구성 3. 보안그룹
보안 그룹은 각 인스턴스에서 접근을 허용할 IP 또는 프로토콜을 제어하는 역할을 한다. 1) 보안그룹 설정(인바운드 규칙) 이름 프로토콜 포트 대상 Bastion SSH 22 0.0.0.0/0 EX-LB HTTP 80 0.0.0.0/0 Web SSH, HTTP 22, 80 Bastion, EX-LB IN-LB 사용자 지정 TCP 8080 Web Was SSH, 사용자 지정 TCP 22, 8080 Bastion, IN-LB DB SSH, MySQL 22, 3306 Bastion, Was 22 : SSH 80 : HTTP 3306 : MySQL 8080 : Tomcat
[AWS] AWS 3tier Architecture 구성 2. 게이트웨이 & 라우팅 설정
프라이빗, 퍼블릭 서브넷에서 외부와 통신을 하기 위해서는 Nat, Internet Gateway가 필요하다. Nat Gateway는 프라이빗 서브넷에서 인터넷과 통신이 되게 하는 역할이고 Internet Gateway는 퍼블릭 서브넷에서 인터넷과 통신을 가능하게 해 준다. 1) Internet Gateway 생성 생성 후 VPC에 연결을 해주자 2) Nat Gateway 생성 Nat Gateway를 통해 private subnet에서 인터넷이 되게 하려면 게이트웨이를 public subnet에 생성해야 한다. 인터넷과 통신을 하기 위해서는 공인 IP가 필요하므로 탄력적 IP도 할당해 준다. 3) public 라우팅 테이블 설정 방금 만든 게이트웨이를 라우팅 테이블에 등록하자. public subnet에서..
[AWS] AWS 3tier Architecture 구성 1. VPC & Subnet
[VPC] main vpc 172.20.0.0/20 [Subnet] Bastion Public1 172.20.0.0/24 Web Private1 172.20.1.0/24 Was Private1 172.20.2.0/24 DB Private1 172.20.3.0/24 Bastion Public2 172.20.4.0/24 Web Private2 172.20.5.0/24 Was Private2 172.20.6.0/24 DB Private2 172.20.7.0/24 1) VPC 생성 2) Subnet 생성 필자는 리전을 오사카로 했지만 서울리전은 프리티어로 많이 사용하는 t2.micro 인스턴스가 가용영역 a와 c에서만 생성 가능하므로 1번 서브넷은 a로, 2번 서브넷은 c로 하면 된다. 만약 오사카 리전에서 하..
[AWS] AWS 3tier Architecture 구성
- 구상도 내가 가지고 있는 AWS인프라 구축 지식들을 다시 한번 정리할 겸 이 블로그에 글을 작성하며 본인 역시 처음에 구축할 때 굉장히 고생했던 경험이 있어 AWS환경에 익숙하지 않은 사람들도 이해하기 쉽게 작성할 것이다. 목차 1. VPC & Subnet 2. 게이트웨이 & 라우팅 설정 3. 보안그룹 4. 인스턴스 생성 5. RDS서버 생성 6. 로드밸런서 생성 7. 오토스케일링