[AWS] EC2 생성하고, Putty로 EC2 접속하기
EC2 란 ?
서비스 개발의 꽃은 배포라고한다. 다른 사람들이 서비스를 이용하기위해서 배포를 하려면, 배포를 하는 컴퓨터가 필요하고, 이를 위해선 항상 켜져있는 컴퓨터가 필요하다.
보통 이 컴퓨터를 서버 컴퓨터라고하고, 이 컴퓨터를 빌려주는 행위를 호스팅이라고하는데, 호스팅은 크게 3가지 정도로 나뉠 수 있다.
호스팅의 종류
1. 서버 호스팅 : 서버 컴퓨터를 통째로 임대해서 사용
2. 웹 호스팅 : 컴퓨터를 쪼개서 일부만 임대해서 사용(좁고 제한적임)
3. 클라우드 서비스 : 사용자의 요구에 맞게 호스팅 업체의 가상 서버를 온디멘드로 제공(유연한 확장성, 신속간편)
EC2는 이 중에 대표적인 클라우드 서비스 업체인 AWS( Amazon Web Services)의 Amazon Elastic Compute Cloud를 말한다. AWS의 가장 핵심적인 서비스 중 하나인 클라우드 컴퓨팅 서비스이다.
EC2는 용량을 조절 할 수 있는 탄력성과 사용한 만큼만 지불하기때문에 비교적 저렴한 편이고, 사용자가 인스턴스를 완전하게 제어할 수 있고, 보안 및 네트워크 구성에 상당히 뛰어나다.
1. EC2 인스턴스 생성하기
먼저 AWS 계정이 필요하다. (https://aws.amazon.com/ko/)
1) AWS 콘솔 EC2인스턴스 시작
https://ap-northeast-2.console.aws.amazon.com/ec2/
주소에서 ap-northeast-2는 서비스리전을 의미한다.(우측상단확인)
2) EC2 OS Image 선택
여기서는 Ubuntu 환경에서 작업하기때문에, Image를 Ubuntu로 선택하고, 프리티어 사용 가능인 Ubuntu Server 22.04 LTS를 사용했다. (LTS는 지원기간이 긴 버전을 의미한다.)
3) 인스턴스 유형 선택, 키 페어(없다면 더보기 참고)
인스턴스 유형으로는 프리 티어 사용 가능인 t2.micro를 사용하고, 키 페어를 지정한다.
미리 생성해둔 키 페어가 없다면, 더보기 클릭.(키 페어에 대한 설명, 키 페어 생성하기)
키 페어란?
키 페어는 보안인증을 위한 Public Key + Private Key를 의미하며 EC2의 경우 Public Key는 사용자의 로컬 PC에, Private Key는 EC2에 저장됨.
키 페어가 없다면 키 페어를 생성한다. Putty를 통해서 EC2에 접속할 것이기에 프라이빗 키 파일 형식은 .ppk로 사용한다.(OpenSSH 사용 시에는 .pem)
다운받은 Key파일을 잘 보관한다.

4) 인스턴스 시작
키페어까지 완료했다면, 인스턴스를 시작하고, 모든 인스턴스 보기로 들어가서, 방금 생성한 인스턴스의 IP를 복사해둔다.(Putty로 접속할 때 필요)
2. EC2 인스턴스에 접속하기(Putty)
EC2 인스턴스를 성공적으로 생성했다면, 이제 생성한 인스턴스에 접속해보자.
다음 링크에 접속해서, 환경에 맞는 버전을 다운 받는다.
1) Putty 설치
2) Putty 실행 및 세션 설정
다운 받은 Putty를 실행하고 다음 이미지를 따라한다.
EC2 아이피 입력에는 아까 4) 인스턴스 시작에서 복사해둔 인스턴스 IP를 입력한다.
이후 session으로 돌아가서 save한다.
3) 프로그램 설치를 위한 관리자 계정 활성화
프로그램 설치를 위해서는 관리자 권한이 필요하다.
AWS 초기설정으로 관리자 계정은 비활성화되어있으므로 다음을 통해 관리자 계정을 활성화한다.
# Putty 콘솔에서 입력
$ sudo passwd root
다음으로 관리자 계정이 Putty를 이용해서 접속 가능하도록 /etc/ssh/sshd_config 설정한다.
# Putty 콘솔에서 입력
$ sudo nano /etc/ssh/sshd_config
# Putty 콘솔에서 입력
$ Ctrl + _ 누르고 32 입력하고 Enter (32번째 줄로 이동)
# i 눌러서 편집모드로 들어가서 다음 수정(루트 로그인 가능하게)
#PermitRootLogin prohibit-password -> PermitRootLogin yes
# 이후 Ctrl + x 누르고 Y 입력하고 Enter (저장)
EC2 인스턴스를 생성하면 /home/ubuntu/.ssh/ 경로에 authorized_keys 이름으로 pem 파일의 키가 저장되어있는데, Putty로 접속시 /home/ubuntu/.ssh/authorized_keys에 저장된 키와 Putty에서 설정한 (본인 ppk) 일치하는지를 확인해서 같은 키일때(키 페어) 로그인이 된다.
/home/ubuntu/.ssh/authorized_keys 를 root계정이 로그인 할때 비교하는 키가 저장되는 /root/.ssh에 복사해서 같은 키파일로 root 계정도 로그인이 가능하게 설정한다.
# putty 콘솔에 입력
$ sudo cp /home/ubuntu/.ssh/authorized_keys /root/.ssh
# putty 접속시 접속을 허락해주는 프로그램인 ssh 재시작
$ sudo systemctl restart sshd
# 이후 exit 명령어로 Putty를 종료한다.
$ exit
4) 관리자 계정으로 접속
다시 Putty를 실행해 EC2로 접속한다. 이번엔 ubuntu가 아닌 관리자 계정인 root로 접속한다.
다음 포스팅으로는 이 인스턴스를 이용해서 Spring Boot를 실행해보고, 나아가 도커파일로도 실행해보려고 한다.