AWS 패턴별 구축/운용 가이드 · · 7 min read
1-3 : 하드웨어 리소스
Amazon Elastic Compute Cloud(EC2)
- EC2
- 클라우드 위에서 가상 서버(인스턴스), 백업 이미지(AMI, 스냅샷), 디스크(EBS), 방화벽(보안 그룹), 고정 글로벌 IP(Elastic IP) 등을 사용할 수 있게 해주는 서비스
- 기본적인 사용 방법은 AWS가 제공하는 AMI를 기반으로 디스크 용량 또는 통신 요건을 설정해서 인스턴스를 생성하는 것이다.
- 인스턴스에 로그인해서 미들웨어 설치 또는 설정을 할 수 있으며, 백업이 필요한 시점에 AMI를 생성하거나, 필요에 따라 Elastic IP를 부여해서 인터넷과 통신할 수 있다.
- 인스턴스
- 기존의 On Premise 환경 위의 서버에 해당한다.
- 인스턴스가 갖는 정보 : OS, CPU, 메모리
- 실제로 설치할 미들웨어 또는 저장할 데이터는 EBS에 저장된다.
- 선택할 수 있는 OS의 종류
- RedHat Enterprise Linux
- SUSE Linux Enterprise Server
- Ubuntu
- Fedora
- Debian
- CentOS
- Gentoo Linux
- Oracle Linux
- FreeBSD
- Windows Server
- 인스턴스에 적용할 수 있는 인스턴스 유형
- 인스턴스 유형이란 인스턴스에 적용할 CPU, 메모리, 내장 디스트, 네트워크 용량 패턴을 나타낸다.
- 사용 목정에 따라 구분된다.
- 범용 T2 인스턴스와 M3 인스턴스
- CPU 성능을 높게 설정한 C3 인스턴스와 C4 인스턴스
- 메모리 용량을 크게 설정한 R3 인스턴스
- 인스턴스 스토리지
- EC3 인스턴스가 가동되는 물리 서버에 있는 로컬 디스크를 나타낸다.
- 인스턴스 유형에 따라 사용할 수 있는 인스턴스 스토리지의 크기와 개수가 정해진다.
- 인스턴스 스토리지를 사용할 때 주의해야 하는 것은 인스턴스 스토리지에 있는 데이터는 EC2 인스턴스를 중지하면 사라진다는 것이다.
- EBS-Backed 인스턴스와 Instance Store-Backed 인스턴스
- EBS-Backed 인스턴스
- OS를 포함한 루트 디바이스 정보를 EBS에 저장한 인스턴스를 나타낸다.
- AWS는 EBS-Backed 인스턴스를 권장하고 있다.
- EC2 인스턴스의 가동 중인 루트 장치와 관련된 변경 사항이 모두 EBS에 기록되므로, 인스턴스를 정지해도 변경 사항이 유지된다.
- 변경 내용이 반영된 상태로 인스턴스를 기동할 수 있다.
- Instance Store-Backed 인스턴스
- OS를 포함한 루트 디바이스 정보를 S3에 저장한 인스턴스를 나타낸다.
- 인스턴스 기동 때는 S3에서 인스턴스 스토리지에 데이터를 복사하고 기동한다.
- 이후에 다시 기동하면 S3에서 루트 디바이스를 처음부터 읽어 들이므로, 이전 변경 사항은 모두 파기된다.
- 루트 장치의 내용을 변경하고 싶다면 전용 도구를 사용해서 변경 후의 내용을 S3에 업로드해야 한다.
- EBS-Backed 인스턴스
- 인스턴스 비용
- 인스턴스 유형에 따른 가격과 시간을 곱하면 구할 수 있다.
- 예시
- r2.small 인스턴스를 10일 동안 사용하면 다음과 같이 계산한다.
$0.04/시간 * 24시간 * 10일 = $9.6
- 인스턴스가 1시간을 넘지 않는 시간만큼 가동해도 1시간 만큼의 비용이 발생한다.
- 인스턴스 비용 최적화
- 인스턴스의 활용 목적을 분명하게 해서 인스턴스 유형과 가동 시간을 조절해야 한다.
- 인스턴스를 지정한 날짜에 가동해서 처리하는 것은 AWS가 제공하는 CLI 또는 API를 활용해 쉽게 자동화할 수 있다.
- EC2 인스턴스에서 사용하는 OS 라이선스
- OS 라이선스 비용은 EC2 사용 비용에 포함되어 있다.
- 선택한 OS에 따라서 같은 인스턴스 유형이라도 시간당 비용이 다를 수 있다.
Amazon Elastic Block Store(EBS)
- EBS 볼륨 유형
- 범용(SSD)
- 1GB마다 3IOPS의 베이스 퍼포먼스를 가진다.
- IOPS를 직접적으로 지정할 수는 없지만, 용량이 늘어나면 자동으로 IOPS도 올라간다.
- 스토리지에 대한 읽고 쓰기는 비용이 추가되지 않는다.
- 프로비저닝된 IOPS(SSD)
- 최대 4000IOPS까지 I/O 성능을 지정할 수 있다.
- 굉장히 빈번하게 I/O가 지속적으로 발생할 때 프로비저닝된 IOPS를 사용한다.
- 마그네틱
- 기존의 마그네틱 디스크에 해당한다.
- AWS가 SSD를 지원하기 시작한 이후로는 권장하지 않고 있다.
- SSD에 비교해서 스토리지 비용이 싸므로, 개발 환경 등에 조금만 활용하는 경우에 적합하다.
- 읽고 쓰는 것에 대해서 비용일 발생하므로 주의가 필요하다.
- 범용(SSD)
- EBS 비용
- 인스턴스 유형에 따른 가격, 용량, 시간을 곱하면 구할 수 있다.
- 예시
- 서울 리전에서 범용(SSD)을 10GB만큼 10일 사용하면 다음과 같이 계산한다.
$0.12/(1GB/월) * 10GB / 30일(1개월) * 10일 = $0.4
- EBS 크기 변경
- EBS의 크기를 변경하려면 이후에 설명하는 EBS 스냅샷을 생성해야한다.
- 생성한 EBS 스냅샷을 기반으로 EBS를 복구하게 만들고, 이때 크기를 변경해서 저장하면 된다.
- EBS 크기를 변경할 때 용량 크기를 늘릴 수 있지만, 감소시킬 수 없다는 것에 주의가 필요하다.
- EBS 암호화
- EBS를 새로 생성할 때 암호화 옵션을 활성화할 수 있다.
- 암호화 방식은 AWS가 관리하는 암호 키(SSE-S3)를 활용한 AES-256 알고리즘을 사용하고 있다.
- 암호화 옵션을 활성화한 EBS는 인스턴스에 Attach하면, 읽고 쓰는 데이터들을 암호화하게 된다.
- 암호화 옵션을 사용한 EBS를 기반으로 만든 스냅샷(백업 기능)을 기반으로 복구하면 자동적으로 암호화 옵션이 활성화되며, 원래 EBS와 같은 키로 암호화 된다.
- 주의 사항
- 암호화 옵션을 활성화하지 않고 만든 EBS는 이후에 암호화 옵션을 활성화할 수 없음
- 암호화 옵션을 활성화한 스냅샷은 다른 AWS 계정과 공유할 수 없음
- 암호화 옵션을 사용하는 인스턴스 유형에만 사용할 수 있음
- EC2, EBS의 SLA
- EC2, EBS는 2013년 6월에 SLA(Service Level Agreement : 품질 서비스)를 발표했다.
- 관련 디테일
EC2 백업
- EC2 백업
- EC2 인스턴스 또는 EBS를 운용할 때 빼놓을 수 없는 것은 AMI와 EBS 스냅샷이라는 백업이다.
- 인스턴스 또는 EBS로부터 AMI, EBS 스냅샷을 생성하면, 언제든지 해당 시점으로 복구할 수 있다.
- 리전 간의 복사, AWS 계정간의 공유, Auto Scaling에도 활용할 수 있다.
- Amazon Machine Image(AMI)
- 가상 서버에 있는 인스턴스 기동에 필요한 정보를 저장하고 있다.
- AMI 정보에는 OS, 아키텍처(32, 64bit), 가상화 방식(HVM, paravirtual), 인스턴스 기동 때에 Attach할 EBS 스냅샷 정보, 블록 디바이스 매핑 지점 등이 포함되어 있다.
- AMI는 단독으로 인스턴스를 생성하지 못하며, EBS 스냅샷과 함께 사용해야 인스턴스를 생성할 수 있다.
- EBS 스냅샷
- EBS를 백업해서 S3에 저장하는 기능이다.
- 백업 방식은 이전의 EBS 스냅샷에서 변경된 현재 EBS의 변경 사항만 백업하는 증분 백업이다.
- 변경 사항이 많을수록 EBS 스냅샷을 생성하는데 오랜 시간이 걸린다.
- AMI, EBS 스냅샷의 리전 간 복사
- AMI와 EBS 스냅샷은 다른 리전으로 복사해서 사용할 수 있다.
- 이런 기능을 활성화하면 여러 리전을 사용한 DR 환경을 쉽게 구현할 수 있다.
- AMI, EBS 스냅샷의 AWS 계정간 공유
- AMI와 EBS 스냅샷은 공유할 AWS 계정 번호를 등록해서 같은 리전 내부에서 다른 AWS 계정과 공유할 수 있다.
- AMI를 공유하면 AMI 정보에 포함된 EBS 스냅샷도 공유된다.
- 특정 AWS 계정 뿐만 아니라 같은 리전 내부의 모든 AWS 사용자에게 AMI, EBS 스냅샷을 공개할 수 있다.
- 주의 사항
- AWS 계정 공유는 같은 리전 내부에서만 이루어지므로, 다른 리전과 공유할 때는 이전에 언급한 리전 간의 복사 조작을 사용해야 한다.
- AMI, EBS 스냅샷 비용
- AMI에는 비용이 들지 않는다.
- EBS 스냅샷에서 비용이 발생한다.
- 예시
- 서울 리전에서 10GB로 10일동안 사용하면 다음과 같이 계산한다.
$0.005/월1GB * 10GB / 30일(1개월) * 10일 = $0.17
Amazon Simple Storage Service(S3)
- S3
- 99%의 내구성을 실현한 스토리지다.
- REST, SOAP와 같은 단순 웹 서비스 인터페이스를 사용한다.
- 저장하는 데이터 양에 대한 비용도 저렴하고, 저장할 수 있는 데이터 양이 무한에 가깝다.
- FTP 서버처럼 단순 파일 저장 영역으로 사용할 수도 있으며, 다양한 AWS 서비스 사용 로그 저장, 정적 웹 사이트 호스팅 기능 등도 가지고 있다.
- 비용 체계와 사용 방법이 다르긴 하지만, 이전 절에 설명한 EBS 스냅샷의 저장 영역으로도 사용되고 있다.
- 빅 데이터 분석 데이터 소스로 활용하거나 On Premise 환경의 재난 복구 전용 데이터 백업, Auto Scaling을 활용한 EC2 인스턴스의 로그 저장 등으로 폭 넓게 활용할 수 있다.
- S3 확장화 구성
- S3는 데이터를 저장할 때 자동적으로 여러 개의 데이터 센터에서 데이터를 동기화한다.
- 높은 견고성과 내결함성을 보장한다.
- 동기 처리는 S3에서 실행한 업데이트 작업은 시간이 어느 정도 지나면 반드시 반영한다는 최동 일관성(eventual consistency)을 채용하고 잇따.
- 데이터를 저장한 뒤에 여러 데이터 센터에서 동기화 하는 동안 데이터 읽기를 해버리면, 데이터 동기화가 완료되지 않은 데이터 센터의 데이터를 참조했을 때 이전 데이터를 읽을 가능성이 있으므로 주의해야 한다.
- S3 버킷 객체의 개념
- S3의 스토리지 옵션
- S3 비용
- S3 암호화
- S3 접근 관리
- S3 이벤트 알림
- S3의 SLA
- S3의 웹 호스팅 기능
- EBS 스냅샷과 S3 객체의 차이
- S3의 버전 관리
- S3 수명 주기 설정
Amazon Glacier
- Glacier 비용
- Glacier의 SLA