본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# AWS

Beanstalk을 통한 웹 애플리케이션 배포 및 관리

by iamlucia 2020. 8. 5.

AWS Beanstalk ?


: 도커 컨테이너를 기반으로 애플리케이션을 쉽게 배포할 수 있고 운영 및 관리를 하는 서비스

✔️ 별도의 사용료는 없고, 사용한 AWS 리소스 만큼 비용이 과금
✔️ 알아서 EC2 인스턴스 유형을 변경
✔️ Auto Scaling으로 EC2 인스턴스를 늘리고, ELB 로드 밸런싱을 통한 부하 분산으로 애플리케이션 배포까지 자동

 

📍 실습: Beanstalk으로 웹 애플리케이션 배포  및 데이터 관리


1. VPC 및  Subnet 구성 (IGW  및 Router table)

🌐 VPC: 10.0.0.0/16
🌐 Subnet for ELB: 10.0.1.0/24
🌐 Subnet for Web Instance: 10.0.2.0/24 

 

VPC 설정

 

Subnet 설정 

 

생성된 Route Table(0.0.0.0으로 경로 추가 설정 필요) 

 

Gateway 생성 후 Routing Table에 Attach하여 인터넷 연결 가능하게 설정 

 

2. 배포할 웹 애플리케이션 파일 준비 후  Elastic Beanstalk 생성

 

Beanstalk > Create Application 

 

미리 작성해둔 code file 업로드 후 [ more configuration ]클릭 

 

4. VPC와 서브넷 생성 

 

미리 생성해둔 VPC 적용하여 인스턴스가 생성될 Subnet 설정 

 

네트워크 설정 완료 확인 

 

5. 배포된 웹 애플리케이션 확인 

 

생성 완료된 app과 env 확인 / 생성된 env URL로 접속하여 배포된 웹 애플리케이션 확인 

 

 

6. Beanstalk을 통해 생성된 인스턴스와 IAM, Security Group 세부 정보 확인 

 

생성된 인스턴스: 해당 인스턴스[LuciaSite-env-1]의 공인IP로 접속하면 웹 애플리케이션이 확인됨 

 

인스턴스 세부 사항 확인(이중 SG, Subnet, IAM은 추후 수정 필요) 

 

7. 자동 생성된 DynamoDB 확인 

 

함께 생성된 DynamoDB 확인

 

현재 입력값이 없어 해당 테이블에는 어떤 항목도 존재하지 않음

 

8. DynamoDB에 접근할 수 있는 역할 생성 

 

Beanstalk을 통해 함께 생성된 Role에 

DynamoDB 및 SNS 서비스에

접근 가능한 정책을 attach한다. 

Beanstalk을 통해 함께 생성된 role 확인 및 [ Role name ] 클릭 

 

 [ Attach Policies ] 클릭 후 [ Create Policy ] 하여 정책 생성 시작 

 

DynamoDB와 SNS 서비스의 모든 자료에 모든 권한을 가지는 정책 생성 완료
Beanstalk 으로 생성된 role에 해당 정책 attach

 

9-1. Elastic Load Balancer 및 해당 Security Group 설정

 

LoadBalancer를 생성하기 전,

LB용 Security Group 생성

 

Inbound rules : 모든 곳에서 80번 포트로 접속하는 트래픽 허용

 

 [ Create Load Balancer ] 클릭하여 name, vpc 지정

 

LoadBalancer가 위치하는 Subnet 지정 

 

미리 생성해둔 보안그룹(SG) 적용

 

로드밸런서에서 부하를 분산할 인스턴스의 상태(실행 중인지) 체크할 수 있는 방식 지정 

 

로드밸러선에서 부하를 분산할 인스턴스 추가(실습용이므로 인스턴스 1개로 실행) 

 

ELB를 구별할 수 있는 태그 부착 

 

생성 완료된 ELB 및 ELB의 DNS 네임 확인 

 

9-2. Instance의 Security Group 

 

인스턴스에 자동 부착된 Security Group 수정 

 

Inbound Rules of Instance : 로드밸런서에서 들어오는 트래픽만이 인스턴스로 접속 가능할 수 있게 설정

 

10. Security Group 적용 여부 확인 ❗❗

 

ELB DNS Name으로 접속 가능 / Instance IP로 바로 접속 불가능 확인

 

11. Application 과 DynamoDB 연계 확인 

 

정보 입력 후 입력 성공 메세지 "Thanks for signig up! Welcome to YoungEun World" 확인 

 

DynamoDB > Tables > Items 에서 입력값 확인 

 

12. SNS 서비스 이용 

 

SNS > Beanstalk 생성과 함께 생성된 Topic 확인

 

해당 Topic 선택 , SNS 프로토콜, SNS 받을 곳 정보 입력한 후, 해당 메일의 수신함에 접속하여 확인

 

이메일의 [ Confirm subscription ] 클릭한 다음 화면 확인