학교에서 전공 수업은 보통 프로그래밍 언어나 컴퓨터의 기본적인 이론, 알고리즘 등을 배웠었고
그 동안 프로젝트를 진행할 때도 대부분 프론트엔드를 담당했기 때문에 서버(백엔드) 개발 경험이 없었다.
AWS를 비롯해서 Node JS, REST, GraphQL, Nginx, Apahce, Linux 등 서버와 관련된 다양한 기술들을 접해보려고 한다.
아마존 AWS 한국어 홈페이지에 접속하면
위와 같은 화면이 보인다.
AWS를 사용하기 위해서는 먼저 AWS 계정을 생성해야 한다.
오른쪽 위에 계정 생성을 누르면 생성할 수 있다.
이름, 주소 등 정보들을 모두 영어로 기입해야 한다.
로그인을 하면 AWS의 다양한 서비스들을 사용할 수 있다.
그 중에서 EC2는 1년간 무료로 사용할 수 있는 프리 티어에 해당하는 서비스이다.
t2.micro 라는 유형만 사용 가능하고 스토리지도 10GB의 제한이 있다.
OS는 Ubuntu, Linux, MS Server 등에서 원하는 것을 받을 수 있는데 Linux 계열의 Red Hat Linux 8(CentOS8)을 선택했다.
인스턴스를 생성하면 잠시 후에 자동으로 시작한다. 클라우드에서 나의 공간을 배정받는 준비를 한 후에 할당해주는 것이다.
개발을 위해서는 각종 포트들을 개방해야 할 필요가 있다.
대표적인 예로는
22 포트 : SSH
80 포트 : HTTP
443 포트 : HTTPS
3306 포트 : MYSQL
가 있다.
default 보안 그룹은 전체 포트를 개방하도록 되어 있으므로 새로 보안 그룹을 생성해야 한다.
이후에 인바운드 규칙을 편집하면 된다.
왼쪽의 유형은 많이 쓰이는 유형들을 미리 AWS에서 정의해 놓았다.
만약 원하는 포트가 있다면 사용자 지정 TCP를 선택해서 포트를 개방하면 된다. 사용자 지정 TCP로 지정해도 22나 80같은 일반적인 포트들은 자동으로 유형이 해당 유형으로 바뀐다.
포트 범위는 내가 열고 싶은 포트의 범위이다. 열고 싶은 포트의 숫자를 작성해주면 된다.
소스란 출발지라고 생각하면 된다. 즉 이 포트를 지나갈 수 있는 IP를 지정할 수 있는 것이다.
위처럼 0.0.0.0 으로 지정하면 모든 IP에 대해 해당 포트를 개방하겠다는 뜻이다.
만약 보안 상 문제로 특정 IP에서만 접속을 허용하고 싶다면 해당 IP를 기입하면 된다.
키 페어(Key Pair)란 간단하게 말해서 서버에 접근하기 위한 열쇠라고 생각하면 된다.
AWS 서버에 접근하기 위해서는 공개키(Public Key)와 개인키(Private Key)로 구성되어 있는 키 페어가 필요하다.
공개키는 공개되어도 상관없는 키로 AWS측이 가지고 있다.
개인키는 내가 .pem파일로 저장해놓는 파일이다. 이 개인키를 가지고 있다면 누구나 서버에 접근할 수 있으므로 각별히 신경써서 보관해야 한다.
이렇게 키 페어를 생성하고 서버에 SSH로 접속하면 AWS에서는 등록되어 있는 공개키를 이용해 지금 접속한 사람이 개인키를 가지고 있는지 확인한 후에 허가를 내려준다.
서버에 접속하는 방법에는 다양한 방법이 존재하지만
터미널을 이용해서 서버에 접속하는 방법을 이용했다.
UI로 하는 것보다 직접 터미널을 이용하는 것이 리눅스에 대한 이해와 서버 공부에 도움이 된다고 생각했기 때문이다.
서버에 접속하는 것은 Mac 기준으로 ssh 명령어를 사용하면 된다.
AWS에서는 퍼블릭 IPv4 DNS를 이용해 SSH로 접근하는 것을 권장하고 있다.
현재 실행 중인 인스턴스 위에서 오른쪽 마우스 클릭을 하면 연결이라는 메뉴를 누를 수 있다.
인스턴스에 연결하기 위한 여러가지 방법들을 소개하는 화면으로 연결된다.
인스턴스에 접속하기 위한 방법을 상세하게 알려준다.
먼저 .pem 파일, 개인키 파일의 파일 권한을 변경해서 AWS가 파일을 볼 수 있도록 한다.
예시에 나와있는 ssh 명령을 이용하면 서버에 접속할 수 있다.
접속을 완료했다면 이제 서버에 올라가 있는 Linux 환경을 얻은 것이고 내가 원하는 대로 개발할 수 있다.
참고로 서버에 접속하는 ssh 명령어를 터미널의 alias로 지정해 놓으면 더 쉽게 서버에 접속할 수 있다.
예를 들어
alias ec2server = "ssh -i ~@~"
라고 .bash_profile, .bashrc 이나 .zprofile, .zshrc 파일에 추가하고
source 혹은 . 명령어로 파일을 적용시켜주면 더 쉽게 서버에 접근할 수 있다.
5. 서버 환경설정하기 (HTTPS 적용) (2) | 2024.01.02 |
---|---|
4. 서버 환경설정하기 (MySQL 설치) (0) | 2021.10.20 |
3. 서버 환경설정하기 (node, pm2, python 설치) (0) | 2021.10.20 |
2. 서버 환경설정하기 (nginx 설치) (0) | 2021.10.20 |