저번 글에서 백엔드에 대한 기초적인 이론을 다루어보았다. 이번 글부터 이론편에서 다룬 것들을 실습해 볼 예정이다. 우선 백엔드 서버 구축 순서를 다시 한번 살펴보자.
1) 서버를 준비한다. 직접 서버 컴퓨터를 구입하여 서버 OS를 설치하거나 AWS EC2를 활용하여 클라우드 서버를 임대한다.
2) 서버에 Database를 생성한다. DB의 종류로는 MySQL, PostGresSQL, SQLite등이 있다.
3) 백엔드 코드를 작성한다. Java-Spring, Python Django, Javascript-Express 등의 (프로그래밍 언어)-(프레임워크)가 있다.
해당 글에서는 AWS를 활용하여 서버 컴퓨터를 셋업하고 사용하는 방법에 대해 다룰 것이다.
가장 먼저 https://aws.amazon.com/ 에서 AWS계정을 먼저 생성하도록하자. 계정을 생성하기 위해서는 유효한 이메일, 휴대폰 번호, 그리고 해외 결제가 가능한 카등 (VISA, MasterCard...)이 필요하다
가입 완료 후 로그인 하면 AWS콘솔을 볼 수 있을 것이다. 이제 우리는 AWS 서비스를 활용하여 서버 컴퓨터를 대여할 수 있다!
(1) 가장 먼저 우측 상단에 위치를 "아시아 태평양 (서울)"로 바꿔주자.
(2) 그리고 콘솔 홈에 있는 EC2를 클릭 해준다. EC2버튼이 없다면 콘솔 홈 상단에 검색바에 EC2 를 검색해서 들어가도록하자. 여기서 "EC2"는 AWS에서 제공하는 서버 컴퓨터 대여 서비스 이름이다.
EC2 대시보드에 성공적으로 접속했다면 다음과 같은 "인스턴스 시작" 탭을 발견할 수 있다. 바로 인스턴스 시작을 클릭해보면 Launch an instance탭으로 이동 할 것이다
이제 인스턴스를 생성해보자
(1) 먼저 인스턴스의 이름을 생성해준다. 이름은 원하는대로 설정해주면 된다.
(2) 서버 컴퓨터의 OS를 선택해준다. 기본적으로 Amazon Linux로 선택 되어 있다. 당신이 편한 OS로 선택해주면 된다. 해당 글에서는 Ububtu로 진행할 예정이다.
(3) OS 선택 탭 바로 아래 Amazon Machine Image가 "프리 티어 사용 가능" 한 것 으로 선택 되어있는지 확인한다.
(4) 인스턴스 유형 역시 "프리 티어 사용 가능" 한 것 으로 선택 되어있는지 확인한다.
프리 티어 사용 가능한 것으로 설정을 안해두었으면 인스턴스를 시작하자마자 요금이 청구 될 수 있다. 기본적으로 "프리 티어 사용 가능"한 옵션으로 선택되어 있겠지만 갑작스런 요금 청구 예방을 위해 꼭 다시 한번 확인하자
(5) 새 키 페어를 생성한다. 여기서 생성된 키 페어로 SSH를 통해 서버 컴퓨터한테 "내가 주인이다"라는 인증을 해줄 수 있다.
(6) 키 페어의 이름을 설정한다. 당신이 원하는 이름으로 설정하면 된다.
(7) 키 페어 생성을 누르면 ${키페어_이름}.pem 의 파일이 자동으로 다운로드 된다. 추후에 사용할 것으로 해당 키페어 파일를 잘 보관하도록 하고 남에게 주지 않도록 하자.
인스턴스 설정이 완료되었다. 이제 오른쪽 아래의 "인스턴스 시작" 버튼을 클릭하자! 인스턴스를 시작하는 중이라는 메세지와 함께 로딩 화면이 뜰 것이다. 인스턴스를 실행하는데까지 1~2분 정도 소요 된다.
EC2 대시보드에서 "인스턴스(실행 중)" 탭으로 가보자.
"인스턴스 상태"가 "실행 중"으로 뜨면 우리의 서버 컴퓨터가 준비가 완료 된 것이다! 이제 우리의 서버 컴퓨터를 조종하기 위해 연결하는 방법과 SSH 사용법에 대해 알아보자.
백엔드를 처음 다루는 분이라면 지금 서버 컴퓨터가 셋업이 완료되었다는 것이 체감되지 않을 수 있다. 아직 컴퓨터의 실체를 보지 못해서 그럴 것이다. 그러므로 지금부터 셋업이 완료된 컴퓨터와 연결을 해볼 것이다!
가장 쉬운 방법은 AWS EC2대시보드에서 바로 접속하는 방법이다. EC2 대시보드에서 인스턴스를 선택하여 "연결" 버튼을 클릭해보자
바로 다음 페이지에서 설정을 건들지 않고 오른쪽 하단의 "연결"버튼을 클릭하면...
위와 같이 서버 컴퓨터와 연결할 수 있다! 위의 검은색 창은 우리의 서버 컴퓨터에 깔린 Ubuntu OS의 터미널 화면이다. 해당 화면에서 Ubuntu 커멘드를 실행할 수 있다. 가볍게 다음과 같은 명령을 수행해보자
mkdir test // test라는 폴더를 생성한다
ls // 현재 위치에 있는 모든 파일과 폴더 이름을 보여준다
// 직전에 test라는 폴더를 생성했기 때문데 'test' 하나만 출력한다
cd test // test 폴더 경로로 이동한다
cd .. // 이전 폴더 경로로 이동한다
rm -rf test // test 폴더를 삭제한다
// test 폴더를 삭제했기 때문에 다시 ls를 치면 아무것도 출력하지 않는다
이제 EC2 대시보드에서 언제든지 당신의 서버 컴퓨터에 연결할 수 있다!
이번엔 당신의 컴퓨터 터미널에서 서버 컴퓨터와 연결하는 방법을 다루어보겠다. 해당 방법은 당신 컴퓨터에 있는 커멘드 실행창을 서버컴퓨터와 연결하여 사용하는 방법이다. 우선 EC2 인스턴스를 생성했을 때 함꼐 생성한 .pem 키페어의 위치를 정확하게 알아야하며 실행중인 인스턴스의 퍼블릭 IPv4 주소를 알아야한다
나는 mac OS환경에서 iTerm 터미널을 사용했다. OS에 따라 조금 다를 수 있다는 점을 유의하며 구글에 "${당신의 OS} ssh connection with pem file" 와 같이 검색해보면 연결 방법을 쉽게 찾아볼 수 있을 것이다.
나는 아까 자동으로 다운로드 된 키페어 파일을 옮겨놓지 않았기 때문에 키페어 파일의 경로가 ~/Downloads/yj_backend_key.pem
이다.
퍼블릭 IPv4 주소는 EC2 대시보드에서 확인한다. 인스턴스를 선택해보면 아래의 창에서 확인할 수 있다
키페어 파일의 위치와 인스턴스 IPv4 주소를 알았으니 준비는 끝났다. 터미널 창을 열어서 다음의 명령을 실행하자
sudo ssh -i ${키 페어 파일 경로} ubuntu@${인스턴스의 IPv4 주소}
예시로 나의 명령줄은 다음과 같다
sudo ssh -i ~/Downloads/yj_backend_key.pem ubuntu@$123.123.123.123
sudo 권한을 위해 Password를 물어본다면 당신의 컴퓨터 비밀번호를 치고 이후에 추가적으로 yes/no/(fingerprint)를 물어볼때 yes
를 쳐주면
위와 같이 당신 컴퓨터의 터미널을 서버 컴퓨터와 연결하여 사용할 수 있다! 연결을 끊고 싶다면 명량창에 exit
을 치거나 ctrl + d 로 빠져나올 수 있다.
다시 한번 다음과 같은 코드를 실행해 잘 작동하는지 확인해보자
mkdir test // test라는 폴더를 생성한다
ls // 현재 위치에 있는 모든 파일과 폴더 이름을 보여준다
// 직전에 test라는 폴더를 생성했기 때문데 'test' 하나만 출력한다
// 이번엔 test 경로를 삭제하지 않고 냅두어보자
마지막으로 VS Code로 서버 컴퓨터와 연결하는 방법을 다루겠다. VS Code로 연결하면 서버 컴퓨터에 코드를 작성하기도 쉽고 서버 컴퓨터의 경로 구조도 한눈에 볼 수 있어 강력히 추천한다. VS Code 설치 방법은 넘어가도록 하겠다.
VS Code에서 확장 -> ssh 검색 -> "Remote SSH" 확장을 설치한다
(1) 설치가 완료되면 왼쪽 탭 중 "원격 탐색기"라는 탭이 생길 것이다. 클릭하여 원격 탐색기로 넘어가자.
(2) 원격탐색기에서 SSH 탭 오른쪽에 +를 누르면 "SSH 연결 명령 입략" 칸이 뜬다.
(3) 여기에 아까와 같이
ssh -i ${키 페어 파일 경로} ubuntu@${인스턴스의 IPv4 주소}
명령을 입력한다.
ssh 연결 정보를 저장할 파일을 선택한다. 위치 경로는 상관 없다.
완료 되었다면
(1) 새로고침을 진행하고
(2) SSH 탭을 눌러보면 서버 컴퓨터의 IPv4 주소가 뜰 것이다!
(3) "새 창에서 연결" 버튼을 클릭하자
당신의 컴퓨터가 mac 또는 linux 기반의 컴퓨터라면 아마 다음과 같은 에러를 맞닥뜨릴 것이다
이 오류는 키페어 파일의 권한이 너무 오픈되어있어서 발생하며 해결 방법은 간단하다. 터미널 창을 열어 다음과 같은 코드를 실행 시킨다
chmod 400 ${키 페어 파일 경로}
예를 들어 나는 터미널에서 chmod 400 ~/Downloads/yj_backend_key.pem
명령을 실행 시켰다
이제 VS code에서 다시 새창에서 연결 버튼을 누르면...
성공적으로 VS Code와 서버 컴퓨를 연결했다.
(1) 폴더 열기 버튼을 클릭해보면
(2) 서버 컴퓨터의 모든 파일과 폴더를 볼 수 있고 아까 만들어둔 "test" 폴더도 확인 해볼 수 있다
(3) 원하는 경로를 선택하여 확인을 누르면 VS Code로 해당 경로를 열 수 있다
이제 당신은 VS Code를 서버 컴퓨터와 연걸하여 사용 할 수 있다!
이론 편에 이어 실습편에서 서버를 구축하고 연결까지 해보았다. 다음 편에서는 실제로 백엔드 코드를 작성하여 서버에 백엔드를 돌려놓고 호출까지 해보겠다!