본문 바로가기

DevOps/AWS

[AWS] AWS 데이터베이스 실습 - php 애플리케이션 MySQL 데이터 베이스 연결

# EC2를 생성 후 PHP애플리케이션을 구성한다.

# RDS 데이터베이스를 구성하여 연결. PHP는 퍼블릭 서브넷

# MySQL 데이터베이스는 Private 서브넷에 들어간다.


VPC 마법사를 사용하여 VPC생성 후 Private 서브넷 추가하기

  • 아래의 과정을 통해 VPC를 구성한다. 
  • Public과 Private 서브넷이 존재하는 VPC를 구성해야한다.

https://holywat2r.tistory.com/153

 

[AWS] VPC 구성 : 마법사를 통해 생성하기

https://holywat2r.tistory.com/148 [AWS] VPC 생성 https://holywat2r.tistory.com/147 [AWS] Amazon VPC 네트워크 net + work = 연결되어 있는 일 서로 정보를 주고받아 새로운 가치를 생산 네트워크를 구성하기..

holywat2r.tistory.com

 

  • 위의 과정을 진행하였다면 Private Subnet을 하나 더 추가한다.

# 앞서 VPC 마법사로 설정한 Public과 Private 1서브넷의 IPv4 CIDR 블록은 각각 10.0.0.0/24 . 10.0.1.0/24 이므로 지금 생성하는 Private 2 서브넷은 10.0.2.0/24로 구성한다.

 

  • Private 2를 생성하였다면 보안그룹을 새로 생성해준다.

  • 이후 RDS용 보안그룹을 하나 더 생성해준다.

# 인바운드 규칙에서 MYSQL/Aurora 유형의 보안을 설정할 때 소스를 이전에 설정한 보안그룹(SSH, HTTP)으로 정한다. 

# 이렇게 설정할 경우 웹 서버가 이전에 설정한 보안그룹을 사용할 경우 접근을 허용한다는 뜻이다.


RDS에서 서브넷 그룹 생성

  • 데이터 베이스를 구동시킬 서브넷의 그룹이다. 생성을 해보자

  • 그룹이름과 설명을 추가한 후 VPC를 연동한다.

  • Public, Private 1은 2a에 Private 2는 2c 가용영역에 포함되므로 가용영역과 서브넷을 추가한다.

# 서브넷은 퍼블릭을 제외한 프라이빗을 추가하였다.

# 이것때문인지는 모르겠지만 XSHELL에서 SSH 연결은 잘 되었지만 yum 레포지토리 연동이 안되었다.

# 이 과정이후 퍼블릭 서브넷까지 포함을 해 보았더니 yum 명령어가 잘 되었다.


데이터 베이스 생성

  • 순차적으로 데이터베이스를 생성해보자

  • 앞서 생성한 보안그룹을 추가한다.

  • 추가 구성을 통해 초기 데이터베이스 이름을 설정하자


새로운 인스턴스를 생성

  • 인스턴스를 생성할 시 네트워크와 보안그룹만 설정해준다

# 서브넷은 퍼블릭으로 지정해준다.

 

  • 이후 인스턴스를 XSHELL로 접속해보자

sudo -i

# 해당 명령어로 관리자 권한으로 입장 후 아래 명령어 실행

yum update -y
yum install -y httpd php php-mysqlnd
service httpd start

# chkconfig 명령어를 이용하여 서버 부팅 시 웹서버가 자동으로 시작될 수 있또록 설정

chkconfig httpd on

 

# ec2-user에게 웹 서버의 기본 루트 페이지 파일을 수정 변경 가능하도록 설정해야한다

# /var/www 디렉토리의 소유권 및 권한을 변경해야한다.

groupadd www
usermod -a -G www ec2-user

# 재접속 이후 groups 명령어를 통해 www가 추가되어있는지 확인

sudo -i
chown -R root:www /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} +
find /var/www -type f -exec chmod 0664 {} +

# /var/www 및 하위 디렉토리의 권한을 변경하여 그룹 쓰기 권한부여

# /var/www 및 하위 디렉토리의 파일 권한을 변경하여 그룹쓰기 권한 추가


scp를 사용하여 파일 가져오기

  • 로컬 영역에서 scp를 이용하여 /tmp 폴더로 복사해온다.
  • scp <파일 위치> <인스턴스ID>@인스턴스 주소

# 윈도우 파일인 RDS_Source_Update.zip 이라는 파일이 복사가 되었다.

 

unzip RES_Source_Update.zip -d /var/www
cd inc
vi dbinfo.inc
  • DB서버 주소, USERNAME, PASSWORD, DATABASE를 수정하여 저장한 후 아래 주소로 입력하면 웹 서버가 뜬다

# 이후 인스턴스의 DNS 주소 /SamplePage.php 를 입력하면 된다.

http://ec2-3-35-230-201.ap-northeast-2.compute.amazonaws.com/SamplePage.php

# 지금은 닫혀있다.