0. Billing
본격적으로 클라우드 서비스를 이용하기 앞서 요금 폭탄을 맞기 싫으면 Billing의 기능들을 사용하자.
- 사용량 모니터링: AWS에서 제공하는 모든 서비스에 대한 사용량을 서비스 별로 모니터링.
- 비용 분석: AWS에서 제공하는 서비스에 대한 비용을 분석. 서비스별, 리전별, 태그별 또는 사용자별로 비용을 확인가능. 절약 전략 수립 가능
- 청구 정보 확인: AWS 계정에 대한 요금 청구 정보를 확인
- 예산 설정: AWS에서 제공하는 예산 설정 기능을 사용하여, 비용을 제어하고 예산 초과를 방지
budget 기능을 이용해 청구비용의 상한을 정하고 미리 알람을 설정할 수도 있다.
1. EC2 기초
클라우드 서비스의 종류
- IaaS (Infrastructure as a Service) : 하드웨어 인프라를 인터넷을 통해 제공하는 서비스. 가상 하드웨어, 스토리지, 네트워크, 운영체제 등을 제공. AWS EC2, Microsoft Azure, Google Compute Engine 등
- PaaS (Platform as a Service) : 애플리케이션을 개발, 실행, 관리하기 위한 플랫폼을 인터넷을 통해 제공하는 서비스. AWS Elastic Beanstalk, Heroku, Google App Engine 등
- SaaS (Software as a Service): 완전한 애플리케이션을 클라우드 제공업체의 서버에서 실행하여 제공. 사용자는 애플리케이션에 대한 제한된 제어권을 가지며, 클라우드 제공업체가 모든 인프라, 운영 체제, 백엔드 애플리케이션 및 데이터 관리를 담당한다. 구글 드라이브, 마이크로소프트 오피스 365 등
AWS EC2 (Elastic Compute Cloud)는 클라우드 컴퓨팅 서비스 중 하나로, 가상 서버 인스턴스를 제공한다. 필요한 시간만큼 가상 서버를 생성하고 사용할 수 있으며, 필요에 따라 스케일을 조절할 수 있다. 또한 AWS의 다른 서비스와 통합해 다양한 용도로 쓸 수 있다고 한다.
아래와 같은 용도로 사용가능하다.
- 웹 애플리케이션 호스팅
- 데이터베이스 호스팅
- 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝)
- 애플리케이션 테스트 및 개발
EC2가 제공하는 이러한 가상화된 컴퓨터 환경을 "인스턴스(instance)" 라고 부른다. 이러한 인스턴스들은 필요에 따라 생성, 시작, 중지, 종료 등이 가능하다. 다양한 운영 체제 (예: Linux, Windows)와 인스턴스 유형 (예: 범용, 컴퓨팅 최적화, 메모리 최적화)을 지원한다.
EC2 인스턴스 생성하기 : 다양한 옵션들
- 인스턴스 유형 (Instance Types) - 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스와 같은 기본 성능 특성을 결정. 무료로 제공되는 t2.micro 를 사용한다.
* 인스턴스 타입 명칭: 가장 앞의 알파벳은 타입, 뒤의 숫자는 버전, 가장 뒤의 micro,nano 등은 스케일을 의미한다. - 운영 체제 (Operating System) - Amazon Linux, Ubuntu, Windows ... 무료로 제공되는 ubuntu 22.04 LTS 버전을 쓴다.
- 보안 그룹 (Security Groups) - 인바운드(모든 포트 차단, 지정포트 열림) 및 아웃바운드(모든 포트 열림, 지정포트 차단) 트래픽을 제어하는 방화벽 규칙
- 키 페어 (Key Pair) - SSH 액세스를 허용을 위한 키 설정
- 스토리지 옵션 (Storage Options) - 인스턴스 스토어, Amazon EBS 및 Amazon S3와 같은 다양한 스토리지 옵션
인스턴스가 생성되고 난 뒤, 터미널을 열어
nginx를 설치해 웹 서버를 실행해 볼 수 있다.
sudo apt-get update
sudo apt-get install nginx
sudo systemctl start nginx
4. 인스턴스 끄기 & 고정 IP (Elastic IP)
인스턴스를 계속 켜두면, 비용이 청구될 수 있다. 따라서 필요할 때만 켜고 그렇지 않을 때는 인스턴스를 꺼 두는 것이 좋다.
또한, 인스턴스를 켜고 끄는 것을 반복하면 할당된 public IP가 계속 변한다. elastic IP를 통해 고정된 아이피를 할당할 수 있으나, 이 또한 비용청구가 되기 때문에 유의해야한다.
6. 보안 규칙 설정
보안규칙
- 여러 인스턴스에 할당 가능하다.
- time out → 보안규칙 이슈
- connection refuse → ec2 내부 이슈
- 모든 inbound규칙은 기본적으로 차단하고 있다.
- 모든 outbound규칙은 기본적으로 열려 있다.
포트
주요 well-known port:
- 22 = ssh(secure shell)로 인스턴스에 원격 접속
- 21 = FTP 파일전송 프로토콜
- 80 = http 웹 접속
- 443 = https 안전한 http 접속, 현재의 스탠다드
80번 포트와 443번 포트를 열어주도록 한다.
Source
요청의 src IP를 허용할 범위를 지정한다. 모든 곳에서의 접속을 허용하려면 0.0.0.0/0 으로 지정한다.
7. SSH 연결하기
SSH를 통해 내 컴퓨터의 터미널에서 서버에 접속해 조작할 수 있다. 위 화면에서 생성된 .pem 파일을 원하는 폴더에 저장하고, 해당 폴더에서 터미널을 열어 다음 명령어를 입력한다.
chmod 400 new_keypair.pem
chmod는 파일이나 디렉토리의 권한을 변경하는 유닉스 명령어로, 400으로 지정하면 파일의 소유자 만이 읽을 수 있게 권한이 축소된다.
*chmod 644
: 권한을 다음과 같이 변경합니다.
- 소유자: 읽기와 쓰기 권한
- 그룹: 읽기 권한
- 나머지 사용자: 읽기 권한
이후 다음 명령어를 통해 인스턴스에 접속한다.
ssh -i new_keypair.pem ubuntu@<인스턴스의 public IP>
8. EBS
Amazon Elastic Block Store (EBS)는 Amazon EC2 인스턴스에 연결할 수 있는 스토리지 볼륨의 일종이다. EBS 볼륨은 네트워크를 통해 Amazon EC2 인스턴스에 연결되므로 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 사용할 수 있다. 인스턴스가 일종의 가상 컴퓨터라면, EBS는 일종의 가상 USB와 같은 것이다. 인스턴스를 terminate 한 후에도 데이터를 유지할 수 있으며 하나의 인스턴스에 여러 EBS를 연결할 수 있고 다시 떼어내서 다른 인스턴스에 연결할 수도 있다.
하지만 EBS는 하나의 AZ안에서만 사용가능하다는 단점이 있다.
9. EBS 만들기
만들 때 AZ를 유의하여 설정한다. 연결하고싶은 인스턴스와 같은 AZ로 설정하여야한다.
10. EBS snapshot
EBS 볼륨의 데이터를 백업하는 데 사용되는 기능이다. 스냅샷은 EBS 볼륨의 데이터를 인스턴스 내에서 복제하고, 이를 S3에 저장합니다. 스냅샷은 EBS 볼륨의 모든 데이터를 포함하므로, 데이터를 백업하고 나중에 이전 상태로 복원할 수 있다.
EBS 스냅샷의 용도:
- 데이터 백업 및 복원: 스냅샷을 사용하면 EBS 볼륨의 데이터를 백업하고 나중에 이전 상태로 복원할 수 있다.
- 볼륨 확장: 스냅샷에서 새로운 볼륨을 생성하고, 기존 볼륨에서 새로 생성한 볼륨으로 데이터를 복사하여 볼륨을 확장할 수 있다.
- 데이터 마이그레이션: 스냅샷을 사용하여 EBS 볼륨의 데이터를 다른 region으로 옮길 수 있다.
스냅샷은 필요에 따라 자동으로 스케줄링할 수 있으며, 각 스냅샷은 다른 스냅샷과 차이점만 저장한다. 따라서 이전 스냅샷에 비해 적은 양의 스토리지 공간을 사용한다.
11. AMI(Amazon Machine Images)
EC2 인스턴스를 생성할 때 사용되며 운영 체제와 애플리케이션, 라이브러리 등이 포함되어 있다. 이러한 이미지를 사용하면 개발자는 이미 구성된 환경을 더 쉽게 설정할 수 있다.
AMI는 기본 제공되는 것 뿐이 아니라 개발자가 직접 생성할 수 있으며, 자신이 구성한 인스턴스를 이미지로 새로 만들고 공유할 수 있다.
EBS와 AMI의 차이
EBS: EC2 인스턴스에서 사용되는 스토리지 볼륨. 인스턴스의 데이터를 저장하고 보존하는 데 사용됩니다. 인스턴스를 종료해도 볼륨에 저장된 데이터를 보존.
AMI: EC2 인스턴스를 시작할 때 사용되는 이미지. 운영 체제와 애플리케이션을 포함하여 인스턴스를 구성하는 데 필요한 모든 정보를 포함. 손쉽게 EC2 인스턴스를 시작, 중지, 삭제, 복제, 복원 가능
AMI는 EBS 스냅샷을 사용하여 생성될 수 있. AMI를 생성할 때 EBS 스냅샷을 사용하면 인스턴스를 시작할 때 EBS 볼륨이 생성되고, 해당 볼륨에는 이전 인스턴스와 동일한 데이터가 저장된다.
'AWS' 카테고리의 다른 글
AWS 5. VPC, S3 (0) | 2023.05.05 |
---|---|
AWS 4. DNS, route53 (0) | 2023.05.04 |
AWS 3. RDS (0) | 2023.05.03 |
AWS 2. 확장성/가용성, ELB (0) | 2023.05.03 |
AWS 0. 소개, IAM, MFA (0) | 2023.05.03 |