![[AWS] EC2 서버 환경 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHRy7d%2Fbtsq5bHtqNF%2FIS0g64Icwp3r3kKXbxK4DK%2Fimg.png)
외부에서 본인이 만든 서비스에 접근하기 위해서는 24시간 작동하는 서버가 필요합니다.
24시간 작동하는 서버에는 3가지 선택지가 있습니다.
- 집 pc를 24시간 구동
- 호스팅 서비스를 이용
- 클라우드 서비스를 이용
이 중에서 클라우드 서비스를 사용할 계획입니다. 클라우드 서비스의 경우 유동적으로 사양을 늘릴 수 있기에 특정 시간에 트래픽이 몰려도 괜찮다는 장점이 있습니다.
여러 클라우드 서비스가 있지만 이 중에서 AWS를 선택하였습니다. 이유는 아래 사진에 있습니다.
EC2 생성하기
EC2(Elastic Computer Cloud)란 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스로 성능, 용량 등을 유동적으로 사용할 수 있는 서버입니다. 쉽게 말해 AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것을 의미합니다. EC2 생성과정은 아래와 같습니다. 시작에 앞서 리전을 서울로 변경합니다.
리전(Region): 인프라를 지리적으로 나누어 배포한 것을 의미. 사용자와 리전을 가깝게 해야 network latency를 최소화할 수 있습니다.
1. AWS에서 EC2 검색 후, 인스턴스 시작 클릭
2. 인스턴스 이름 입력
3. AMI(Amazon Machine Image) 선택
AMI는 EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것을 말합니다.
4. 인스턴스 유형 선택
t2는 요금 타입을 의미하며, micro는 사양을 의미합니다. (t2: https://aws.amazon.com/ko/ec2/instance-types/t2/)
5. 키 페어 생성
키 페어는 SSH로 인스턴스로 접근하기 위해서 필요합니다. 보안상 절대 유출되면 안됩니다.
5-1) 키 페어 이름을 입력 후, 키 파일 형식을 선택
- .pem: Mac을 사용하는 경우
- .ppk: 윈도우에서 putty를 사용하는 경우(.pem으로 선택해도 나중에 winscp에서 따로 변경가능)
6. 네트워크 설정
7. 스토리지
프리티어의 경우 크기를 최대 30GiB까지 가능합니다.
8. 인스턴스 시작 클릭
위의 과정을 다 마치면 아래와 같이 EC2 인스턴스가 실행 중인 것을 확인할 수 있습니다.
탄력적 IP 할당
인스턴스는 생성 시에 항상 새 IP를 할당하기에 같은 인스턴스라도 중지하고 다시 시작하면 새 IP가 할당됩니다.
이 경우, 매번 접속해야 하는 IP가 변경되기에 계속 IP를 확인해야 하는 번거로움이 발생합니다.
이를 해결할 수 있는 방법이 탄력적 IP(Elastic IP)를 사용하는 것입니다.
1. 탄력적 IP 클릭
2. 탄력적 IP 주소 할당 클릭
현재 탄력적 IP 주소가 없기에 아래 '탄력적 IP 주소 할당'을 클릭하고 바로 할당 버튼을 클릭합니다.
3. 주소를 선택한 뒤, 작업에서 탄력적 IP 주소 연결을 클릭
4. 생성한 인스턴스 선택 후, 연결 클릭
위 과정까지 마무리하면, EC2 인스턴스의 생성 과정은 끝납니다.
EC2 서버 접속
1. WinSCP 다운 후, 실행 (https://winscp.net/eng/download.php)
호스트 이름에는 탄력적 IP 주소를 입력하고, 사용자 이름에는 ec2-user를 입력합니다.
(AMI가 ubuntu의 경우, 사용자 이름에 ubuntu를 입력해야 합니다.)
2. 고급 버튼 클릭 후, 다운받은 ppk 파일 등록
3. 저장 후, 로그인, putty 버튼 클릭
아마존 리눅스 서버를 처음 받았다면 몇 가지 설정을 해야 합니다.
- Java 11 설치: 프로젝트 버전에 맞는 자바 버전 설치
- 타임존 변경: 기본 서버 시간은 미국 시간대 이므로 한국 시간대로 변경
- 호스트네임 변경: 수십대의 서버가 작동되는 환경에서, IP만으로 서버가 어떤 역할을 하는지 알 수 없음
4. Java 11 설치 및 확인
sudo yum install java-11-amazon-corretto.x86_64
java -version
5. 타임존 변경 (date 명령어로 확인 가능)
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
6. 호스트네임 변경 후, 재시작 및 변경 내용 확인 (예: springboot-webservice)
(아래 방법은 AMI 버전마다 다를 수 있기에 안된다면 https://rachel0115.tistory.com/entry/AWS-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%84%A4%EC%A0%95 블로그 방법으로 시도해 보시길 추천드립니다.)
sudo hostnamectl set-hostname springboot-webservice
sudo reboot
hostname
7. /etc/hosts에 변경한 호스트네임 등록 및 확인
sudo vim /etc/hosts
curl springboot-webservice
위와 같이 나오면 정상적으로 등록되었습니다.
참고자료
AWS EC2 인스턴스 생성 및 설정
EC2란? Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을
rachel0115.tistory.com
[도서] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
'AWS' 카테고리의 다른 글
[AWS] EC2 서버에 프로젝트 배포하기 (2) | 2023.09.02 |
---|---|
[AWS] RDS 생성 후, 연결하기 (0) | 2023.08.13 |
느리더라도 단단하게 성장하고자 합니다!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!