웹 애플리케이션 배포 - Part 1 (VPC, EC2, RDS 생성)
목표 : 웹 애플리케이션은 퍼플릭으로 하고 DB 서버는 프라이빗으로 한다. 웹 애플리케이션에서 들어오는 접근만 허용하게 DB 서버 구현
- VPC 리소스 구현
- EC2 생성
- RDS 생성
- EC2와 RDS 연동
실습 :
▶ VPC 리소스 구현
VPC
AWS VPC에서는 IP Address를 CIDR( Classless Inter-Domain Routing)로 표기한다. 또 AWS에서는 0, 1, 2, 3, 255는 예약되어 있으므로 사이더 값이 24일 때 251개의 IP만 사용이 가능하다. 한 번 설정한 VPC CIDR은 변경할 수 없으므로 초기 설정 시 넉넉히 설정하는 것을 권장한다.
step 1) VPC 이름, CIDR 블록 설정
step 2) DNS 호스트 이름도 활성화 해 놓아야 한다.
인터넷 게이트웨이
step 1) 인터넷 게이트웨이 생성
step 2) 생성된 인터넷 게이트웨이와 VPC를 연결해 주어야 한다. CLI 환경에서 작업할 수 있는 명령도 아래 공유되어 있다.
서브넷
퍼블릭 서브넷 1개와 프라이빗 서브넷 2개를 생성 해 준다.
step 1) vpc를 지정해 주어야 한다.
step 2) 서브넷 이름, 가용 영역, IPv4 CIDR을 지정해 준다.
public - 192.168.0.0/24 (ap-northeast-1a)
private 1 - 192.168.1.0/24 (ap-northeast-1a)
private 2 - 192.168.2.0/24 (ap-northeast-1c)
라우팅 테이블
퍼블릭 라우팅 테이블과 프라이빗 라우팅 테이블을 생성한다.
step 1) vpc를 지정해 주어야 한다.
step 2) public 라우팅 테이블에 public 서브넷, private 라우팅 테이블에 private 서브넷을 연결해 준다.
step 3) public 라우팅 테이블은 인터넷 게이트웨이와 연결시켜야 한다.
보안 그룹
step 1) 보안 그룹 name, description, vpc 지정해 주어야 한다.
step 2) 인바운드 규칙을 설정해 준다.
Web SG - 유형 : HTTP, HTTPS, SSH 소스 유형 : 위치 무관
DB SG - 유형 : MYSQL/Aurora 소스 유형 : Web SG
▶ EC2 생성 ( 웹 서버 ) - 프리티어 사용 환경
step 1) Amazon Machine Image(AMI) 선택
step 2) 인스턴스 유형 선택
step 3) 인스턴스 세부 정보 구성
[인스턴스 개수, VPC, Public 서브넷 연결, 퍼블릭 IP 자동 할당-활성화]
[사용자 데이터 설정을 통해 패키지 설치]
스크립트를 사용하면 로그인하여 소프트웨어를 수동으로 구성할 필요 없이 새 인스턴스를 구성할 수 있음. Windows인스턴스 구성에는 powershell 스크립트를 사용함.
#!/bin/sh
# Install Apache Web Server and PHP
yum -y install httpd mysql python3-pip mariadb-server MySQL-python boto3 git
amazon-linux-extras install -y php7.3
# Turn on web server
chkconfig httpd on
service httpd start
service mariadb start
step 4) 스토리지 추가 - 기본 선택
step 5) 태그 추가
step 6) 보안 그룹 설정
step 7) 키 페어 생성 혹은 기존 키 페어 사용
새로 생성시 키 페어 다운로드하고 잘 보관하여야 한다. AWS CLI 환경으로 접근 시 사용!
step 8) 인스턴스 시작
▶ RDS 생성 ( DB 서버 ) - MySQL
서브넷 그룹 생성
step 1) 서브넷 그룹 이름, description, vpc 설정
step 2) 서브넷 추가 : 같은 VPC 안에 가용 영역이 서로 다른 서브넷 두개를 선택하여야 한다.
데이터베이스 생성
step 1) 엔진 선택
step 2) 템플릿 선택 - 프리 티어
step 3) 엔진DB 인스턴스 name, master 사용자 이름 & 암호
step 4) DB 인스턴스 크기와 스토리지는 프리티어를 선택하였기 때문에 기본 설정에 따른다.
step 5) 연결할 VPC 와 서브넷 그룹 선택; 퍼블릭 액세스 가능하게 하고 보안 그룹: DB SG을 사용 한다.
* 보안 그룹을 잘 못 설정하면 웹 서버랑 연동이 안 될 수 있으니 꼭 확인 !!
step 6) 생성될 때까지 시간이 걸림 ...