개발로 자기계발
Published 2023. 5. 17. 18:31
AWS 클라우드 기초 학습 - 3 Cloud
728x90

IAM

사용자와 그룹을 생성하고, 그들이 AWS 리소스에 액세스 하는 방법을 제어할 수 있다.

 

1) 주요 기능

- 사용자 및 그룹 관리: 개별 사용자를 생성하고 개인 보안 자격 증명을 부여할 수 있다. 또한 사용자를 그룹으로 묶어서 권한을 일괄적으로 관리할 수 있다.
- 액세스 제어: 어떤 사용자가 어떤 AWS 리소스에 액세스 할 수 있는지를 세밀하게 제어할 수 있다. 이는 '정책'이라는 규칙을 통해 관리된다.
- 멀티 팩터 인증(MFA): 멀티 팩터 인증을 지원하여 AWS 계정 및 사용자의 보안을 강화할 수 있다.
- 역할 및 위임: 특정 권한을 가진 '역할'을 생성하고, 이를 다른 AWS 계정이나 AWS 서비스, 심지어는 인증된 사용자에게 위임할 수 있다. 이를 통해 필요에 따라 권한을 임시로 부여하거나 서로 다른 AWS 계정 간에 리소스를 공유할 수 있다.
- 페더레이션(Federated) 인증: 신뢰할 수 있는 외부 시스템(예: Microsoft Active Directory)에서 사용자를 인증하는 연방식 인증을 지원한다.

 

S3

인터넷을 통해 언제 어디서나 데이터를 저장하고 검색할 수 있는 안전하고 내구성이 뛰어난 객체 스토리지(파일, 영상 등등)를 제공하는 서비스이다.

 

1) 주요 기능

- 내구성과 가용성: 데이터를 여러 개의 물리적인 데이터 센터에 복제하여 높은 내구성을 제공한다. S3에 저장된 데이터의 내구성을 99.999999999% (일명 11 9's)로 보장하며, 이는 주어진 연도에 10,000,000개의 객체 중 1개를 잃어버릴 수 있다는 것을 의미한다고 한다.
- 스케일링: 사용자가 필요한 만큼의 스토리지를 사용할 수 있도록 자동으로 스케일링한다. 이는 사용자가 스토리지 용량을 사전에 예측하거나 프로비저닝 할 필요가 없음을 의미한다.
- 보안: 데이터를 전송하고 저장할 때 SSL을 사용하여 데이터를 암호화한다. 또한, 사용자는 IAM를 사용하여 특정 사용자 또는 시스템이 S3 버킷과 객체에 액세스 하는 것을 제어할 수 있다.
- 데이터 관리 기능: 라이프사이클 정책, 버전 관리, 이벤트 알림 등의 기능을 제공하여 사용자가 데이터를 쉽게 관리할 수 있다.

 

CI / CD(Continuous Integration / Continuous Delivery or Continuous Deployment)

1. Continuous Integration (CI): 지속적 통합은 개발자가 작업하는 코드를 주기적으로 중앙 저장소에 통합하는 프로세스이다. 이러한 통합은 하루에 여러 번 이루어질 수 있으며, 이는 문제를 빠르게 감지하고 해결하여, 소프트웨어 품질을 향상하는 데 도움이 된다.

보통 자동화된 빌드 및 테스트 단계가 포함되어, 새로운 코드 변경사항이 기존 코드베이스나 소프트웨어에 문제를 일으키지 않는지 확인한다.
2. Continuous Delivery (CD): 지속적 전달은 소프트웨어를 언제든지 안정적으로 배포할 수 있도록 만드는 것을 목표로 한다. 이는 모든 변경사항(새로운 기능, 버그 수정, 설정 변경 등)이 자동화된 파이프라인을 통해 검증되고 프로덕션 환경으로 배포 준비가 되도록 한다. 다만, 실제 배포는 수동으로 결정하고 수행하는 것이 일반적이다.
3. Continuous Deployment (CD): 이 역시 "CD"로 불리지만, 지속적 배포는 지속적 전달의 확장판으로, 소프트웨어 변경사항이 자동적으로 프로덕션 환경까지 배포되는 것을 의미한다. 이렇게 함으로써, 코드의 변경이 사용자에게 더 빠르게 제공될 수 있다.

 

CodeCommit

소스 코드 저장 서비스로 Git을 기반으로 하며, 프라이빗 Git 저장소를 호스팅 하는 데 사용된다.

 

CodeBuild

소스 코드를 컴파일하고, 테스트를 실행하고, 소프트웨어 패키지를 생성하는 역할을 하며, 이 모든 과정은 완전히 자동화된다.

 

CodeDeploy

새로운 애플리케이션 버전을 자동으로 배포하고, 배포 프로세스를 관리하여 개발자가 수동으로 각 인스턴스에 액세스 하고 코드 업데이트를 수행하는 번거로움을 줄여준다.

 

CodePipeline

지속적인 통합(CI) 및 지속적인 배포(CD) 서비스로 소프트웨어 릴리스 프로세스를 자동화하고, 빠르고 안정적으로 새로운 기능을 출시할 수 있다.

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)