GCP에서 서버운영 시 자주 사용하는 사항들 정리

웹서비스 운영을 위해 서버를 관리하다보면 여러가지 자주사용해야 하는 사항들이 있다. mysql설정, 계정생성 등…. 본 포스팅에서는 내가 서버를 운영하면서 자주 진행하는 항목들을 정리했다.

*참고로 난 Mac Mojave를 이용중이다.

GCP-VM SSH 접속 Key 생성

일단 SSH 로 GCP에 접근하기 위해서는 RSA key pair 를 생성해야 한다. 맥 혹은 리눅스에서는 .ssh 폴더 안에 RSA key pair 가 생성이 된다. key를 생성하는 명령어는 다음과 같다.

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILE_NAME] -C "[USERNAME]" 

실제 명령어 예시 : ssh-keygen -t rsa -f ~/.ssh/gcp-key -C "junholee" 
  • [KEY_FILE_NAME]에는 생성할 RSA의 KEY 파일 이름을 생성한다. ex) gcp-key
  • “[USERNAME]” 에는 계정이름을 입력한다. 일반적으로 GCP 접속 이메일 주소를 입력한다. 하지만 꼭 그래야 하는 것은 아니다. 이메일 주소를 쓰지 않아도 상관없다.

위 명령어를 입력하면 비밀번호를 입력하라는 메세지가 나오는데 리모트 서버에 암호 없이 접속할 키를 생성할 경우는 그냥 엔터를 누르면 된다. 그러면  RSA key pair 생성이 완료된다.키 생성이 완료가 되면 계정 디렉토리 아래의 .ssh 디렉토리에 [KEY_FILE_NAME].pub 와 [KEY_FILE_NAME] 파일이 생성된다. ex) gcp-key.pub, gcp-key

*id_rsa 파일이 개인키이고 id_rsa.pub 는 공개키이다.


GCP-VM SSH 접속 Key 확인 후 GCP 적용하기

키생성이 완료되면 아래 명령어를 입력하여 생성된 RSA KEY 내용을 확인 할 수 있다. 아래 명령어를 입력하여 나온 public key 내용을 복사한 후 GCP에 로그인하여 Compute Engine -> 메타데이터 -> SSH 키 에 입력해야 한다.

cat ~/.ssh/[KEY_FILE_NAME].pub
ex) gcp-key.pub

입력이 끝나면 터미널에서 아래와 같이 입력하여 SSH 접속을 할 수 있다.

ssh -i ~/.ssh/[KEY_FILE_NAME] [USERNAME]@외부IP
ex)ssh -i ~/.ssh/gcp-key junholee@123.123.11.22

그런데 filezila 같은 FTP 클라이언트 프로그램으로 SFTP로 접속을 할 때도 key파일이 필요한데 이 때를 위해서 개인 key는 별도로 복사하여 관리하는 것이 편리하다. 따라서 cp 명령어를 통해 개인키는 다른 곳으로 복사한다.

cp  ~/.ssh/[KEY_FILE_NAME] /[저장경로]/[KEY_FILE_NAME]
ex)cp  ~/.ssh/gcp-key /Users/junholee/ssh_key/gcp-key

DB 계정생성 및 외부접속 권한 주기

GCP에서 VM 생성이 완료되면 일반적으로 DB접속 계정을 생성하는 일이 많다. mysql 처음 접속 시에는 root 계정으로 접속을 한다. root 계정의 비밀번호는 GCP > Compute Engine 상세정보에서 알 수 있다.(자세히 보기)

Mysql 계정은 아래와 같이 생성할 수 있다. DB사용자에게 어디에서나 접근(%) 이나 특정 IP에서의 접근 권한을 주면 된다.

mysql> CREATE USER '아이디'@'호스트' IDENTIFIED BY '비밀번호';
ex) CREATE USER 'junholee'@'%' IDENTIFIED BY '12341234';

mysql>GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' WITH GRANT OPTION;
//모든 권한주기

mysql> flush privileges; 

mysql> use mysql;
mysql> select host, user from user;   //계정확인하기

특정 계정에 대해서 외부에서도 접속이 가능하도록 하기 위해서는 서버에서도 외부접속이 가능하도록 설정을 해야 한다. GCP 마케플레이스에서 bitnami Image로 VM을 생성 한 경우 아래 파일에서 설정이 가능하다.

/opt/bitnami/mysql/my.cnf

위 파일에서 bind-address = 127.0.0.1 부분을 bind-address = 0.0.0.0 로 변경해야 한다. 저장하면 된다.

물론 방화벽 설정도 아래와 같이 되어 있어야 외부에서 접근이 가능하다. (0.0.0.0/0)


Bitnami 기본 명령어

sudo /opt/bitnami/ctlscript.sh start
sudo /opt/bitnami/ctlscript.sh restart apache
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/ctlscript.sh restart
sudo /opt/bitnami/ctlscript.sh start mysql
sudo /opt/bitnami/ctlscript.sh restart mysql

0 Shares:
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

기획자와 스토아철학

기획자로서 일을 하다보면 생각보다 많은 부분에서 우울할 때가 있다. 그 우울함이 심해지면 '나는 과연 필요한 존재가 맞는가?'라는 생각까지 들곤 한다. 문제는 이런 경험을 자주 할수록 자존감이 낮아진다는 것이다. 내가 겪어온 경험을 토대로 이 문제를 어떻게 극복했는지 이야기하고자 한다.
Read More

내 리더가 회사를 떠났다.

어떤 한 사람이 있다. 그 사람을 보면서 나는 이런 생각을 했다. "저 분의 인성과 역량을 닮고 싶다. 내 아들이 커서 어른이 된다면 나의 모습보다는 저 분의 모습을 닮았으면 좋겠다." 그 분은 내가 현재 재직중인 회사의 CTO이자 나의 리더였다. 아이러니하게도 그 분과 나는 전혀 다른 성격의 소유자이고 업무 스타일도 많이 달랐다. 하지만 난 정말로 그분을 닮고 싶었다.
2021년 회고
Read More

2021년 회고(Product Owner, 가족, 성장)

회사에는 동료와 일이 있다. 가정에는 아내와 애들, 육아업무가 있다. 그러나 그 어디에도 나는 없었다. 원래 나 본연의 내가 존재할 수 있는 시간과 장소는 없었다. 단지, 의무로서의 나만 존재했다. 언뜻 생각해보면 참 서글프기도 하지만 잘 생각해보면 꼭 그렇지도 않다. 현재 나의 상황, 역할, 가족, 일.....그 모든 것이 결국은 나를 구성한다. 원래 나 본연의 나는 처음부터 없는 것인지도 모르겠다.