서비스 및 도구
CI/CD 서비스
1. AWS CodeBuild : 소스코드 컴파일 및 테스트 실행 이후 배포할 준비가 된 소프트웨어 패키지를 생성하는 안전관리형 연속 통합 서비스
특징)
- 자체 빌드 서버를 설정, 관리, 패칭할 필요 없음
- 용량을 자동으로 확장할 수 있으므로 빌드가 실행 대기열에 대기하지 않음
- 구축하는 데 사용한 시간만큼 요금 지불
- 사전 패키징된 구축 환경 또는 자체 구축 환경을 사용하고 사용자의 키로 아티팩트를 암호화할 수 있음
작동 방식)
-> 소스 코드를 컴파일하고 테스트를 실행한 후 바로 배포 가능한 소프트웨어 패키지를 생성할 수 있는 완전관리형의 지속적인 통합 서비스
AWS CodeBuild 사용 이유)
>> 자체 빌드 서버를 프로비저닝, 관리 및 확장할 필요가 없음. 소스코드의 위치를. 지정하고 빌드 설정을 선택하기만 하면, 코드 빌드가 코드를 컴파일하고, 테스트를 하며, 패키징을 빌드 스크립트를 실행할 수 있다.
(* 프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해두고 필요에 따라 즉시 사용할 수 있는 상태로 준비시켜 둠)
-> 사용 사례 : 지속적 통합 및 전달(CI/CD) 파이프라인 자동화, 빌드 서버 관리의 복잡성 제거, 깃허브에서 호스팅되는 소스코드 구축
(* 호스팅 : 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해주는 서비스)
2. AWS CodeCommit : 안전한 Git 기반 리포지토리를 호스팅하는 완전관리형 소스 제어 서비스
특징)
- 자체 소스 제어 버서를 호스팅, 유지관리, 백업, 확장할 필요 없음
- 전송 중 자동 암호화된 파일을 사용하여 사용자별 엑세스 지정 가능
- 확장 가능하고 이중화이며 내구성이 뛰어난 아키텍처를 통해 리포지토리의 고가용성과 접근성 유지
3. AWS CodeDeploy : 다양한 컴퓨팅 서비스에 소프트웨어를 자동으로 배포하는 완전 관리형 배포 서비스
특징)
- 소프트웨어배포를 자동화하여 오류가 발생하기 쉬운 수동 작업을 제거할 수 있음
- AWS Management Console 또는 AWS Command Line Interface를 통해 애플리케이션 배포를 시작하고 배포 상태 추적 가능
4. AWS CodePipeline : 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리스 파이프라인을 자동화하는 데 도움이 되는 완전관리형의 지속적인 전달 서비스
특징)
- 소프트웨어 릴리스 프로세스를 모델링하고, 서버를 설정하거나 프로비저닝할 필요성을 줄일 수 있음
- AWS Management Console 또는 AWS command line interface (CLI)를 사용하여 소프트웨어 릴리스 프로세스 단계를 정의할 수 있음
활용 사례)
- 파이프라인 구조 정의 : 기존 파이프라인 업데이트하고 선언적 JSON 문서로 새 파이프라인 생성을 위한 템플릿 제공
- 이벤트 알림 수신 : 상태 메시지와 이벤트 소스에 대한 링크를 제공하는 Amazon Simple Notification Service(SNS)로 파이프라인에 영향을 미치는 이벤트를 모니터링 할 수 있음
- 엑세스 제어 및 권한 부여 : AWS Identity and Access Management(IAM)를 사용하여 릴리스 워크플로를 변경하고 제어할 수 있는 사람을 관리
- 사용자 지정 시스템 통합 : CodePipeline 오픈 소스 에이전트를 사용자의 서버와 통합하여 사용자 지정 작업을 등록하고 파이프라인에 서버 연결
5. AWS Lambda : 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서비스 -> 사용한 컴퓨팅 시간에 대해서만 비용 지불
작동 방식)
- 서버를 프로비저닝 또는 관리하지 않고도 실제로 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는 이벤트 중심의 서버리스 컴퓨팅 서비스
- 200개가 넘는 AWS 서비스와 서비스형 소프트웨어(SaaS) 애플리케이션에서 Lambda를 트리거할 수 있으면 사용한 만큼만 지불하면 됨
특징)
- 서버 관리 불필요 : 인프라를 프로비저닝하거나 관리하지 않고 코드를 실행 >> zip 파일 또는 컨테이너 이미지로 코드를 작성하고 업로드 하면 됨
- 자동 조정 : 어떤 규모의 이벤트라도 코드 실행 요청에 자동으로 응답
- 종량 요금제 : 밀리초 기준으로 사용하는 컴퓨팅 시간에 대해서만 요금을 지불하여 비용 절감
- 성능 최적화 : 올바른 함수 메모리 크기로 코드 실행 시간 및 성능을 최적화
6. Amazon Simple Notification Service : 애플리케이션 간(A2A) 및 애플리케이션 대 개인(A2P) 통신을 위한 안전관리형 메시징 서비스
작동 방식)
> Amazon Simple Notification Service는 A2A와 A2P의 두 가지 방식으로 알림 전송
- A2A : 분산된 시스템, 마이크로서비스 및 이벤트 중심의 서버리스 애플리케이션 간에 처리량이 많은 푸시 기반의 다대다 메시징을 제공
-> 이러한 애플리케이션에는 Amazon Simple Queue Service(SQS), Amazon Kinesis Data Firehose, AWS Lambda, 기타 HTTPS 엔드포인트가 포함
- A2P : SMS 텍스트, 푸시 알림, 이메일을 통해 고객에게 메시지 전송
사용 사례)
- 애플리케이션을 FIFO 메시징과 통합 : 선입선출(FIFO) 방식으로 메시지를 전달하여 독립 애플리케이션에서 정확성과 일관성을 유지
- 알림 메시지 전달을 안전하게 암호화 : AWS Key Management Service (KMS)로 메시지를 암호화하고, AWS PrivateLink로 트래픽 개인정보 보호를 보장하고, 리소스 정책 및 태그로 엑세스를 제어
- 60개가 넘는 AWS 서비스에서 이벤트 캡처 및 팬아웃
- 240개국 이상의 고객에게 SMS 문자 전송
7. Amazon Simple Storage Service : Amazon S3는 인터넷용 스토리지로, 웹 어디에서나 언제든지 원하는 양의 데이터를 저장하고 검색할 수 있음
8. AWS Systems Manager Parameter Store : Parameter Store는 AWS 인프라에 대한 가시성과 제어기능 제공
지속적인 테스트 도구
1. OWASP Dependency Check : 프로젝트 종속성 내에 포함되어 있는 공개적으로 공개된 취약점을 탐지하려고 시도하는 SCA(소프트웨어 구성 분석) 도구
특징)
- 종속성 검사에는 명령줄 인터페이스, Maven 플러그인, Ant 작업 및 Jenkins 플러그인이 있음
- 핵심 엔진 : 프로젝트 종속성을 검사하고 종속성에 대한 정보를 수집하는 일련의 분석기가 포함되어 있음 이후 증거는 지정된 종속성에 대한 CPE를 식별하는데 사용됨 -> CPE가 식별되면 관련 CVE 항목 목록이 보고서에 나열됨
2. SonarQube(SAST) : 수천 개의 자동화된 정적 코드 분석 규칙을 사용하여 앱의 버그와 취약점을 찾아냄
특징)
- 정적 코드 분석 : 코드의 보안 취약점을 감지하여 애플리케이션 구축 및 테스트 이전에 제거 가능
- secrets detection : 정규 표현식과 의미 분석의 강력한 조합을 사용하여 소스 코드의 비밀을 탐지한다. Shift Left 접근 방식으로 ide에서 코드를 스캔함
3. PHPStan(SAST) : 코드를 실제로 실행하지 않고 코드에서 오류를 찾는데 중점을 둔다. 코드에 대한 테스트를 작성하기 전에도 전체 버그 클래스를 포착함
4. OWASP Zap : 애플리케이션을 개발하고 테스트하는 동안 웹 애플리케이션의 보안 취약성을 자동으로 찾는 데 도움이 됨
>> 즉, 오픈소스 웹 애플리케이션 보안 스캐너이다.
지속적인 로깅 및 모니터링 서비스
1. AWS CloudWatch Logs : EC2 인스턴스, AWS CloudTrail, Amazon Route 53 및 기타 소스의 로그 파일을 모니터링, 저장 및 엑세스할 수 있다.
2. AWS CloudWatch Events : AWS 리소스의 변경사항을 설명하는 시스템 이벤트의 거의 실시간 스트림을 제공
>> 애플리케이션을 모니터링하고, 성능 변화에 대응하고, 리소스 사용을 최적화하며, 운영 상태에 대한 인사이트를 제공하는 서비스
특징)
- 엔드-투-엔드 관찰성을 통한 데이터 시각화 및 분석
- 자동화를 통한 효율적인 운영
- AWS 또는 기타 리소스에 대한 통합 뷰를 빠르게 확보
- 사전 예방적 모니터링 및 행동적 인사이트 확보를 통해 최종 사용자 경험 개선
활용 사례)
- 애플리케이션 성능 모니터링
- 근본 원인 분석 수행
- 사전에 리소스를 최적화
- 웹사이트에 대한 영향력 테스트
감사 및 거버넌스 서비스
1. AWS CloudTrail : AWS 계정에 대한 거버넌스, 규정 준수, 운영 감사 및 위험 감사를 지원
활용 사례)
- 규정 준수 및 감사 : CloudTrail 로그로 SOC, PCI 및 HIPAA와 같은 규제에 대한 준수를 입증하여 벌금 방지
- 보안 : 사용자 활동 및 이벤트를 기록하여 보안 태세를 개선하고 amazon eventbridge를 통해 자동화된 워크플로 규칙 설정 가능
- 운영 : SQL 기반 쿼리를 사용하거나 amazon athena를 사용하거나 CloudTrail Lake의 대시보드로 추세를 시각화하여 운영 질문에 답하고, 디버깅을 용이하게 할 수 있음
2. AWS Identity and Access Management : AWS 서비스 및 리소스에 대한 엑세스를 안전하게 관리할 수 있음.
>> IAM을 사용하면 AWS 사용자 및 그룹을 생성 및 관리할 수 있으며 권한을 사용하여 AWS 리소스에 대한 엑세스를 허용 및 거부할 수 있음
작동 방식)
>> AWS의 서비스 및 리소스에 엑세스할 수 있는 주체를 지정하고 세분화된 권한을 중앙에서 관리하여 엑세스 권한을 중앙에서 관리하며 엑세스 권한을 분석하여 aws 전체의 권한을 세분화할 수 있음
특징)
- 권한 가드레일 및 세분화된 엑세스 권한 설정
- AWS 계정 전반의 워크로드 및 인력 ID 관리
- 임시 보안 인증정보 및 권한 세트를 사용하여 AWS 리소스에 엑세스
- 엑세스 분석 및 IAM 정책 검증을 통해 최소 권한 원칙을 달성
활용 사례)
- 세분화된 권한을 적용하고 속성 기반 엑세스 제어를 통해 조정
- 계정별 엑세스를 관리하거나 AWS 계정 및 애플리케이션의 엑세스 규모 조정
- AWS에서 전사적 예방 가드레일 설정
- 최소 권한을 중심으로 적절한 권한 설정, 확인 및 규모 설정
3. AWS Config : AWS, 온프레미스 및 기타 클라우드에서 리소스의 구성과 관계를 지속적으로 평가, 감사 및 평가함
특징)
- 리소스 구성 변경 관리
- 원하는 상태를 기준으로 구성 평가
- 문제 해결 및 수정 간소화
활용 사례)
- 운영 문제 해결 및 변경 관리 간소화
- 코드형 규정 준수 프레임워크 배포
- 지속적인 보안 모니터링 및 분석 감사
운영 서비스
1. AWS Security Hub : AWS 계정 전체의 보안 경고 및 보안 상태에 대한 포괄적인 보기 제공
>> 보안 모범 사례를 확인하고, 경고를 집계하고, 자동화된 수정을 활성화하는 클라우드 보안 태세 관리(CSPM) 서비스
특징)
- 지속적인 모니터링
- 보안 조사 결과 집계
- 자동화된 대응 시작
- 보안 태세
활용 사례)
- 클라우드 보안 태세 관리 수행
- 보안 오케스트레이션, 자동화 및 대응 워크플로 시작
- 통합을 간소화하여 시간 및 비용 절약
- 보안 조사 결과를 시각화하여 새로운 인사이트 발견
2. AWS CloudFormation : 인프라를 코드로 처리하여 관련 AWS 및 타사 리소스 모음을 모델링하고, 신속하고 일관되게 프로비저닝하고, 수명 주기 전반에 걸쳐 관리할 수 있는 쉬운 방법 제공
3. AWS Systems Manager Parameter Store : 구성 데이터 관리 및 비밀 관리를 위한 안전한 계층적 스토리지 제공
4. AWS Elastic Beanstalk : 웹 애플리케이션을 배포하여 비즈니스에 집중할 수 있도록 함
특징)
- 간단하고 빠른 방법으로 웹 애플리케이션을 업데이트 및 배포할 수 있음
- 인프라 프로비저닝 및 관리 대신 코드 작성에 집중할 수 있음
- 애플케이션을 강화하기 위한 최적의 AWS 리소스를 선택하고 완벽하게 제어 가능
- 트래픽 급증을 처리하기 위해 조정 가능한 설정을 사용하여 비용을 최소화하는 동시에 애플리케이션의 크기 조정 가능
활용 사례)
- 신속하게 웹 애플리케이션 출시
- 애플리케이션을 위한 모바일 API 백엔드 생성
- 중요한 비즈니스 애플리케이션 리플랫포밍
'Cloud > DevSecOps' 카테고리의 다른 글
[DevOps 구축] Github Webhook 설정, DevOps 구축 완성 (0) | 2024.04.30 |
---|---|
[DevOps 구축] Blue/Green 웹 서버 + Nginx 리버스 프록시 설정 (0) | 2024.04.29 |
[DevOps 구축] Jenkins와 Github 연결하기 (0) | 2024.04.29 |
[DevOps 구축] Jenkins 설치 및 초기 설정 (0) | 2024.04.29 |