본문 바로가기
DevOps/Cloud

[AWS] PHP설치, RDS 인스턴스 생성

by 태옹 2021. 6. 8.

이전 실습에서는 하나의 EC2에 OS(Ubuntu), 웹 서버(Apache), DB서버(Mysql)까지 설치해봤다.

그러나 사실상 회사에서는 하나의 서버에서 여러가지를 한꺼번에 관리하는 것이 아니라 각각의 기능에 따라 서버를 분리해두게 된다. 이를 토대로 이번 실습에서는 DB서버를 새로 만들어주는 작업을 해볼 것이다.

 

DB는 AWS의 RDS를 사용한다. RDS 인스턴스를 생성하여 저번 포스팅에서도 사용한 Toad for MySQL로 접속해보고, DB에 접근하기 위해 웹페이지를 PHP로 작성해볼 것이다. 이번 포스팅은 기존에 만들어 둔 EC2 우분투 서버에 PHP를 설치하고 RDS를 생성하여 Toad에 연결해보는 것까지 하기로 한다.

(PHP로 DB에 데이터를 넣는 작업은 다음 포스팅에서! 🙋‍♀️)

 

 


 

PHP설치

 

다음 명령어로 php를 설치한다.

php 5.6 버전 설치

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6

 

설치가 잘 되었는지 버전을 확인해본다.

php -version

아래의 이미지와 같이 뜬다면 5.6버전이 잘 설치된 것이다.

 

 

php와 Apache 연동 test
sudo nano /home/index.php

서버에서 php페이지를 띄울 수 있는지 확인해보자.

 

 

nano에디터가 실행되면 창에 아래의 함수를 작성해준다.

<?php phpinfo(); ?> : php소개 출력 함수 작성

 

웹화면에서 확인해 보기

위의 이미지를 확인했으면 성공적으로 php를 설치한 것이다.

 


웹브라우저 url창에 입력하기 : ec2퍼블릭IP/index.php

EC2 서버에 PHP를 설치하는 작업을 완료하였다. 이제부터는 RDS를 생성하여 Toad에서 sql쿼리를 통해 AWS RDS와 데이터를 주고받는 작업을 해보자.

 

 


 

 

RDS란?

https://aws.amazon.com/ko/rds/

 

데이터베이스 관리 시스템 | 관계형 RDS | Amazon Web Services

Amazon Relational Database Service(RDS)를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시

aws.amazon.com

 

아마존에서는 클라우드에 관계형 데이터베이스를 사용할 수 있도록 RDS서비스를 제공한다.

Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database  SQL Server를 비롯한 6개의 익숙한 데이터베이스 엔진 중에서 선택할 수 있다. 실습에서는 MySQL을 사용하기 때문에 RDS에 MySQL을 설치하는 작업을 진행해본다.

 

 

RDS인스턴스 생성

 

데이터베이스 생성

먼저, aws console에 접속하여 RDS페이지로 이동한다. 이미지에 보이는 손 모양이 가르키는 데이터베이스 생성을 눌러준다.

옵션이 많기 때문에 설정 내용을 모두 포함하지 않았다. 언급되지 않은 부분은 디폴트 값으로 놓도록 한다.

 

 

엔진옵션 > MySQL

엔진옵션을 MySQL로 설정한다.

 

 

템플릿 > 프리티어

프로덕션과 개발/테스트는 과금이 발생하기 때문에 프리티어로 지정하도록 하자. 

 

 

설정 > 개인적으로 정한 데이터베이스의 인스턴스 이름과 마스터사용자 이름/암호를 입력

DB인스턴스 이름을 정해준다. 자격 증명 설정은 마스터 사용자의 이름과 암호를 지정해주는 옵션인데, 전의 실습에서 우분투의 마스터 사용자는 root유저였다. 같은 역할을 수행하기 때문에 동일하게 root로 설정해주었다.

 

 

퍼블릭 엑세스 가능 > 예

외부에서도 접근이 가능하도록 설정해야 하기 때문에 퍼블릭 액세스 가능을 '예'로 지정한다. 

 

DB생성은 시간이 조금 걸린다! 🐤🐤🐤

사용가능이 뜨기 전까지 대기한다. 

 

위의 이미지처럼 [상태]가 '사용 가능'으로 뜬다면 생성이 완료된 것이다.

 

 

그 외의 추가 설명

 

  • 읽기 복제본 생성 : 입력,삭제,수정 작업과 단순 조회 작업을 분리해놓음
    • 다수의 사용자가 동시에 데이터베이스에 요청을 보내게 되면 시스템에 과부하가 올 수 있다. R(조회) 작업은 C,U,D보다는 상대적으로 부하가 적기도 하며, CRUD 중 가장 빈도수가 많이 때문에 READ작업만 따로 분리하여 시스템의 부하를 방지하도록 읽기 복제본을 생성할 수 있는 기능이다.
  • 엔드포인트 : RDS는 ip가 아니라 도메인 네임으로 접속할 수 있음
    • 그 도메인 네임이 엔드포인트이다.
    • 얘가 엄청나게 중요한 친구🧏‍♂️ => 말 그대로 DB의 주소! 

 

 

다음으로는 모든 사용자가 접속할 수 있도록 인바운드 규칙을 추가한다.

[인바운드 규칙 편집]을 누르고 아래 이미지처럼 인바운드 규칙을 생성해준다.

우리는 MYSQL을 사용할 것이고, 모든 사용자의 접근을 허용하기 때문에 다음과 같이 규칙을 만든다.

 

tera term의 터미널창에 아래의 명령어를 입력한다.

mysql-u root -p -h 엔드포인트주소

패스워드를 입력하라고 나오는데, 아까 마스터 유저의 패스워드를 설정했을 것이다. 그대로 적어준다.

(이번에도 화면상에는 표시 안 됨!)

 

 

Toad for MySQL 접속

접속하여 connect기능을 눌러주면 낯익은 창 하나가 뜰 것이다.

이번에는 Host에 우리가 방금 생성한 RDS의 엔드포인트를 적어준다. User와 Password에도 아까 RDS를 생성하기 전 설정했던 마스터 유저의 이름과 패스워드를 적어준다. Database에는 mysql로 넣어도 되고, 공백으로 두어도 무관하다.

 

 

지금까지 php 설치와 RDS생성을 진행하였다. 또, 생성한 RDS를 Toad에서 연결하는 작업까지 실습해보았다.

다음 포스팅에서는 php페이지에 파라미터를 입력할 수 있도록 html코드를 작성하는 작업을 하고, php에서 넘긴 파라미터 값을 DB에 입력받는 작업을 해보겠다. 🙋‍♀️🙋‍♀️

 

댓글