Developer Tools
2025. 10. 22. 19:57ㆍCERTIFICATES/AWS DEA-C01
사용자가 AWS에 접근하는 방법
- AWS에 접근하는 세가지 방법
- AWS Management Console: 비밀번호와 MFA로 보호됨
- AWS Command Line Interface(CLI): 액세스 키로 보호됨
- AWS Software Developer Kit(SDK, 코드용): 액세스 키로 보호됨
- 액세스 키는 AWS 콘솔을 통해 생성됨
- 사용자는 자신의 액세스 키를 직접 관리함
- 액세스 키는 비밀번호와 동일하게 비밀로 유지해야 하며 공유 금지
- Access Key ID는 사용자 이름과 유사함
- Secret Access Key는 비밀번호와 유사함
예시(가짜) 액세스 키

- 액세스 키 ID: AKIASK4E37PV4983d6C
- 시크릿 액세스 키: AZPN3zojWozWCndIjhB0Unh8239a1bzbzO5fqqkZq
- 주의: 액세스 키 공유 금지
AWS CLI란 무엇인가
- 명령줄 셸에서 명령어를 사용해 AWS 서비스와 상호작용할 수 있는 도구
- AWS 서비스의 공개 API에 직접 접근 가능
- 리소스 관리를 위한 스크립트를 개발할 수 있음
- 오픈소스 도구임 (https://github.com/aws/aws-cli)
- AWS Management Console을 사용하는 대안으로 활용 가능

AWS SDK란 무엇인가
- AWS 소프트웨어 개발 키트(AWS Software Development Kit, AWS SDK)
- 프로그래밍 언어별 API(라이브러리 집합) 제공
- AWS 서비스를 코드로 접근하고 관리할 수 있게 함
- 애플리케이션 내부에 포함되어 동작함
- 지원 대상:
- SDKs: JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++
- 모바일 SDKs: Android, iOS 등
- IoT 디바이스 SDKs: Embedded C, Arduino 등
- 예시: AWS CLI는 AWS SDK for Python 기반으로 구축됨
AWS Cloud Development Kit (CDK)
- 익숙한 프로그래밍 언어를 사용해 클라우드 인프라 정의 가능
- JavaScript/TypeScript, Python, Java, .NET 지원
- Construct라 불리는 고수준 컴포넌트 포함
- 작성된 코드는 CloudFormation 템플릿(JSON/YAML)으로 컴파일됨
- 인프라와 애플리케이션 런타임 코드를 함께 배포할 수 있음
- Lambda 함수에 적합
- ECS/EKS의 Docker 컨테이너 배포에도 적합
CDK 다이어그램

CDK vs SAM
- SAM
- 서버리스 환경에 특화됨
- 템플릿을 JSON 또는 YAML로 선언적으로 작성
- Lambda를 빠르게 시작하기에 적합
- CloudFormation 기반으로 동작
- CDK
- 모든 AWS 서비스 지원
- JavaScript/TypeScript, Python, Java, .NET 등의 프로그래밍 언어로 인프라 작성
- CloudFormation 기반으로 동작
CDK + SAM
- SAM CLI를 사용해 로컬 환경에서 CDK 애플리케이션 테스트 가능
- 테스트 전
cdk synth명령을 먼저 실행해야 함

CDK 실습

AWS CodeDeploy
- 애플리케이션을 자동으로 배포하기 위한 서비스
- EC2 인스턴스에서 동작함
- 온프레미스 서버에서도 동작함
- 하이브리드 서비스임
- 서버나 인스턴스는 사전에 프로비저닝되고 CodeDeploy 에이전트가 설치되어 있어야 함

AWS CodeCommit
- 애플리케이션 코드를 서버에 배포하기 전에 저장할 위치가 필요함
- 개발자는 일반적으로 Git 기술을 사용해 코드를 저장소에 보관함
- 대표적인 공개 서비스는 GitHub이며, AWS의 경쟁 서비스가 CodeCommit임
- CodeCommit은 Git 기반 저장소를 호스팅하는 소스 제어 서비스임
- 팀 간 코드 협업을 쉽게 수행할 수 있음
- 코드 변경 사항이 자동으로 버전 관리됨
- 주요 장점:
- 완전관리형 서비스
- 확장성과 고가용성 제공
- 프라이빗, 보안성 높고 AWS와 통합되어 있음
CodeCommit – 중요 공지 – 서비스 중단
- 2024년 7월 25일, AWS가 CodeCommit 서비스를 갑작스럽게 종료함
- 신규 사용자는 더 이상 서비스를 이용할 수 없음
- AWS는 외부 Git 솔루션으로의 마이그레이션을 권장함
- 본 강의 기준:
- CodeCommit이 시험에 여전히 등장할 수 있음 (현재 기준)
- CodeCommit이 언급될 때마다 GitHub 연동이 있다고 가정하면 됨
AWS CodeBuild
- 클라우드에서 코드 빌드를 수행하는 서비스
- 소스 코드를 컴파일하고 테스트를 실행하며, 배포 가능한 패키지를 생성함 (예: CodeDeploy로 배포 가능)
- 주요 장점:
- 완전관리형, 서버리스 서비스
- 지속적으로 확장 가능하고 고가용성 제공
- 보안성 높음
- 사용한 빌드 시간만큼만 과금되는 종량제 요금

AWS CodePipeline
- 코드를 자동으로 프로덕션까지 배포하기 위한 여러 단계를 오케스트레이션함
- 단계 구성: Code → Build → Test → Provision → Deploy
- CI/CD(Continuous Integration & Continuous Delivery)의 기반 서비스임
- 주요 장점:
- 완전관리형 서비스
- CodeCommit, CodeBuild, CodeDeploy, Elastic Beanstalk, CloudFormation, GitHub, 서드파티 서비스 및 커스텀 플러그인과 호환
- 빠른 배포 및 신속한 업데이트 가능

'CERTIFICATES > AWS DEA-C01' 카테고리의 다른 글
| Everything Else (0) | 2025.10.22 |
|---|---|
| Machine Learning (0) | 2025.10.22 |
| Management and Governance (0) | 2025.10.22 |
| Networking and Content Delivery (0) | 2025.10.21 |
| Security, Identity and Compliance (0) | 2025.10.21 |