EC2 동적 사이트 구축

EC2 동적 사이트 구축

EC2 동적 사이트 구축


  • 이번 장에서는 EC2와 WordPress, RDS를 활용해 동적 사이트를 구축해보겠습니다. 이 장에서는 RDS 복제본 사용시 과금이 청구될 수 있습니다.
    이를 원치 않는 분들은, RDS 설정 시, Multi-AZ 설정을 하지 않고, 1개의 Master RDS만 생성 후 진행하세요.

EC2 동적 사이트 구축

 

  • VPC
VPC 이름 IPv4 CIDR
VPC-WordPress 10.0.0.0/16

  • Subnet
Subnet 이름 VPC AZ IPv4 CIDR
WordPress-Public-Subnet VPC-WordPress ap-northeast-a 10.0.1.0/24
WordPress-Public-Subnet2 VPC-WordPress ap-northeast-c 10.0.2.0/24
RDS-Private-Subnet VPC-WordPress ap-northeast-a 10.0.11.0/24
RDS-Private-Subnet2 VPC-WordPress ap-northeast-c 10.0.12.0/24

  • Routing Table
Routing Table 이름 VPC Subnet
Public-rt VPC-WordPress WordPress-Public-Subnet, WordPress-Public-Subnet2
Private-rt VPC-WordPress RDS-Private-Subnet, RDS-Private-Subnet2

  • 보안 그룹
보안 그룹 이름 VPC 인 바운드 규칙 아웃 바운드 규칙
WordPress-sg VPC-WordPress SSH : 22/TCP : 0.0.0.0/24, HTTP : 80/TCP : 0.0.0.0/24 모든 트래픽 : 0.0.0.0/0
RDS-sg VPC-WordPress WordPress-sg, 3306/TCP : WordPress-sg 모든 트래픽 : 0.0.0.0/0
  • 먼저 위의 아키텍처와 표와 같이 VPC와 서브넷을 생성해주세요.
  • 인터넷 게이트 생성 후, VPC에 연결하세요.
  • 모든 라우팅 테이블의 게이트웨이는 인터넷 게이트웨이로 지정해주세요.
  • VPC 사용자 정의 VPC 생성

 

EC2를 활용한 동적 사이트 구축


  • 기본적인 설정을 끝마치셨다면, 이제 동적 사이트 아래의 순서에 맞춰 구현해보겠습니다.

1. RDS 생성
2. 인스턴스 생성
3. ELB 생성

 

1. RDS 생성


  • 먼저 RDS 서브넷의 생성을 위해, RDS > 서브넷 그룹 > DB 서브넷 그룹을 위와 동일하게 생성합니다.

 

  • 기본설정
설정 항목
License Model genral-publicl-license
DB Engine Version 5.7.28
DB Instance Class db.t2.micro
Multi-AZ Deployment General Purpose ( SSD )
Allocated Storage 20 GB
DB 인스턴스 식별자 WordPressDB
마스터 사용자 ID, PW root/qwer1234

  • 네트워크 설정
설정항목
VPC VPC-WordPress
Subnet Group rds-private
Publicly Accessible no
AZ ap-northeast-2a
VPC Security Groups RDS-sg

  • 백업 설정
설정항목
백업 보존 기간 1일
백업 기간 기본 설정 없음

  • 유지 관리설정
설정항목
마이너 버전 자동 업그레이드 사용
유지 관리 기간 기본 설정 없음
삭제 방지 삭제 방지 활성화 X
  • 개인 설정 및 이 이외 값을 기본 값을 유지합니다.

 

2. 인스턴스 생성

  • 다음의 값으로 인스턴스를 생성합니다.
설정 항목
AMI Amazon Linux AMI
Instance Type t2.micro
Network VPC-WordPress
Subnet WordPress-Public
Auto-asstign Public Enable
Name WordPress-a
Security Group Wordpress-sg

 

  • 생성이 완료되면 아래의 미들웨어들을 설치합니다.
  • 유저 이름은 ec2-user입니다.
$ sudo yum install -y php php-mysql php-gd php-mbstring
# 관련 미들웨어를 설치합니다.

$ sudo yum install -y mysql
# mysql을 설치합니다.

$ wget -O /tmp/wordpress-4.1-ja.tar.gz https://ko.wordpress.org/wordpress-4.6.1-ko_KR.tar.gz
# wordpress-4.6.1...의 파일을 wordpress-4.1-ja.tar.gz의 이름으로 다운받습니다.

$ sudo tar zxf /tmp/wordpress-4.1-ja.tar.gz -C /opt
# wordpress 압축파일을 /opt에 압축을 해제합니다.

$ sudo ln -s /opt/wordpress /var/www/html
# 심볼릭 링크를 생성합니다.

$ sudo chown -R apache:apache /opt/wordpress
# wordpress의 소유 권한을 apache로 수정합니다.

$ sudo chkconfig httpd on
# httpd가 정상적으로 작동하는 지 체크합니다.

$ sudo service httpd start
$ httpd 서비스를 시작합니다.

 

  • 설치가 완료되면 DB 접속을 위한 계정을 생성합니다.
$ mysql -u root -p -h [ RDS Endpoint ]
$ password : qwer1234

mysql> create user 'wordpress-user'@'%' identified by 'wordpress';
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to "wordpress-user"@"%";
mysql> flush privileges;

 

  • 계정 생성이 완료되었으면, http://인스턴스의 Public IP/wordpress/wp-admin/install.php로 접속합니다.

 

  • 데이터베이스, 사용자명, 비밀번호에 위에서 생성한 값들을 입력 후, 데이터베이스의 호스트에는 RDS의 엔드포인트 값을 입력합니다.

 

  • 설치를 실행합니다.

 

  • 사이트의 제목과 관리자명 등을 설정합니다.

 

  • 설정이 완료되면, 설정한 계정을 통해 로그인합니다.

 

  • Wored Press의 설치가 완료되었습니다.

 

  • 생성이 완료되면 AMI 이미지를 생성합니다.
  • AMI 이미지를 통해 동일한 인스턴스를 다른 가용영역에 생성합니다.

 

3. ELB 생성

 

  • ELB의 DNS로의 접속이 확인되면, 대상그룹 또한 확인합니다.

 

  • 다음으로는 WordPress의 접속 IP를 변경해보겠습니다.
  • WordPress의 관리자로 접속하여 설정 -> 워드프레스 주소, 사이트 주소를 변경합니다.
  • 워드프레스 주소 : http://[ ALB DNS ]/wordpress
  • 사이트 주소 : http://[ ALB DNS ]
  • ALB에서 Desciption -> Edit stickiness에서 로드밸런서의 쿠키 값을 사용하도록 설정 후, 시간은 1800초로 설정합니다.

 

  • 이제 마지막으로 WordPress-sg의 80/tcp 포트의 대상을 0.0.0.0/0이 아닌, ALB를 대상으로 설정 및, SSH 접속을 해제하면 모든 설정이 완료됩니다.

 

Marketplace를 사용

  • 위 처럼 직접 구현하는 방법 외에도 이미 구현되어 있는 AMI를 구입하여 사용하는 방법도있습니다.

  • 위 그림과 같이 Markplace에서 구입이 가능합니다.
  • Marketplace로 구현을 할 경우, 이미 구축되어진 인프라를 사용하는 만큼, 간편하고 빠르게 사용할 수 있지만, 세부적인 사항에 대해서는 설정이 어렵다는 단점이 있습니다.
RSS Feed
마지막 수정일자