NCP ( Naver Cloud Platform ) 로 안정적인 금융지원을 받으며 진행했던 때와 달리,
AWS에 가입하면 1년간 누릴 수 있는 Free Tier 혜택을 이용해서 배포를 시도하다보니
생각지 못했던 트러블들이 꽤나 있었습니다.
먼저, AWS 는 특화된 서비스 종류가 다양하게 있는데
그 중 가장 기본 서비스인 EC2 를 사용해 배포하는 방법을 다루는 글이 될 것 같습니다.
[ EC2 ] Elastic Compute Cloud 란?
: 말 그대로 클라우드 컴퓨터를, 서버만을 통째로 빌려주는(Hosting) 서비스 ( 자유도 높음 )
- 사용자가 DB, 설정, 관리 등 알아서 설정해야 함
- 서버 이용자, 트래픽에 맞춰서 적절한 램 크기의 컴퓨터를 빌려서 사용할 수 있다는 장점
- 사용 시간의 유연함 - 필요한 만큼만 사용할 수 있다.
[ 인스턴스 ] : 클라우드 서버 한 대 ( 클라우드 환경에서 가상 머신을 생성하고 실행하는데 사용 )
: 인스턴스는 여러 개 생성할 수 있고, 서비스 종류에 따라 빌렸다 반납했다를 바로바로 할 수 있다.
서비스 종류
- 온디멘드 : on / off 로 필요할 때만 사용 가능
- 예약 인스턴스 : 미리 선결제, 할인혜택 제공
- 스팟 인스턴스 : AWS에서 보유한 서버 중 여유 분 제공 => 여유 많을 땐 저렴 / 없을 땐 비싸짐
인스턴스 종류 ( 성능에 따른 서버 종류 )
- t2 micro : 프리티어
- m 라인 - memory 중점
- c 라인 - CPU 중점
=> 이 글은 AWS - EC2 - 온디멘드 - t2 micro 를 사용하는 전형적인 프리티어 루트를 사용합니다.
[ 인스턴스 생성하기 ]
서비스 - 컴퓨팅 - EC2 - 인스턴스 - 인스턴스 시작
1. OS 정하기
: 빌려 쓸 클라우드 서버의 OS 를 선택합니다.
Amazon Linux, macOS, Ubuntu, window, CentOS 등 다양한 OS 를 제공
프리티어 딱지가 붙어있는 OS 를 사용해줍니다.
Ubuntu, CentOS, Amazon Linux, macOS 등이 많이 사용되는 것 같습니다.
( 이 글에선 Ubuntu 를 사용했습니다. )
2. 인스턴스 유형 정하기
: 빌려 쓸 서버 유형을 선택합니다.
서버 성능에 따라, 목적에 따라 t라인, m라인, c라인 등 여러 종류가 있고
여기선 프리티어가 적용되는 t2.micro 를 사용합니다.
3. 키 페어 생성 및 다운
: 클라우드 서버용 비밀번호를 생성합니다.
**1회만 다운이 가능하므로 다운받은 pem 파일을 꼭꼭 잘 보관해둡니다.
4. 네트워크 설정
방화벽, 보안그룹 설정은 인스턴스 생성 이후에도 수정이 가능하므로
SSH의 소스유형 정도만 내 IP 로 수정 해줍니다.
5. 스토리지 구성
: SSD 등 스토리지 용량을 정합니다.
프리티어는 최대 30GB EBS 범용(SSD) 를 사용할 수 있다고 안내되고 있으므로
20GB gp2 루트볼륨 으로 설정해 주었습니다.
( swap 메모리(2GB)를 생성해서 사용해야 하기 때문에 넉넉하게 잡아줍니다. )
기본 설정을 완료하고 인스턴스를 생성(시작) 합니다.
인스턴스 메뉴에 가보면 몇 분뒤, 인스턴스 상태가 '실행중' 으로 바뀌고
인스턴스 ID를 클릭해보면 자동할당된 퍼블릭 IP 주소 등 상세 정보를 확인할 수 있습니다.
인스턴스를 당장 사용할 게 아니라면 위의 인스턴스상태를 클릭해 중지 / 종료 시켜둘 수 있습니다.
[ 인스턴스 중지 / 종료 ]
- 중지 - 정보 남아있음 ( 다시 사용할 경우. 요금 거의 안듬. 데이터만 유지 )
=> 중지 시, 기존 public IP 가 회수되고, 다시 시작 시 새로운 public IP 가 부여됩니다.
- 종료 - 아예 삭제 ( 요금 발생 X )
=> 데이터까지 완전 삭제. 복구 불가
[ 방화벽 / 인바운드 설정 ]
: 내가 빌린 서버에 접근할 수 있는 사용자를 정합니다.
인스턴스 - 인스턴스 ID 를 클릭하면 나오는 세부정보에서 보안 메뉴 => 보안그룹 으로 들어가줍니다.
인바운드 규칙 편집 으로 들어가서
Port 번호에 따라 접근할 수 있는 사용자 ( IP ) 를 지정해 줄 수 있습니다.
[ 인스턴스 연결 => 원격제어 SSH ]
: AWS 에 있는 클라우드 서버를 내 컴퓨터에서 조종하기 위해 원격제어(SSH) 방법을 이용합니다.
위 사진에서 인스턴스를 체크하고, 위에 '연결' 을 눌러 암호를 생성합니다.
인스턴스 연결 - 암호생성(키페어이용) - 원격데스크톱 파일 다운
=> 원격제어 프로그램을 사용할 때 다운받아 둔 키페어 파일을 이용해야 원격제어를 할 수 있습니다.
[ 원격제어 프로그램 ]
- xShell, Putty 등 원격제어 프로그램이 필요합니다. 이 글에선 프리티어의 컨셉에 맞게 Putty 를 사용하였습니다. ( 무료 )
- Host Name : Public IP ( AWS 사이트 )
- Port : 22 ( SSH )
- saved Session : 세션 이름
- Putty Generator => Pem 파일 넣어서 PPK 파일로 변환 저장 ( Pem 파일과 이름동일하게 저장) ( Putty 설치 시, Generator 도 설치됩니다. 시작메뉴에서 검색해서 사용 )
- Putty 에서 SSH 확장 - Auth - Brows - PPK 파일 선택해서 접속
- login as : ubuntu / centos 등 AWS 에서 선택했던 OS 이름으로 접속 ( AWS Linux 는 기본 값 login as : ec2-user )
( Putty 에서 HostName 을 'ec2-user@퍼블릭ip' 와 같이 잡아두면 처음 login as ec2-user 를 자동으로 해줍니다. )
Putty 에 접속이 완료되면,
이제 AWS 한테 빌린 컴퓨터, 서버를 원격으로 사용할 준비가 완료되었습니다.
다음 글에서 SpringBoot, Maven, MySQL, Jenkins 환경에서 필요한
JDK
Maven
MySQL
Jenkins
설치 및 설정 을 정리해보려 합니다.
그외 필요한 메뉴들 입니다.
[ 요금 관리 ]
- 닉네임 클릭 - 내 결제 대시보드 ( 요약 )
- 청구서 - 상세
- budget - 사용할 예산 limit 설정 - 이메일 알림
=> AWS 프리티어를 이용하더라도, 제공되는 기본 사용량을 추가하면 추가한 만큼의 비용이 발생합니다.
그래서 처음 가입시 VISA 등의 카드를 등록하게 하는 듯 합니다.
보안 및 알림 등을 꼭 사용해야 합니다!
[ AWS 보안 OTP ]
- 서비스- 보안자격 - IAM - 사용자 / 권한 ( Identity & Access Management )
- 루트 계정에서 MFA 활성화 ( MultiFactor Autehntication)
- 가상 MFA 디바이스 ( 앱 사용 OTP )
- 구글 OTP 앱 설치, QR 스캔, 등록
- => 로그인 시, MFA 코드 요청 ( OTP 코드 )
'Back to the AWS' 카테고리의 다른 글
AWS Tomcat 서비스 등록 => 자동시작 (0) | 2022.12.25 |
---|---|
AWS Apache2 VirtualHost 등록 => 80포트로 HTTP 와 WebSocket 사용하기 (0) | 2022.12.24 |
AWS EC2 프리티어로 배포하기(2) ( SpringBoot, Maven, MySQL, Jenkins, Ubuntu, Putty ) (0) | 2022.12.09 |