처음 만나는 클라우드 보안

[AWS]EC2를 활용한 웹페이지 구축 (Apache2-MySQL) 본문

클라우드 기초/Amazon AWS

[AWS]EC2를 활용한 웹페이지 구축 (Apache2-MySQL)

영민하게 2022. 6. 10. 20:34
반응형

EC2 서비스를 활용한 3-Tier 구축 (Client - Web - DB)

 

3-Tier 웹서비스구성도

[이전글] 2022.06.10 - [인프라 & 클라우드] - Amazon EC2 서비스란? 인스턴스 보안 & 원격접속 설정

1. VPC 설정

콘솔 > VPC > VPC생성

'VPC,서브넷 등'을 통해 VPC와 연결되는 모든 네트워크 개체들을 자동으로 설정할 수 있다. IP값은 중복 없이 자동으로 부여되며, 생성된 태그는 서브넷, 라우팅 테이블의 태그로 동일하게 지정된다.

VPC, 서브넷 등 선택

 

전체 콘솔 > 서브넷 에서 Public서브넷과 Private서브넷 생성 확인
라우팅 테이블도 외부 접속을 허용하는 0.0.0.0/0 대상 설정 확인

2. 서버 구축

1) DB서버 구축

Public Subnet설정, ssh 접속 후 MySQL설치

 

- MySQL설치

$ sudo apt update // apt업데이트

$ sudo apt install mysql-server    //Database설치 (MySQL)

 

- MySQL설정

$ sudo mysql -u root -p    //MySQ접속, 패스워드 없음, 엔터mysql> create database gnuboard;

mysql> create database gnuboard;   // 데이터 베이스 생성
mysql> create user board@'%' identified by 'pass12#$';    // '%' => MySQL에 대한 외부IP의 접속허용
mysql> grant all privileges on gnuboard.* to board@'%' ;    //board에게 gnuboard의 모든 테이블 권한 부여

 

- MySQL 외부 사용 설정

$ cd  /etc/mysql/mysql.conf.d

$ sudo  vi  mysqld.cnf

# bind-address 127.0.0.1  // bind-address 127.0.0.1 주석처리

$ sudo  service  mysql  restart                  // mysql 재시작

 

2) web서버

VPC:Public Subnet 설정 및 Apache2 설치

 

- Apache2 설치

$ sudo apt update // apt업데이트

$ sudo apt install apache2    // 웹서버 설치

$ sudo apt install php php-mysql php-common php-gd php-fpm php-xml php-json php-curl 

// 웹서버에 필요한 언어 설치 (총 9개)

 

- GNUboard소스코드 다운

$ cd /var/www/html
$ sudo git clone http://github.com/gnuboard/gnuboard5    //githun에서 소스코드 다운
$ cd gnuboard5
$ sudo mkdir data
$ sudo chmod 707 data    // 사용자 및 다른 사용자에게 읽고 쓰기 실행 권한 설정
$ sudo service apache2 restart    //웹서버 재시작

 

- GNUboard-MySQL접속

https://ip주소/gnuboard5 접속

localhost는 DB서버의 사설 IP입력 / 비밀번호 pass12#$로 설정

 

3-Tier로 구성된 웹페이지 구동확인


개념 정리

서버: 서비스를 제공하는 주체

ex) apache2 - 웹서비스를 제공하는 프로그램(주체)

ex) MySQL-server DB서비스를 제공하는 프로그램(주체)

반응형
Comments