DEVELOP/AWS
AWS | 컴퓨팅
Hanee_
2023. 2. 22. 09:08
✅ 인스턴스 최대 절전 모드 옵션
✅ 탄력적 IP 주소 사용 고려
- 인스턴스 재부팅해도 IP 주소 또는 DNS 호스트 이름은 변경되지 않음
- 인스턴스가 중지되었다가 다시 시작 -> 퍼블릭 IPv4 주소와 외부 DNS 호스트 이름이 변경, 프라이빗 IPv4 주소와 내부 DNS 호스트 이름이 변경되지 않음
- 영구 퍼블릭 IP 주소 필요한 경우 -> 탄력적 IP 주소 인스턴스에 연결
탄력적 IP 주소 특성
- 필요에 따라 리전 내 인스턴스와 연결 가능
- 릴리즈 선택할 때 까지 계정에 할당 된 상태로 유지
ec2 인스턴스 메타데이터
인스턴스에 연결되어있는 동안 볼 수 있음실 행 중인 인스턴스 구성 관리하는데 사용
✅ amazon cloud watch
ec2 인스턴스 모니터링 : 실시간에 가까운 지표 제공, ec2 콘솔 탭에서 볼 수 있는 차트 제공
- 기본 모니터링 : 추가 비용 없음
- 세부 모니터링 : 미리 선택한 7개의 지표에 대한 고정 월별 요금
EC2 비용 최적화
✅ ec2 요금 모델
- 온디맨드 인스턴스 : 시간당 요금. 장기계약 필요 없음
- 스팟 인스턴스 : 온디맨드에 비해 저렴. 어플리케이션 실행할 수 있는 시점 유연하게 선택할 수 있는 경우 적합
- 예약 인스턴스 : 예약하는 인스턴스에 대한 전체 결제, 부분 결제 또는 선 결제 요금 없는 결제, 해당 인스턴스에 대한 시간당 요금 할인, 1년 또는 3년 약정
- 전용 호스트 : 고객을 위해 ec2 인스턴스 용량 완전히 전용으로 사용하는 물리적 서버
✅ 비용 최적화의 4가지 원칙
1. 적절한 크기
2. 탄력성 증대
- 자주 사용되지 않는 amazon ebs 지원 인스턴스를 중지 또는 최대 절전 모드로 전환
- 사용량에 따라 요구 사항을 충족하도록 자동 조정 사용 -> 자동화된 시간 기반 탄력성
3. 최적의 요금 모델
4. 스토리지 선택 최적화
컨테이너 서비스
✅ 컨테이너 기본 사항
컨테이너 : 운영 체제를 가상화하는 방식 중 하나
장점
- 반복 가능
- 독립형 실행 환경
- 소프트웨어가 서로 다른환경에서 동일하게 실행
- 가상머신보다 빠르게 시작, 종료 가능
✅ docker : 어플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
도커에서 컨테이너 실행 -> 컨테이너는 이미지라고 하는 템플릿에서 생성
소프트웨어 어플리케이션을 실행하는 데 필요한 모든 항목이 있음
✅ 컨테이너 vs 가상 머신 비교
가상 머신 : 하이퍼바이저에서 직접 실행됨
컨테이너 : 적절한 커널 기능 지원
왼쪽 | 오른쪽 |
vm 기반 배포 | 컨테이너 기반 배포 |
3개의 ec2 인스턴스는 aws 글로벌 인프라에서 제공하는 하이퍼바이저에서 직접 실행 | 가상 머신 실행하는 ec2는 하나 뿐 |
각 ec2는 가상머신 실행 | 도커엔진은 ec2 인스턴스 linux 게스트 os에 설치. 3개의 컨테이너가 있음 |
3개의 앱이 각각 자체 vm에서 실행 -> 프로세스 격리 가능 | 각 앱은 자체 컨테이너에서 실행 모든 컨테이너는 하나의 ec2 인스턴스에서 실행 |
✅ amazon elastic container service(ECS) : 확장성과 속도가 뛰어난 컨테이너 관리 서비스
장점
- docker 실행을 오케스트레이션
- 컨테이너를 실행하는 노드 플릿 유지 관리 및 확장
- 인프라 구축의 복잡성 해소
어플리케이션을 구성하는 하나 이상의 컨테이너를 설명하는 텍스트 파일인 작업 정의 생성
(작업 정의 -> 사용할 컨테이너, 어플리케이션을 위해 개방할 포트, 작업의 컨테이너에 사용할 데이터 볼륨 등 어플리케이션 파라미터 지정)
✅ 클러스터 내 작업 정의 인스턴스화
amazon ecs 작업 스케줄러 : 클러스터 내 작업 배치하는 역할 담당
✅ aws elastic beanstalk
웹 어플리케이션 쉽게 시작 및 실행 가능
다음 자동으로 처리하는 관리형 서비스
- 인프라 프로비저닝 및 구성
- 배포
- 로드밸런싱
- 자동조정
- 상태 모니터링
- 분석 및 디버깅
- 로깅
✅ aws elastic beanstalk 배포
공통 플랫폼 용으로 작성된 웹 어플리케이션 지원
사용자가 코드 업로드 -> elastic beanstalk 가 배포 자동으로 처리
장점
1. 빠르고 간편하게 사용 가능
2. 개발자 생산성
3. 확장의 어려움
- 어플리케이션 비용 최소화하면서 높은 워크로드나 트래픽 처리가능
- 자동 조정 설정 사용해 어플리케이션의 특정한 필요에 따라 자동으로 어플리케이션 확장/축소 가능
4. 완벽한 리소스 제어
- aws 리소스를 어플리케이션에 가장 적합한 리소스로 자유롭게 선택 가능