간단한 클라우드 서버 제작하기
카카오톡 봇의 서버를 이동해야 할 때가 와서 잠시 서버를 옮겨야 했다. 이를 위해서 클라우드 서버를 사용해야 했다. 알아보니 가장 유명한 웹 서비스는 AWS라는 것을 알게 되었고, 이것을 사용하기로 했다.
AWS (아마존 웹 서비스) 는 가장 유명하고 많이 쓰이는 웹 서비스이다. 기존의 웹 서비스와 다른 점은 사용량에 따라서 요금을 낸다는 것이다. 또한 2년 3년 계약이 아닌 언제든지 해지하거나 사용이 가능하다는 점이다. 마지막으로 자신이 직접 서버 컴퓨터를 다루듯이 사용이 가능한 인스턴스를 제공한다. 이러한 이유 때문에 AWS로 갈아타기로 했다.
AWS에 회원가입을 한 후 주어지는 프리 티어가 있다. 이것은 인스턴스(가상 컴퓨터)의 사용시간(750h)과 15GB의 트래픽을 무료로 제공한다. 하드한 서버가 아니면 한 달은 무료로 웹서버를 사용할 수 있다는 말이다.
서버 제작하기
EC2 컨테이너를 통해 나만의 가상 리눅스 컴퓨터를 만들어보자. 간단한 구성은 다음 그림과 같다.
프리 티어는 사용할 수 있는 컨테이너가 정해져 있다. 나는 리눅스 우분투 18.04를 이용하여 컨테이너를 만들었다. 인스턴스를 만들어 보자.
빨간색 네모박스를 계속 클릭하면 간단히 만들어진다. 인스턴스가 제작이 되었으면, 보안 그룹을 설정하고 이 보안그룹하고 인스턴스하고 연결해 주어야 한다.
보안 그룹은 TCP-IP, 기본값 0.0.0.0/0 으로 설정한다. 특정한 아이피에서 인스턴스에 접속하고 싶으면 이 설정을 바꾸어 주면 된다. 보안 그룹 생성 후 만들어둔 인스턴스와 연결해 준다. 혹시나 ssh로 접속해야 할 일이 생기면 22번 포트를 열어주어야 하고, 혹시나 모든 포트를 열어두어도 외부 서버 접속이 안되면 임의의 한 개 포트만 열어두어 그곳으로 통신한다.
인스턴스에 접속하기 위해서는 아이피 주소를 알아야 한다. 고정 IP를 할당하지 않으면 아이피 주소가 계속 바뀌게 되어 실제 서비스에 어려움이 많다. 아마존에서는 고정IP를 탄력적 IP (Elastic IP) 라고 한다. 탄력적 IP주소를 새로 만들고, 탄력적 IP주소 할당을 통해 만들어진 인스턴스에 연결한다. 1개의 탄력적 IP주소 (특정 인스턴스에 연결된) 까지는 무료이다. 특이한 점은 탄력적 IP주소를 만들었다 하더라도 인스턴스에 연결하지 않으면 과금이 시작된다.
인스턴스 접속하기 : PuTTY
인스턴스에 접속하기 위해서 여러가지 방법이 있겠지만, 나는 간단하게 PuTTY를 사용하기로 했다. 최초로 인스턴스에 접속할 때는 key를 받아야 한다. key를 다운로드 한 다음 PuTTYgen을 이용하여 PuTTY에 사용할 수 있는 key 형태로 변환한 다음, 주소에 접속해야 한다.
PuTTYgen을 실행한 후, Load를 눌러서 ~.pem 형식의 파일을 불러온다. 파일을 불러온 다음, Save Public Key를 눌러서 ~.ppk 파일로 저장을 한다. ~.ppk 파일은 putty에서 사용 가능한 프라이빗 키다.
추가내용 : 키를 생성할 때 .ppk로 선택한 다음 생성하면 변환할 필요가 없다.
접속을 해보자. PuTTY를 킨 다음 Auth에 들어가서 방금 만든 ~.ppk 파일을 적용시킨다. 그리고 PuTTY로 접속한다. 왼쪽 사진과 같이 설정을 해 주고 IP 주소는 인스턴스의 Public IPv4 DNS 주소를 입력 시킨다. ec2-0-00-000-000.ap-northeast-2.compute.amazonaws.com 형태의 주소이다.
이렇게 접속이 된다.
인스턴스 접속하기 : ssh
ssh 로 접속하는 것도 별로 어렵지 않다. 위의 과정을 통해서 .pem 형태의 key파일을 받아둔 다음, 아래의 양식에 맞추어 명령어를 작성하여 접속한다.
ssh -i key파일이름 ec2-user@ipv4주소
정상적으로 접속하게 되면 아래와 같은 화면이 나오게 된다.
주의사항
프라이빗 키 파일은 항상 보관을 잘 해야 한다. 원격 저장소에 되도록 올리지 말고, 다른 사람이 볼 수 없도록 보안을 철저히 함으로서 보안에 신경을 쓰자.
'서버 인프라 > Aws' 카테고리의 다른 글
AWS EC2 서버에 도메인 적용과 SSL 인증서 적용하기 (2) | 2021.09.26 |
---|---|
EC2 인스턴스 안에 있는 파일 로컬에 다운받기 (0) | 2021.09.16 |
RDS 접속 시 ec2 인스턴스 통해서 접속하기 (0) | 2021.09.06 |
EC2 리눅스 인스턴스 포트포워딩 하기 (0) | 2021.09.05 |
AWS S3 파일 전체(일괄) 다운로드 받기 (2) | 2021.09.02 |