SERVER/linux

AWS EC2 ubuntu20.04 서버 설정

자코린이 2022. 2. 27. 18:12

aws ec2에 APM서버를 열기 위해서는 다음 과정이 필요합니다.

1. aws 가입 및 인스턴스 생성

2. 보안그룹추가로 필요한 보안 허용

3. apache2, php, mysql 설치

4. 서버 상태 확인 

그럼 처음부터 시작해 봅시다.

 

설치순서는 apache, mysql, php 순서입니다.

이 순서를 꼭 지켜주세요.

 

 

1. aws 가입 및 인스턴스 생성

구글에 aws를 치면 아마존 웹 서비스가 나옵니다. 거기로 들어갑니다.

회원가입을 하시고, 인스턴스를 생성합니다.

이제 서비스 검색창에 ec2를 치시면 아래화면이 나옵니다.

'인스턴스 시작'을 눌러주세요(만약 서버 시간을 서울로 바꾸고 싶다면 '버지니아 북부'를 클릭하여 서울로 바꿉니다.)

클릭 후 ubuntu20.04버전을 클릭하고 다음을 누릅니다.

2. 보안그룹에서 필요한 보안을 허용해줍니다.

저는 apm을 사용하여 http, mysql, ftp를 하용해 줄 겁니다.

검토 및 시작을 누르면 아래 화면이 나오는데 새로운 키를 생성하여 사용해 줍니다.

이제 연결을 하여 서버 설정을 해주면 됩니다.

그냥 aws에서 연결을 하여 사용할 수 있고, 다른 여러가지 방법을 사용할 수 있습니다.(aws에서 연결하여 사용시, 움직임이 없으면 자동으로 로그아웃되어 다시 연결해주어야 합니다.)

그래서 저는 ssh를 사용해 연결하겠습니다.

만약 클라이언트 os가 윈도우면 putty사용을 권장합니다.

https://www.putty.org

 

Download PuTTY - a free SSH and telnet client for Windows

Is Bitvise affiliated with PuTTY? Bitvise is not affiliated with PuTTY. We develop our SSH Server for Windows, which is compatible with PuTTY. Many PuTTY users are therefore our users as well. From time to time, they need to find the PuTTY download link. W

www.putty.org

 

저는 맥을 사용하므로 맥 사용법으로 알려드리겠습니다.

인스턴스를 생성할 때 다운받은 키가 있는 곳에서 터미널을 열어주세요.

열린 터미널에서 다음 명령어를 쳐주세요.

chmod 400 다운받은 키 이름.pem

이는 키페어의 권한을 설정하는 명령어입니다.

그 다음 aws 연결에 나오는 명령어를 치시면 연결이 됩니다.

 

이제 연결까지 끝났습니다.

3. APM설치 및 서버 세팅

 

일단 root 계정부터 사용해 봅시다

sudo su

보안을 위해 root의 비밀번호를 바꿉니다.

sudo passwd root

 

 

서버에 필요한 여러가지를 다운 받기 위해 apt를 업데이트 및 업그레이드 해주어야 합니다.(root상태에서 하시면 좋습니다.)

sudo apt update -y

sudo apt upgrade -y

 

apache나 nginx를 설치해줍니다. 저는 apache를 사용합니다.

sudo apt-get install apache2

중간에 나오는 선택은 y를 눌러줍니다.(또는 명령어에 -y를 넣습니다.)

pstree

이 명령어는 사용중인 프로세스를 트리형식으로 보여주는 명령어 입니다.

이를 통해 apache가 동작하는 것을 확인합니다.

처음 os시작시 apache2를 시작하게 설정합니다.

sudo systemctl enable apache2

여기서 기본 apache의 html폴더는 var/www/html 입니다.

 

 

mysql(mariaDB)설치

sudo apt-get install mysql-server

이 또한 중간에 나오는 물음에 y를 눌러줍니다.

보안 강화를 위해 아래 명령어를 칩니다.

sudo mysql_secure_installation

설치가 끝나면 pstree로 확인을 합니다.

 

설치가 끝나면 mysql 을 설정해 줍니다.

1) 방화벽을 허용합니다.

sudo ufw allow mysql

 

2) 처음시작시 mysql이 시작하도록 설정합니다.

sudo systemctl enable mysql

 

3) mysql에 접속합니다.

sudo /usr/bin/mysql -u root -p

비밀번호는 root와 동일합니다.

 

4)유저 생성

외부 ip에서 접근가능한 유저를 생성합니다.

이를 위해 mysql DB를 사용합니다.

use mysql;
CREATE USER 'userid'@'%' IDENTIFIED BY 'passwd';

%는 외부 모든 아이피에서 접근을 허용하는 유저입니다.

 

생성후 이를 메모리에 기억하기 위해 아래 명령어를 사용합니다.

FLUSH PRIVILEGES;

 

5) 데이터베이스 생성

새롭게 만든 유저가 사용할 데이터베이스를 생성합니다. 

CREATE DATABASE name;

데이터베이스가 만들어졌는지 확인합니다. 

SHOW DATABASES;

 

6)유저에게 권한 허용

APP 데이터베이스 아래 테이블에 모든 권한을 부여합니다.

 GRANT ALL PRIVILEGES ON APP.* TO 'userid'@'%';

이를 메모리에 저장합니다.

FLUSH PRIVILEGES;

 

 

외부에서 mysql을 연결하기 위해 mysql 설정을 고칩니다.

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

i를 눌러 설정파일을 고칩니다.

이는 127.0.0.1(localhost)만 허용하던 설정을 0.0.0.0(모든 ip)을 허용해 주는 설정입니다.

고친다음 esc를 누르고, :wq를 눌러 변경값을 저장하고 나옵니다.

 

설정이 끝났다면 mysql을 다시 시작합니다.

 sudo systemctl restart mysql.service

 

 

php설치

sudo apt install php libapache2-mod-php php-mysql
 sudo apt install php-{bz2,imagick,imap,intl,gd,mbstring,pspell,curl,readline,xml,xmlrpc,zip}

 

 

여기까지 완료했다면 

/var/www/html 아래에 info.php를 생성하여 php가 동작하는지 확인합니다.

 

sudo vi /var/www/html info.php

 

<?php 
phpinfo();
?>

 

 

처음에 설치할 때 php를 mysql보다 먼저 설치하여, php가 인식이 안 되는 오류가 발생하였습니다.

꼭 순서를 지켜주세요.

 

ftp를 사용하시려면 아래 내용을 참고해주세요

2022.03.01 - [개발일지/서버] - EC2 ubuntu 20.04LTS vsftpd설정

 

EC2 ubuntu 20.04LTS vsftpd설정

ubuntu의 ftp를 사용하려면 ubuntu에서 기본으로 제공하는 ftp인 vsftpd를 사용하여야 합니다. 이 vsftpd를 다운로드하기 위해서 apt를 업데이트해줍니다. sudo apt-get update 업데이트가 완료되었다면 이제 vs

jacorinne.tistory.com

 

서버와 연결을 끊으시려면 exit명령어를 칩니다.

이 모든것을 하면 외부에서 mysql이 잘 접속되고, apache서버가 웹에서 접근이 됩니다.

이제 php로 백을 만드는 코딩만 해주면 끝입니다.

행복한 코딩시간을 가져봅시다. :)

 

혹시 윈도우에서는 어떻게 서버를 관리하는지 궁금하시면 아래 내용도 도움이 됩니다.

https://jacorinne.tistory.com/30

 

2. AWS EC2 윈도우 서버 설정

서버는 aws의 ec2를 사용하여 간단히 구성할 것입니다. 서버는 리눅스, 윈도우 서버가 대표적입니다. 리눅스는 서버 세팅이 복잡하지만, 서버를 운영하는데 필요한 여러 가지 요소들을 제공해줍

jacorinne.tistory.com