리뷰 (Review)
NAT Gateway
- 인터넷과 연결을 수행하지만 단방향 통신만 수행 (인터넷 게이트웨이는 양방향 통신 수행)
- 일반 Client가 Private Subnet에 있는 AWS 리소스 접근은 불가능
- NAT Gateway 서비스 인스턴스는 반드시 Public Subnet에 위치해야 한다.
- NAT Gateway 서비스는 EIP (탄력적 IP, 고정 IP)를 사용한다.
Bastion Server
- Private Subnet에 위치한 EC2 Instance를 제어하는 목적으로 사용하는 EC2 Instance
AWS 네트워크 보안
- 보안 그룹 (Security Group)
- EC2 Instance 단위로 설정하고, Inbound 규칙과 Outbound 규칙으로 구성
- 허용 (Allow) 규칙만 생성 가능
- 기본적으로 모든 보안 그룹의 Outbound 규칙은 모든 트래픽을 허용, Inbound 규칙은 모두 거부
- 각 EC2 Instance는 서로 다른 보안 그룹 할당이 가능
- 보안 그룹은 상태를 저장하는 성격(stateful)을 갖는다.
- 네트워크 ACL (NACL)
- Inbound 규칙과 Outbound 규칙으로 구성
- NACL은 여러 Subnet에 적용이 가능하지만, Subnet은 한개의 NACL만 연결 가능
- 허용 (Allow) 규칙과 거부 (Deny) 규칙 생성 가능
- 낮은 규칙 번호 순으로 적용
- NACL은 상태를 저장하지 않는 성격(stateless)을 갖는다.
스토리지 서비스
- 데이터나 객체를 저장하기 위한 목적으로 사용하는 서비스
- 블록 형태 데이터 저장 스토리지 서비스 - EBS (Elastic Block Storage)
- 파일 형태 데이터 저장 스토리지 서비스 - EFS (Elastic File Storage)
- 객체 형태 데이터 저장 스토리지 서비스 - S3 (Simple Storage Service)
EC2 인스턴스 스토리지 볼륨
- EC2 Instance의 기본 저장 공간으로 사용하는 EBS로 EC2 루트 볼륨을 의미
- EC2 Instance 삭제 시 인스턴스 스토리지 볼륨도 같이 삭제되므로 중요 정보 보관 필요
Scale Out
- 동시 접속 Client 수에 따른 서버 분산 처리
- EC2 Instance를 복제하여 여러 개의 EC2 Instance를 생성하는 동작
- ELB
- Auto Scailing
컴퓨팅 서비스 - AutoScaling
Auto Scaling
- Scale out 적용 시 사용하는 기능
- 다중 서버를 운영할 때 서버의 일정한 부하 임계치를 넘었을 때 자동으로 서버를 증가시키거나
부하 임계치가 해소되었을 때 다시 원래의 서버 수로 자동 변화를 수행하는 서비스
실습 내용
- 부하 분산 적용 Web Server Infra 구성 실습
1. VPC 생성
2. Public Subnet 생성 (가용 영역, AZ 단위로 생성)
3. 2개의 Public Subnet에 각각 EC2 Instance 생성 - 실습 중에는 a와 c에 생성
- 각각의 EC2 Instance 에는 Web Server 구성
- 기본 웹페이지 구성
4. ELB 생성
- EC2 메뉴 → 로드 밸런서 → 로드 밸런서 생성
- Load balancer type 결정 - Application Load Balancer 선택
- Load balancer name 결정
- Scheme - Internet-facing 선택
- IP address type
- VPC 및 AZ 선택
- 보안 그룹 선택
- Listeners and routing
- protocol - listen할 프로토콜
- port - listen할 포트 번호
- default action - 패킷이 수신되었을 때 할 행동 지정, target group으로 결정
- Tags 설정
- target group 생성
- EC2 메뉴 → 로드 밸런싱 → 대상 그룹
- target type 결정 - Instance 선택
- Traget group name 결정
- VPC 및 Protocol version 선택
- Health checks 설정 - ELB에 연결된 Server 상태 확인
- Healthy threshold - 인스턴스가 동작중임을 판단하는 횟수
- Unhealthy threshold - 인스턴스가 동작하지 않는다고 판단하는 횟수
- Tag names 설정
- register targets - ELB에 의해서 패킷을 분배할 대상 EC2 Instance
- Available instances - 패킷 분배 대상 EC2 Instance 선택
- Include as pending below 선택
- EC2 메뉴 → 로드 밸런싱 → 대상 그룹
5. 서비스 이용 시 ELB의 DNS 이름으로 접속해야 ELB에 의한 Load Balancing 수행
6. 시작 구성 (template) 생성
- 시작 구성 (template) - Auto Sacling에 의해 생성되는 Server 형태
- EC2 메뉴 → Auto scaling → 시작 구성 → 시작 구성 생성
- 시작 구성 이름 설정
- AMI 선택
- 인스턴스 유형 선택
- 추가 구성 설정
- 스토리지 볼륨 설정
- 보안 그룹 설정
- 키 페어 선택

7. Auto Scaling 그룹 생성
- EC2 메뉴 → Auto Scaling 그룹 → Auto Scaling 그룹 생성
- 시작 템플릿 또는 구성 선택
- Auto Scaling 그룹 이름 설정
- 인스턴스의 시작 템플릿 또는 Auto Scaling의 시작 구성 선택
- 인스턴스 시작 옵션 선택
- 네트워크 설정 - Auto Scaling 적용할 VPC와 Subnet 선택
- 고급 옵션 구성
- 로드 밸런싱 설정
- 기존 로드 밸런서에 연결 - 로드 밸런서 대상 그룹 선택
- 상태 확인 설정
- 추가 설정
- 그룹 크기 및 크기 조정 정책 구성
- 그룹 크기
- 원하는 용량 - Auto Scaling 그룹을 시작하고 유지하려는 EC2 Instance 수
- 최소 용량 - 최소 용량 미만으로 내려갈 수 없는 EC2 Instance 수
- 최대 용량 - 최대 용량 초과로 올라갈 수 없는 EC2 Instance 수
- 크기 조정 정책
- Auto Scaling이 동적으로 EC2 Instance 개수를 증가시키는 정책
- 크기 조정 정책 이름 - Target Tracking Policy
- 대상 추적 크기 조정 정책 지표 유형
- 평균 CPU 사용률
- 평균 네트워크 입/출력
- 대상 당 Application Load Balancer 요청 수
- 대상값 결정
- 그룹 크기
- 알람 추가 (필요 시 설정)
- 태그 추가
- 검토
- 시작 템플릿 또는 구성 선택
8. Auto Sacling 그룹 활동 탭에서 Auto Scaling 작업 기록 확인을 통해 Auto Scaling 동작 과정 확인
9. 자동 크기 조정 탭에서 동적 크기 조정 정책 생성
- 지표 유형 및 대상값 설정

Auto Scaling 실행 테스트
- 동적 크기 조정 정책을 CPU 사용률에 따른 지표 유형을 선택한 경우 CPU stress test를 통해 테스트 수행 가능
- Auto Scaling에 의해서 생성된 EC2 Instance에서 테스트
- 퍼블릭 IP는 EIP를 사용하여 연결
- sudo amazon-linux-extras install -y epel : Amazon Linux repository에서 epel 패키지 설치
- sudo yum install -y stress : CPU stress test 패키지 설치
- stress --help : stress 명령 도움말
- 현재 시스템 CPU core 수 확인 방법 : cat /proc/cpuinfo
- stress --cpu <cpu 코어수>
- CPU stress test 시작
- 현재 시스템의 cpu 코어수를 입력하면 해당 CPU의 사용률을 100%로 동작할 수 있도록 테스트 수행
- stress --cpu 1 & : CPU 코어 1개에 대하여 stress test를 background로 실행
스토리지 서비스 - S3
S3 (Simple Storage Service)
- 객체를 저장하는 스토리지
- 객체 (Object) 구성
- 속성 (Attribute) - 객체 상태
- 행위 (Behavior) - 객체 상태 변경 / 이용 동작
- S3에 저장되는 객체 구성 요소 - 데이터, 메타 데이터, 키(Key)로 구성
- 데이터(값) - 이미지, 동영상, 텍스트 문서 또는 기타 유형 파일
- 메타 데이터 - 데이터 내용, 사용 방법, 객체 크기 등에 대한 정보
- 객체 키(Key) - 객체 고유 식별자
- 객체 (Object) 구성
- S3는 EC2와는 별도로 사용되는 serverless 형식의 서비스
- S3는 글로벌 단위 서비스
- S3 생성은 별도의 리전에 생성
- S3에 저장할 수 있는 하나의 객체 크기는 최대 5TB
- 별도 EC2 Instance 생성 없이 단독으로 사용
- S3는 무제한을 공간 제공
- 참고 자료
- S3는 버킷 (bucket) 단위로 저장
- S3는 별도 파일 시스템이 존재하지 않고 버킷에 객체 저장
- S3 사용 시작은 버킷 생성으로부터 시작
- 버킷은 객체를 담고 있는 공간
- 크기는 무제한이고 리전을 지정하여 생성
- 버킷 이름은 AWS 전체에서 고유해야 하고 중복될 수 없다.
- 한번 설정된 버킷 이름은 다른 계정이 사용할 수 없다.
S3 사용 - 버킷 생성
- 서비스 메뉴 → 스토리지 → S3 → 버킷 만들기
- 버킷 이름 - AWS내에서 고유한 이름 설정
- AWS 리전 선택
- 객체 소유권 선택 - ACL 비활성화됨 (객체 소유권을 계정 소유로 한다.)
- 퍼블릭 액세스 차단 설정 - 모든 퍼블릭 액세스 차단 설정
- 버킷 버전 관리 설정 - 비활성화
- 태그 설정
- 서버 측 암호화 설정 - 비활성화
TIF
한참 Linux로 각종 서버 구축 및 운영 배울 때 로드 밸런서는 못하고 넘어갔다.
그래서 무슨 의미인지도 모르고 넘어왔는데 이번 주에 어느 정도 개념을 잡았고,
오늘 실습을 통해서 확실히 어떤 느낌인지 알게되어 흥미있었다.
생각보다 인프라 쪽 신입 개발자 뽑는 곳이 제법 있다. 물론 규모는 크지 않지만.
일단은 올해는 이번 과정과 클라우드 관련 자격증 등 취득을 목표로 해야겠다.
2022. 09. 14 에 작성된 글입니다.
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 32일차 (0) | 2023.10.05 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 31일차 (1) | 2023.10.04 |
구름 쿠버네티스 전문가 과정 6기 - 29일차 (0) | 2023.09.25 |
구름 쿠버네티스 전문가 과정 6기 - 28일차 (0) | 2023.08.29 |
구름 쿠버네티스 전문가 과정 6기 - 27일차 (0) | 2023.08.25 |