Devops 엔지니어 솔렐레 IT

AWS 기본 - 배포 및 관리 서비스 (IAM, ELB, CloudWatch, Trusted Advisor, CloudFormation, OpsWorks) 본문

Devops 엔지니어가 알려주는 클라우드 지식/AWS

AWS 기본 - 배포 및 관리 서비스 (IAM, ELB, CloudWatch, Trusted Advisor, CloudFormation, OpsWorks)

솔렐레_ 2019. 10. 12. 09:00


안녕하세요. 솔렐레입니다.
이번 포스팅에서는 AWS에서 기본적인 보안 서비스인 IAM(Identity and Access Management)에 대해 설명드리도록 하겠습니다. 서비스를 운영한다면 보안 및 권한 부여가 애플리케이션을 관리하는 데 있어서 매우 중요한 것 같습니다. 그럼 AWS에서는 어떻게 보안을 관리 운영할 수 있는지 설명드리겠습니다. 그리고 AWS운영의 핵심 기술인 원하는 만큼 서버의 대수를 증가, 감소하여 사용이 가능하게 해주는 ELB와 Auto Scaling에 대한 개념에 대해 정리하겠습니다. 마지막으로 AWS 관리를 용이하게 해주는 서비스와 배포 서비에 대해 소개하도록 하겠습니다. 그럼 시작하겠습니다.


[AWS IAM (Identity and Access Management)]
AWS에서 기본적으로 SSL 엔드포인트를 통한 보안 전송, 보안 그룹을 통한 인스턴스에 방화벽 구축, VPC에 네트워크 제어를 통해 진행되고 있으며 모든 액세스는 Bastion(배스천) 서버를 통해서 기록이 되고 있습니다. 이 기능 중 IAM은 (1) 사용자 및 액세스 관리 (2) 역할 및 권한 관리 (3) 자격 증명 연동 사용자 및 권한 관리를 맡아 진행하고 있습니다. IAM 권한 정책은 JSON 형식으로 이루어져 있으며 사용자, 그룹에 대한 역할을 지정하게 됩니다. IAM은 사용자 관리, 그룹을 이용한 권한 지정, 권한에 대한 부여, 암호 정책 구성에 사용할 수 있는 기술입니다. 자격 증명은 역할을 사용하여 위임하는 것이 좋으며 주기적으로 교체하는 것이 좋습니다. 불필요한 사용자나 자격 증명은 주기적으로 관리 및 삭제해야 하며 보안 강화를 위해 정책 조건에 대한 사용 및 활동을 꾸준히 모니터링하는 것이 중요합니다.

[AWS – ELB(Elastic Load Balancer)]
ELB L4와 비슷한 역할을 하는 서버로 트래픽을 여러 서버로 분산시켜주는 역할을 하고 있습니다.또한 비정상적인 인스턴스 감지도 진행할 수 있으며 HTTP/HTTPS  TCP 트래픽의 라우팅과 로드 밸런싱을 지원하고 있습니다.

종류 설명
ALB (Application Load Balancer) - HTTP/HTTPS (Layer 7)
- 동적 호스트 매핑
- 경로 기반 라우팅
- Lambda 함수 대상으로 등록 가능
NLB (Network Load Balancer) - TCP / SSL (Layer 4)
- 라우팅 알고리즘 기반
- 지정된 포트에 선택 대상 매핑
- NLP 고정 IP 지정 가능
- 여러 개의 어플리케이션으로 요청 가능
CLB (Classic Load Balancer) - TCP / SSL (Layer 4)
- HTTP / HTTPS
- 정적 매핑
- 고정 세션 지원


[AWS - AutoScaling]
AutoScaling은 서버의 사용량이 급격히 변경되었을 경우, 자동으로 Scale Out/In  Up/Down 하여 서비스 사용에 대응이 되도록 유동적으로 사용이 가능한 시스템입니다. AutoScaling그룹 생성하여 관리가 필요하고 실제 설정되는 기준에 따라 인스턴스 확장 및 관리가 진행됩니다. Scale Out 될될 경우 인스턴스가 늘어남에 따라 ELB에서 자동으로 추가 연결되어 서버를 사용할 수 있도록 합니다. 사용량이 줄어들 경우엔 Scale In 되어 인스턴스가 자동으로 삭제됩니다.보통 이벤트와 같이 특정 기간에 사람이 많이 몰릴 경우 기존 IDC 환경에서는 서버를 미리 늘려놓고 실제 사용하지 않는 공간까지 만들어 사용했지만 지금은 AutoScaling을 통해 실제 고객이 들어오는 트래픽을 바탕으로 원하는 용량의 크기만 자동으로 증설하여 사용할 수 있기 때문에 가용성이나 비용 측면에서 장점을 가져갈 수 있습니다.

[AWS – CloudWatch]
CloudWatch는 클라우스에서 동작하고 있는 서버 리소스와 애플리케이션에 대한 모니터링을 지원하는 서비스입니다. 사용률,성능 및 수요 패턴에 대해 시각적으로 지표 화하여 사용자에게 제공함으로써 현재 발생하고 있는 문제점이나 앞으로 일어날 가능성이 있는 오류에 대해 해결하고 예측할 수 있도록 도와주고 있습니다. 해당 서비스로는 Management Console, SDK 또는 CLI를 통해 액세스가 가능합니다. 모니터링을 진행하면서 그래픽이나 통계화면으로 볼 수 있을 뿐만 아니라 경보 알림도 설정할 수 있고 특정 인원만 접속하여 볼 수 있도록 권한 관리도 가능합니다.

[AWS – Trusted Advisor]
Trusted Advisorfmf 사용하여 AWS에서는 5가지 범주의 성능과 보안 권장 사항을 제공합니다.

보안 내결함성 (Fault Tolerance) 성능 향상 비용 최적화 서비스 제한용량
1. 보안 그룹 사용
2. AWS IAM 사용
3. AWS S3 버킷 권한 지정
4. 루트 계정의 MFA
5. AWS IAM 암호 정책 지정
6. AWS RDS 보안 그룹 액세스 위험 탐지
1. AWS EBS 스냅샷
2. 로드 밸런서 최적화
3. AWS RDS 다중 AZ 사용
4. AWS Route53 서버 위임
5. ELB 연결 드레이닝
1. 높은 사용율의 AWS EC2 인스턴스 확인
2. 서비스 한도 확인
3. EC2 보안 그룹에 있는 과도한 수의 규칙이 있는지 모니터링
4. AWS EC2에서 EBS로의 처리량 최적화
5. CloudFront 대체 도메인 이름
1. AWS EC2 예약 인스턴스 최적화
2. 사용률이 낮은 EC2 인스턴스 확인
3. 유휴상태의 ELB 확인
4. 연결되지 않는 IP 주소 확인
5. AWS RDS 유휴 DB 인스턴스 확인
1. 서비스 한도의 80%가 넘는 서비스 사용량이 있는지 점검
2. 스냅샷을 기반으로 현재 사용량 확인
3. 변경된 한도 및 사용량 반영에 대해 24시간 안으로 반영

[AWS - CloudFormation]
CloudFormation은 리소스를 관리할 수 있는 서비스로 템플릿 및 리소스 모음을 배포 및 업데이트 처리합니다. 리소스 스택 템플릿을 생성하여 런타임 파라미터를 통해 템플릿으로부터 스택을 배치하도록 되어있습니다. 템플릿을 시작점으로 사용하거나 직접 생성이 가능합니다. 템플릿은 JSON 형식으로 되어있고 스택을 생성할 때마다 템플렛에 설명된 리소스를 프로비저닝 합니다.

[AWS - OpsWorks]
OpsWorks는 컴퓨팅 환경에서 서버 구성, 배포, 관리를 자동화할 수 있는 서비스입니다. 유연하게 애플리케이션을 관리할 수 있는 솔루션으로 샘플 템플릿을 활용하거나 자체 제작을 할 수 있습니다. Chef 레시피 또는 Bash 스크립트를 통해 코드로 구성합니다. OpsWorks는 스택, 계층, 인스턴스, 앱 이렇게 4개의 요소로 구분되어 있습니다.
(1) 스택: 관리하고자 하는 컴퓨터 인프라와 애플리케이션을 나타냄
(2) 계층: 인스턴스 및 관련 리소스를 설정하고 구성하는 방법을 정의
(3) 인스턴스: 수동 확장을 할지 로드나 시간 기반 인스턴스로 자동 확장을 할지 결정함
(4) : 특정 인스턴스로 배포하고 Chef 레시피로 배포를 사용자 정의함


지금까지 AWS를 관리하는 보안, 모니터링, 배포 서비스에 대해 알아보았습니다. 지금까지 소개드린 기본적인 서비스 외에 AWS에서는 더욱 다양한 서비스들을 많이 가지고 있습니다. 이를 모두 알고 적용하긴 힘들겠지만 내가 원하는 스펙과 기능들을 정하고 사용한다면 비용이나 효율 측면에서 많은 장점을 가져갈 수 있을 것이라고 생각합니다. 앞으로 IT에서는 서버들을 점점 클라우드 환경에 올려놓고 사용할 확률이 높을 것 같습니다. 따라서 앞으로는 클라우드 기술이 선택이 아닌 필수가 되는 시대가 되지 않을까 생각합니다. 감사합니다. :)

Comments