본문 바로가기
Archive

AWS EC2 를 사고 해야하는 일 정리

by livemehere 2022. 5. 4.

EC2를 몇번이나 대여해서 세팅하는지 한 과장좀 보태서 10번정도한거같은데

이제껏 공부한다 생각하고 매번했다.

한번한거가지고 자신만의 치트시트 만들어두고 따라하는거는 발전도, 얻는것도 없다고 생각했기 때문에 어느정도 익숙해질 무렵 또 많은 오류를 겪고나서 나만의 루트를 만들고자했다.

 

EC2 환경설정하면서 많은 문제와 지식을 얻었다.

갑자기 ssh접속이 안된다던지, pem키라는 것, 리눅스 시스템, db폭파, 서버를돌리기위한 사양, docker, iptable, proxy ...

확실하게 정의를 내릴수있는 것들도있고 경험적으로 이해하고있는것들도 있다.

막상 저런 오류를 마주했을때는 공부도 공부지만 급급히 해결하기 바빠서 크게 많이 생각해보고 넘기진 못했던것들도 많다.

그래서 이 초기 세팅의 글을 시작으로 EC2, ubuntu, server, cloud, 다른AWS서비스들을 사용하면서 경험한 것을 정리하고 공유해보려 한다.

 

풀스택 개발자에게 필요한 것들은..

1. node : 서버

2. DB(mariaDB, mongoDB)

3. git : CI/CD 자동배포 및 소스코드 관리

이면된다.

 

1. node 설치

노드를 설치하는 방법에는 여러개가있다. apt, apt-get, curl, nvm

보통 apt-get update, upgrade 과정을 거치치고, node를 설치하지만, 결국 node버전은 LTS버전보다 훨씬 낮은 버전이 설치되서 결국 업데이트를 한번더 해줘야했다. 그러던와중 버전을 지정해두고, 해당버전을 바로설치하는 방법이있다.

nodesource를 이용하는 방법이다. (이방법 혹은 nvm이 나은거같다)

 

curl -sL https://deb.nodesource.com/setup_16.x -o /tmp/nodesource_setup.sh
sudo bash /tmp/nodesource_setup.sh
sudo apt install nodejs
node -v # v16.6.1
npm -v # 8.5.5

2. Git

깃은 기본으로 설치되있다! 놀랐나요?

git --version # git version 2.34.1

3. DB

나는 보통 mariadb를 사용한다. mysql은 상업적으로 사용하려면 과금해야되는걸로 알고있다. (엤날말인가? 어쩃든)

mariadb도 Mysql개발자들이 개발한거라 거의 똑같다고 봐도 무방하다.

사실 database는 개인적인생각으로 noSQL은 그냥 사용하는거지 뭔가 배워서 나의 엄청난 무기가 되겠다! 이런느낌은 없다.

sql을 잘사용하는 것은 분명한 능력이된다고 생각한다. (noSQL을 폄하하는 건 아니다..!)

 

디비는 생각보다 많이 복잡하다.

그냥 단순히 설치해준다고 되는것이아니라, 사용자설정, 외부접속 설정, 권한 설정 을 해줘야한다.

db를 그냥 CLI환경에서만 쓴다는것은 바보같은 짓이다.

CLI는 필요시에, 이해못하지 않을정도만 할줄알면된다. mysqlWorkbench를 사용하면 효율성이 10배는 증가하니 꼭 외부접속 설정하고 사용하길 바랍니다!

DB설치가 귀찮고 설정이 귀찮다면, docker를 사용하는것도 하나의 방법이다. docker컨테이너로 db설치하면 환경세팅할 거 하나없이 바로 외부접속, 세팅이 다되어있다
sudo apt update
sudo apt install mariadb-server
systemctl status mariadb.service # mariadb 서버 상태 확인

3.2 DB 기본 세팅

원하는데로 세팅하시면 됩니다.

sudo mysql_secure_installation # root비번, 외부접속 등 읽고 prompt설정 과정이 나옵니다.

3.3. 외부접속을 위한 계정 생성

저는 모든 컨트롤을 workbench에서 하기위해 모든 권한을 부여했습니다.

디비를 다른사람과 같이 관리할때가 되면, 특정 권한을 가진 계정을 만들어 주시면 됩니다.

CREATE USER 'root'@'%' IDENTIFIED BY '1234'; # 와일드카드 유저 생성
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION; # 모든 권한부여
FLUSH PRIVILEGES; # 유저,권한 관련설정을 변경했을시에 적용하는 명령어

cd /etc/mysql/mariadb.conf.d
vim 50-server.cnf # 여기 들어가서 bind-address = 127.0.01 주석처리

sudo systemctl restart mariadb # 디비 재시작

이제 workbenech로 ip,port(3306), id, password 를 통해 접속하시고 사용하면됩니다.

반응형