Developer Tools

2025. 10. 22. 19:57CERTIFICATES/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