ysuekkom의 IT study note

[AWS 패턴] 로드밸런싱 구축 및 DB 연결하기 II편 본문

Cloud Service/AWS 패턴

[AWS 패턴] 로드밸런싱 구축 및 DB 연결하기 II편

ysuekkom 2023. 7. 25. 08:00

 

지난 포스팅에서 기본 환경 구축 및 1개의 퍼블릭서브넷에서 프라이빗서브넷에 위치한 DB로 연결하여 워드프레스 웹 서비스를 구동시키는 것 까지 진행했다. 

자세한 내용은 아래 포스팅을 참고하면 된다.

 

https://ysuekkom8915.tistory.com/57

 

[AWS] 워드프레스 서비스 생성하기 실습 -PublicSubnet에서 private AZ 내 데이터베이스 연결/접속하기

AWS 따라하기 개인 스터디 기록용 AWS 클라우드 서비스 인프라 구축 이해와 해킹, 보안 (보안프로젝트) 이번 실습 포스팅에서는 다중 public AZ에서 로드밸런싱으로 private AZ 내 데이터베이스에 접근

ysuekkom8915.tistory.com

 


이번 포스팅에서는 아래 실습 내용을 진행하겠다.

  • 워드프레스 서비스가 올려진 EC2 인스턴스를 이미지화하여, 새로운 EC2를 생성한다
  • 로드밸런싱(ALB)를 이용하여, 여러 EC2 인스턴스가 DB 연결될 수 있도록 구성한다

 

1. 워드프레스 서비스가 올라간 EC2를 이미지로 만들기

EC2 인스턴스 상탤르 "중지"상태에서 이미지화 할 것

>>EC2 > 인스턴스> 이미지로 만들 EC2 선택(본 실습에서는 wordpress-web01) > 작업-이미지 및 템플릿-이미지 생성

>>이미지 생성하기

  • 이미지 이름/설명
  • 재부팅 안함 옵션 활성화
  • 스토리지 유형 및 다른 옵션 default값 지정

 

 

2. AMI로 새 인스턴스 생성하기

>>EC2 > 이미지 > AMI >사용완료 상태 확인>>AMI로 인스턴스 시작

혹은 EC2 인스턴스 생성하기 > 애플리케이션 및 OS 이미지 선택 시, "내 AMI" 선택해서 생성할 수 있음

 

  • 이름: wordpress_web02
  • 애플리케이션 및 OS 이미지: 내 AMI 탭에서 생성한 wordpress-ami 선택
  • 키 페어: public용으로 만들어둔 키페어를 사용해도 되고, 새로 생성해도 됨(무관)
  • 네트워크 설정: 실습용 생성 VPC로 변경
  • 서브넷: public_subnet02(10.0.1.0/24) 대역 선택
  • 퍼블릭 IP 할당: 활성화(publicSubnet이니까 활성화)
  • 보안그룹: 기존 보안 그룹 선택(Public_WebServer_SG

 

 

PublicSubnet(10.0.0.0/24), wordpress_web01을 스냅샷으로 그대로 가져온 이미지로 만든 EC2이기 때문에 모든 설정이 동일함

>>이전 포스팅에서 언급했던 워드프레스 URL은 정적 주소를 사용하기 때문에 접속 불가 이슈 발생

  • EIP로 고정IP 셋팅하거나
  • LB(LoadBalance) 도메인으로 변경하면 깨짐/끊김/변경 없이 사용 가능 >>LB도메인으로 변경하는 실습 진행

 

3. 로드밸런싱 대상 그룹 생성 및 로드밸런서  생성하기(ALB)

>>EC2> Target groups > 대상그룹 진입: Create target group

  • Target type: Instances
  • 타겟 그룹/protocol&port 입력/선택
  • VPC 선택
  • Health checks: HTTP, / or /index.html
  • Register targets: 타겟 그룹에 등록할 수 있는 인스턴스 목록 보여줌>> wordrpess_web01,  wordrpess_web02 선택

 

 

>>EC2>로드밸런싱>로드밸런서 이동: Create load balancer

  • Create LB type: ALB 선택
  • Name/Scheme/IPv4 
  • VPC/Mappings(public_subent01,02)
  • Security Group: Public_WebServer_SG
  • Listeners and routing: HTTP:80/Default action: wordpress-ALB-target 선택

>>로드밸런싱 설정 완료(빨간 점선)

 

 

4. DB에 ALB 도메인 정보를 적용

DB에 접속하여 로드밸런서의 도메인으로 변경 필요함

sudo mysql -u admin -p -h [RDS 엔드포인트 도메인]

//[wordpress DB 접속]
use wordpress
select * from wp_options where option_id<3;	
update wp_options set option_value='http://[로드밸런서 DNS 도메인 주소]' where option_id<3;
select * from wp_options where option_id<3;	//다시 확인하기

 

 

5. ALB 도메인으로 접속 가능 여부와, 로드밸런싱 정상동작 확인하기

>>ALB 도메인으로 접속 확인

 

 

wordpress_web01 EC2로 접속하여, 테스트 페이지 구성하기

 

>>ALB도메인내에서 1.html로 접속 시, EC2 wordpress_web01에만 생성해놓은 1.html 테스트페이지가 정상적으로 보여졌다가, Not Found가 떴다가 반복하는걸로 로드밸런싱 정상 동작 확인

 

 


마치며

 데이터베이스 연결 실습은 처음으로 진행해보았다. 앞으로 실습 구축 시 콘솔을 이용하여 AWS 서비스중 몇 가지를 더 사용해볼 예정이다. 그 이후에는 테라폼을 이용하여 코드로 인프라 구축하는 실습 위주로 진행하겠다!

 눈으로 확인하거나 이론상으로만 짚고 넘어가는 것 보다, 실제로 환경을 구축해보면 생각하지 못했던 부분에서 막힐 때가 있다. 

그 부분을 해결하면서 AWS 인프라에 대한 이해가 확실히 잡히는 편이니, 조금 귀찮더라도 꼭 콘솔 혹은 테라폼을 이용하여 인프라를 구축해서 시나리오 별로 확인해보길 추천한다!

 

실습 종료 후, 반드시 모든 자원은 삭제 하세요!