학교 프로젝트 관련하여 백엔드를 담당하게 되었다.
학교 서버는 학교 내부에서만 공개되어 있어서 학교 외부에서는 접근이 안되는 관계로 EC2 를 열기로 하여 이렇게 정리를 한다.
외주를 할 때 EC2, RDS, S3 는 지겹게 써 봤지만 매번 정리가 귀찮아서 하지 않다가 이번 기회에 정리한다.
AWS 계정 생성
위의 링크에 접속하여 회원가입을 한다. 회원가입하는 시점에서 1년동안 프리티어가 유지되는데 AWS 에서 제공되는 많은 서비스를 1년도안 "무료"로 사용할 수 있다.
EC2 구축
콘솔에 로그인 이후 왼쪽 위 혹은 중간에 검색창에 EC2를 검색한다.
여기서 인스턴스 > 인스턴스시작 을 차례로 누른다.
여기서 주의해야 할 점이 오른쪽 위(2번째 사진)에 보면 리젼이라고 보이는데 반드시 이 리젼을 서울로 맞춰줘야 한다.
아마 디폴트가 브루클린이였던 것 같은데 저거 설정 안하고 ec2 열면 감당안되는 돈이 빠져나갈 것이다.
1. ec2 이름 지정
말 그래도 이름 지정하면 된다.
2. OS 설정
본인이 사용할 OS 를 정하면 된다. mac 을 제외하곤 freetier 가 모두 가능하다.
하지만 보통 서버는 linux 기반 os 를 사용하기 때문에 필자는 ubuntu 를 주로 사용한다.
(Amazon Linux 는 aws 자체 os 인데 centos 기반이다.)
3. 인스턴스 유형 설정 / 키 페어 설정
인스턴스 유형은 그대로 두면 된다. --> 프리티어인지 확인은 필요하다.
(필자는 t3.small 을 사용한다. vscode ssh 연결과 node 서버를 동시에 돌렸을 때 t2.micro 는 뻗어버리는 경우가 많아서 돈을 좀 내더라도 편하게 작업하기 위해 t3.small 을 사용했다. --> 어차피 1달요금 많아봤자 3만원도 안나온다.)
키페어 설정에 새 키 페어 생성을 누르면 된다. 이 키페어는 나중에 ssh 접근할 때 사용하는데 한번 유실하면 같은 키페어는 재발급이 불가하므로 소중히 관리하자.
4. 네트워크 설정
기존 보안 그룹 선택 > 보안 그룹 선택 > default 체크
보안 그룹에 관한 것은 할 얘기도 많고 정리해야 할 것도 많아서 추후에 정리할 예정이다.
간략히 설명하면 외부에서 들어오는 신호에 대한 보안처리와 내부에서 외부로 나가는 신호에 대한 보안처리를 하는 부분이다. 서버에서는 본인이 찾아서 해야 하지만 aws 는 이러한 보안그룹으로 대부분 처리가 가능하다.
5. 스토리지 구성
작은 용량에서 큰 용량으로 늘리는 작업은 상당히 쉬운데 큰 용량에서 작은 용량으로 줄이는 것은 매우 귀찮다.
따라서 자신이 할 작업을 생각해서 넉넉하게 잡는 것을 추천한다.(어차피 프리티어는 30기가 밖에 안돼서 생각할게 없긴 함)
6. 요약 및 ec2 실행
이제 전부 끝났고 요약에서 자신이 열고자하는 정보가 맞는지 확인하고 오른쪽 아래에 인스턴스 시작을 누르면 된다.
7. 탄력적 IP 설정
EC2 같은 경우 사용자에게 물리적인 서버 1개를 할당하는 것이 아니라 가상의 서버 공간을 만들어서 제공한다.
따라서 만약 서버를 중지시키고 다시 시작하는 경우 새로운 IP 를 할당받는다.(재실행은 재할당 안받음) 이러한 번거로움을 없애기 위해 탄력적 IP(Elastic IP) 설정을 해 두면 좋다.
위에서 했던 것과 마찬가지로 검색창에 탄력적 IP 검색 후 클릭해서 들어가면 된다.
탄력적 IP 주소 할당을 클릭하면 아래 화면이 뜨는데 여기서 할당을 누르면 된다.
이렇게 하면 고정 IP 로 할당이 가능하다.
8. SSH 연결해 보기
win : mobaxterm 추천
mac : 기본터미널, iterm 둘 다 가능
linux : 기본터미널 가능
ssh 를 이용하여 서버에 접근하는 방법은 여러가지가 있지만 터미널을 통해 접근하는 방식만 설명하겠다.
EC2 > 인스턴스 > [본인 인스턴스 선택] > 연결 > SSH 클라이언트
$ chmod 400 {pem키 이름}.pem
$ ssh -i "{pem키 경로 + 이름}" {user}@ec2-111-111-111-111.ap-northeast-2.compute.amazonaws.com
위의 명령어는 그냥 참고만 하고 SSH 클라이언트에 들어가서 직접 복사하는 것을 추천한다.
VSCODE 로 EC2 연결하기
서버를 열었을 때 실시간으로 코드를 수정할 일이 많았는데 매번 깃에 올렸다가 터미널 접속해서 다시 pull 당기고 하는게 너무 귀찮아서 설정을 해 봤다.
주의해야 할 점은 t2.micro 는 메모리가 작아서 그런지 vscode 를 연결했을 때 서버가 뻗는 경우가 있는데 이는 추후에 확인해보고 글을 수정하겠다.
1. vscode remote ssh 설치
2. config 파일 수정
F1 키 > Remote-ssh 검색 > Remote-SSH: Open SSH Configure... 선택
HOST : 접속할 host 이름
HostName : ec2 public ipv4 DNS 주소( ex: ec2-111-222-333-444.ap-northeast-2.compute.amazonaws.com)
User : 접속할 서버 유저이름 (aws linux 의 디폴트 유저 : ec2-user, ubuntu 의 디폴트 유저 : ubuntu)
IdentityFile : pem키의 위치
3. connect to host
설정이 끝나면 저장 후 다시 F1 > Remote-SSH: Connect to Host > {본인이 설정한 host 선택}
성공적으로 연결됐을 경우 아래 사진의 왼쪽 아래처럼 SSH: {username} 이 뜬다
위의 글에서 EC2 를 구축하고 VSCODE 연결까지 해 보았다.
아직 부족한 점이 많아서 추후에 보강을 해야할 듯 하다.
다음글은 RDS 연결과 mysqlworkbench 원격설정을 알아볼 예정이다.
'Web Programming > AWS' 카테고리의 다른 글
[AWS] S3 버킷 폴더 다운로드 (0) | 2022.02.15 |
---|