본문 바로가기
코딩과 알고리즘

node.js express | 템플릿 쪽지함#5. AWS 에 MYSQL 설치

이틀 가량 중 짜투리 시간을 투자해서 node.js 에서 쪽지불러오기 및 저장 부분을 완성했습니다.
C나 C#과는 좀 다른 스타일의 난이도가 있더군요 ㅎ.. 약간 사용법이 까다롭다고 보면 될것 같습니다.

node.js는 기본동작이 비동기 방식이라 동기 방식처럼 작동하게 하는
async, await 라는 특별한 방식을 이용해야 하는데요. 차후 진행하면서 다뤄보겠습니다.

단순 웹개발로 보자면 node.js 개발이 좀 불편한 감이 있습니다.
다만 그만큼 빠른 속도를 보장하고 무엇보다 node.js 를 이용하여
구글 스프레드 시트에서 사용하는 것과 유사한 실시간 웹기술을 익히는게 목표니까요 :)


지난 스토리에서는 쪽지를 작성 후 서버에 저장되는 원리에 대한 부분을 살펴보았는데요,

https://itadventure.tistory.com/441

 

node.js express | 템플릿 쪽지함#4. 쪽지 작성편(2)

지난 스토리에서는 쪽지를 직접 작성하면 보드판에 나열되는 부분에 대한 샘플과 함께 템플릿에서의 쪽지 작성에 대한 태그와 스크립트 부분을 설명드렸는데요. https://itadventure.tistory.com/440 node.

itadventure.tistory.com

 

문제는 node main.js 를 종료했다 다시 작동하면 쪽지가 모두 사라지는 문제가 있었습니다.
기껏 소중하게 작성한 메시지들이 이렇게 한순간에 유실되어서야 되겠습니까?

보관이 필요한 자료는 별도의 저장소에 보관되어야 하는데요.
보통 무료로 사용할 수 있는 MYSQL 서버를 많이들 설치해서 사용합니다.

내친 김에 mysql 을 설치해보도록 하겠습니다.
기준이 되는 서버는 아마존 리눅스 2 서버이며, 다른 OS 서버는 설치방법이 일부 상이할 수는 있습니다.

리눅스 터미널에 접속한 다음,
루트 권한으로 변경합니다.

sudo su -


이어서 MYSQL 커뮤니티 서버를 다운받으면 되는데요 자동으로 YUM 설치 저장소를 세팅해줍니다.

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm


이제 MYSQL 커뮤니티를 설치하고 

yum -y install mysql-community-server


이어서 mysql 서비스를 시작합니다.

service mysqld start

 


설치된 MYSQL 은 패스워드가 아직 지정되지 않았는데요.
아래 명령으로 패스워드를 지정할 수 있습니다.

mysql_secure_installation


이어서 아래와 같은 내용이 보일텐데요. 그냥 Enter 키를 입력해서 넘깁니다.

이어서 MYSQL 서버의 root 패스워드를 입력할 것인지를 묻습니다. y 입력 후 Enter 키를 타이핑합니다.


그리고 나서 새로운 패스워드를 2번 입력해주면 됩니다.
이 패스워드는 나중에 사용자 생성 및 권한을 배정할 때 필요하니 잘 기억해 두세요. 


이어서 anonymous user ( 익명 사용자 ) 를 삭제할 것인지를 묻습니다.
보안 관계상 당연히 삭제해야겠지요. 'y' 입력후 Enter


그리고 원격으로 MYSQL 서비스 사용자 root 아이디의 접근을 차단할지를 묻습니다.
기본적으로 root 아이디는 접근을 금지하고, 전용 아이디를 만들어 접근을 허용하는 것이 일반적이므로
여기서는 y 로 입력 후 Enter


이어서 테스트 데이터베이스가 마련되어 있는데,
삭제하고 새로 시작할 것인지를 묻습니다. 과감히 삭제하고 새로 시작해보도록 합시다.
y 입력 후 Enter


마지막으로 ( 묻는 것도 많지요? :) ) 설정된 내용들을 바로적용할 것인지를 묻는데요.
당연히 바로 적용해야지요. 'y' 입력 후 Enter 키를 입력해주시면


Mysql커뮤니티 서버 설치가 완료됩니다.


이렇게 설치된 MYSQL 서버는 기본 세팅의 설정이 그렇게 썩 좋지 않은데요.
세팅을 좀 조정하도록 하겠습니다.

vi 에디터 또는 편리한 편집기로 /etc/systemd/system/mysql.service 파일을 열어주신 다음에,

vi /etc/systemd/system/mysql.service


설정파일의 아래 부분에 다음 내용을 추가해 주세요. 

LimitNOFILE=65535


이는 MYSQL 서버가 서버에서 동시에 열수 있는 파일의 갯수를 65,535 개로 재조정합니다.

변경사항을 적용하고 MYSQL 서비스를 재시작합니다.

systemctl daemon-reload
service mysqld restart


이제 작업용 데이터베이스를 만들고 root 아이디가 아닌 별도의 아이디를 추가해줍니다.
MYSQL 서버에 로그인한 다음

mysql -uroot -p


우리가 작업할 데이터 베이스를 하나 생성해 줍시다.
이름은 여기서는 myroom 으로 할텐데요. 자유롭게 지어주셔도 됩니다.
아래 명령문은 UTF-8이라는 국제표준 코드 방식으로 데이터베이스를 생성해주는 명령인데요.
한글을 사용하려면 이렇게 입력해주셔야 합니다.

create database myroom CHARACTER SET utf8 COLLATE utf8_general_ci;


이어서 root 아이디가 아닌 다른 아이디를 추가해 주시면 됩니다.
여기서는 cray 라는 아이디를 추가하도록 하겠습니다.
이 때 비번은 root 아이디와 다른 것을 사용하는 것이 보안에 좋습니다.

AWS  의 경우 자체에 보안 기능이 있기 때문에 기본적으로 서버 내에서는 외부접근을 허용하고,
실제 권한은 AWS 에서 조정해주시면 됩니다.

실습을 위해서는 4321 로 지정하도록 하겠습니다.

create user cray@'%' identified by '비번';
GRANT ALL ON *.* TO cray@'%' IDENTIFIED BY '비번';


그리고 변경된 사항을 반영한 다음에,

flush privileges;


MYSQL 접속을 빠져나옵니다.

exit


이 것으로 MYSQL 서버 설치가 완료되었습니다.
비록 외부에 접근 권한을 주었지만 AWS 의 방화벽이 외부 접근권한을 막도록 되어 있습니다.
이 후에 필요할 때는 필요한 위치에서만 접근을 허용하도록 하면 되지요.


진행하시는데 무리는 없으셨는지요 :)
오늘도 여기까지 읽어주셔서 감사합니다.


다음스토리 :  템플릿 쪽지함6. 쪽지함 저장

https://itadventure.tistory.com/443

 

node.js express | 템플릿 쪽지함#6. 쪽지함 저장

지난 스토리에서는 MYSQL 커뮤니티 서버를 서버에 설치하였지요. https://itadventure.tistory.com/442 node.js express | 템플릿 쪽지함#5. AWS 에 MYSQL 설치 이틀 가량 중 짜투리 시간을 투자해서 node.js 에..

itadventure.tistory.com