요즘 다시 팀원들과의 프로젝트를 위해 서버를 구축하여 사용하고 있습니다.

 

AWS EC2 프리티어를 이용하여 서버를 구축해서 사용하고 있는데,

 

프리티어 이고 아이디가 아직 1년도 지나지 않았는데, 0.27 달러 정도 아주 조금씩이라도 과금이 쌓이고 있더라고요.....!

 

그래서 Billing을 들어가서 상세 내역을 보았는데, 일단 대부분이 Elastic IP (탄력적 IP허용) 에 과금이 조금씩 되고 있더라구요...!

 

탄력적 IP기능이란, AWS EC2의 경우 IP를 동적할당 함으로써 인스턴스를 중지 하고 다시 실행할 경우

 

IP주소가 바뀌게 되는데, 이럴때 인스턴스를 껐다 켜도 IP주소를 고정으로 사용하고 싶을 때 사용하는 기능입니다.

 

프리티어는 한달에 750시간까지 무료인 것으로 알고 있고, 인스턴스 하나만 돌릴경우 한달 내내 켜놓아도 과금이 되지 않는 시간입니다.

 

인스턴스를 여러 개 사용하거나 한다면, 과금을 조금 하거나, 인스턴스 사용량을 조절을 해주어야 겠지요....?

 

사용량을 조절하는 과정에서 탄력적IP는 꽤나 편리할 것으로 보이지만, 저는 일단 그쪽에서 과금이 조금 되길래

 

인스턴스가 아직 한개이고, 중지 시킬일도 별로 없어서 일단 탄력적 IP를 릴리스 했습니다.

 

RDS 쪽에서도 아주 조금 과금이 되던데 백업스토리지 쪽에서 빠져나가고 있네요..!

 

사실 지금까지 합쳐도 300원 수준이라... 하지만 찝찝하고 약간은 불안한 마음...ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

 

ec2 인스턴스에서 임대한 서버에 apm이나 nginx mysql php 등등 을 구축해서

 

사용을 하려다 보면 예상치 못한 오류들을 만나는데요 

 

권한과 관련된 문제들도 많이 만나고, ec2의 경우 유저명과 관련된 오류도 만나고...(ubuntu, ec2-user...)

 

..... 방화벽과 관련된 문제들도 만나는데요

 

저는 데이터그립과 ec2 서버에 설치된 mysql 데이터 베이스를 연동해서 사용하려 하는데 test connection에서

 

오류가 나타나서 확인해보니

 

ec2에 설치된 mysql 이 외부에서 접속이 가능하도록 해주어야 연결이 되더군요  !

 

아래와 같이 입력 하셔서 외부접속을 허용해주시면 됩니다. !

 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root의 패스워드';

'Web & App > Mysql' 카테고리의 다른 글

Query문의 실행 순서  (2) 2020.10.27
Pagenation(페이징) [Offset-based, Cursor-based)  (0) 2020.10.17

APM(아파치 + PHP + MYSQL)을 설치하기도 했었는데

 

이번엔 AWS EC2 서버에 NGINX-PHP-MYSQL을 설치하고 연동시켜봅시다.

 

최근에는 패키지 설치를 통해서 매우 간단하게 설치 할 수 있습니다.

 

예전에 APM을 패키지 말고 수동 소스설치로 한번 설치 한다고 헀다가 정말

 

정신적인 고통을 많이 느꼈던 적이.... 하지만 패키지 설치는 매우 간단하여 쉽게 할 수 있습니다.

 

서버에 접속 하여 root 사용자로 접근후 apt-get update를 해줍니다. (필요없는 분도 있겠죠? 뭐 그냥 치시면 됩니다.)

그 후 apt-get install nginx 를 통해서 nginx를 패키지 설치를 해줍니다.

 

servcie nginx restart

service nginx status 

명령어를 통해서 현재 nginx 설치 상태를 확인 할 수 있습니다.

 

본인의 aws 서버의 ip주소를 입력하면 아래와 같이 nginx가 설치 되었음을 확인할 수 있습니다.

 

이제 mysql 을 설치 해봅시다.

 

똑같이 명령어 창에

 

#apt-get install mysql-server mysql-client

 

를 입력하여 줍니다. 

 

그 후 #mysql - u root -p 를 통하여 mysql 서비스 콘솔에 액세스 할 수 있다.

 

처음에는 아무 패스워드를 치거나 그냥 엔터만 쳐도 접근 할 수 있습니다.

 

mysql 비밀번호 를 설정 하는 것은 다음에 한번 다루도록 하겠습니다. 

 

구글링 하시면 어렵지 않게 하실 수 있긴 합니다.

 

그렇다면 이제 php7.2를 설치하여 봅시다.

 

#apt-get install php7.2-fpm

 

을 입력해 줍니다.

 

그 후 자신이 필요한 사항에 따라 php 모듈을 설치하시면 됩니다.

 

저 같은 경우,

 

# apt-get install php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl php7.2-bz2 php7.2-zip 

php7.2-json php7.2-readline

 

을 설치해 주었습니다.

 

이 작업이 끝났다면 이제 Nginx 기본 웹사이트 구성 파일을 설정 하여 주어야합니다.

 

/etc/nginx/sites-available 로 들어가

 

vi default 

 

하시면 아래와 같은 소스가 나옵니다.

 

기존의 원본 파일을 아래와 같이 수정하여 주시면 됩니다. (주석해제 및 수정)

 

저는 나중에 쿼리스트리 사용을 위하여 $uri/ /index.php?$query_string 도 추가하여 주었습니다.

(try_files에)

 

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

 

이후 #nginx -t 를 입력하여 구성파일에 문제가 없는지를 확인하여 줍니다

 

입력시 

 

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

이 나온다면 오류가 없는 것입니다.

 

이제 제대로 설정이 되었는지 확인을 위해

/var/www/html에 들어가서 

test.php를 만들어 줍시다.

 

vi test.php 를 하여 <?php phpinfo(); ?>를 입력한 후 저장하여 줍니다.

 

확인을 위하여 ip주소/test.php를 주소창에 입력하여 봅시다.

 

위와 같이 php 정보 페이지가 나와야지 정상적으로 설정 된 것입니다..~!

ec2 인스턴스 서버를 생성하였으면 

 

접속하여 설치도 하고 ~ 원하는 작업도 하여야 겠죠??

 

옛날에는 putty를 이용하여 접근을 해야 하지만 요즘은 윈도우에서 제공 을 많이 해주므로

 

다양한 방법을 이용하여 접근 가능 합니다.

 

저 같은 경우에는 cmd 를 통하여 접근 하여 보겠습니다.

 

체크된 부분을 선택하여 연결 버튼을 누르면 위와 같은 창이 나옵니다.

 

일단 위의 빨간색 부분을 복사 합니다.

 

그 후 cmd 창을 열고 (관리자권한 실행) 자신이 저장해놓은 키페어가 있는 폴더로 이동하여 줍니다.

 

그 후 복사한 부분을 붙여넣기 해줍니다.

 

첫 진입일 시 위와같은 화면이 나옵니다 yes를 입력하여 줍니다..

 

aws 우분투 서버에 접속 하였습니다.

 

여기서 부터 서버에서 원하는 작업을 수행하면 됩니다.

로컬 컴퓨터(내 컴퓨터)에서 서버를 구축 하여 사용하여도 되지만

 

클라이언트와 서버의 측면에서

 

서버는 항시 요청대기를 하고 있는 상태이어야 한다.

 

로컬컴퓨터를 이용시 항상 컴퓨터를 켜두어야 한다. 

 

이런 불편함을 극복하기 위해 아마존에서 제공 하는 AWS 인스턴스 서버를 임대하여 사용하면 

 

이 불편함을 해소 할 수 있고 실제 서버를 운용할 때도 메인 서버에서 바로 작업을 하기 보다는 테스트용

 

서버에서 작업을 한 후 메인 서버에 적용을 한다고 한다.

 

일단 아마존 aws 에 접속하여 회원가입을 해줍시다. ~ 

 

회원가입을 한 후 아이디의 지역을 서울로 바꿔줍시다 (아마 처음에는 미국 ~ 로 설정되어 있는 것으로 기억합니다.)

 

접속 하셨다면 위의 화면에서 EC2에 접근을 해줍니다.

 

 

저 인스턴스는 현재 제가 종료를 방금 눌러서 저런 상태입니다. 위의 빨간색의 인스턴스 시작을

 

눌러줍시다.

 

저 같은 경우 우분투 서버 18.04 버전을 사용하기 위한 인스턴스를 생성하기위하여 빨간색을 선택하였습니다.

 

 

제가 사용할 것은 프리티어로 제공해주는 인스턴스를 사용할 것이므로 프리티어 사용가능 표시가된 유형을 선택하여

 

줍니다.

 

다음 화면에서는 저같은 경우 특별히 변동시켜 적용해줄만한 사항이 없어서 다음:스토리지 추가를 눌러줍니다.

 

스토리지 설정입니다. 8기가로 기본입력 되어 있으나 혹시 모르는 마음에... 밑에 말 처럼 프리티어로 제공 가능한

 

최대 용량으로 설정해 주었습니다.

그 다음 보안 그룹 설정입니다. 자신이 사용할 프로토콜에 따른 포트 번호와 접근성에 대한 제한을 주는 

 

부분입니다. 각자가 원하시는 설정에 맞춰서 설정해 주시면 되겠습니다.

 

이 부분은 인스턴스 생성 이후에도 보안그룹 수정을 통해서 설정을 수정 하실 수 있습니다.

그 후 서버에 접근할 수 있드로고 키페어를 선택 혹은 생성해 주어야 합니다.

 

저는 기존 키페어를 발급 받은 것이 있었으므로 그대로 사용하였으나 없으 시다면 새 키 페어 생성을 하시면 됩니다.

 

이 키페어는 외부에 공개 되어서는 안되며 발급 받은 본인이 매우 잘 관리를 해주셔야 합니다

위와 같이 인스턴스가 생성 되었습니다 !!!!

 

퍼블릭IP를 통하여 접근 가능 하나 현재는 서버 내부에 아무 것도 설치하지 않았으므로 특정한 것이 뜨지는 않습니다..

 

보안그룹이나 키페어 관리에 관련된 부분은 체크된 부분을 통하여 접근하여 수정해주시면 됩니다.

 

+ Recent posts