DevCourse TIL Day3 Week7

김태준·2023년 5월 17일
0

Data Enginnering DevCourse

목록 보기
28/93
post-thumbnail

✅ IAM

AWS 리소스에 대해 역할과 권한 관리(권한 부여된 대상 제어)를 하는 서비스

  • 자격증명은 AWS 계정 루트 사용자라 하며, 계정 생성 시 사용한 이메일 주소, 암호로 로그인해 액세스함
  • 일상적인 작업에 루트 사용자 사용하지 않기.
  • 리소스에 따라 여러 사용자에게 권한 세부화, AWS 계정 공유
  • EC2에서 실행되는 application을 위한 보안 AWS 리소스 액세스
  • 멀티 팩터 인증 (MFA) - 계정 사용자가 암호 및 디바이스 코드 제공해야함.
  • ID 페더레이션(암호 있는 사용자에게 AWS계정에 임시 액세스 권한 부여), 보장을 위한 증명 정보
  • 많은 AWS 서비스와 통합, 최종 일관성, 무료 사용

✅ S3

객체 스토리지 서비스 (파일, 객체 저장하여 활용하는 스토리지)

  • AWS S3를 사용해 데이터레이크, 웹 사이트, 모바일 application, 백업 및 복원, 아카이브, enterprise application, IoT 디바이스 등등 다양한 사례의 원하는 양의 데이터를 저장하고 보호할 수 있다.
  • 특정 비즈니스, 조직 및 규정에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능 제공
    주요 기능은 다음과 같다.
  • 스토리지 별 데이터 저장 가능 (스토리지 클래스), 이를 관리
  • 액세스 관리(private, public), 데이터 처리, 스토리지 로깅 및 모니터링
  • 분석 및 인사이트, 강력한 일관성
  • 정적 웹사이트 호스팅 가능 (클라이언트 측 스크립트 포함)
    -> 이와 반대로 동적 웹사이트는 PHP, JSP, ASP.NET 등 서버 측 스크립트를 포함한 서버 측 처리에 의존

크게 3가지에 대해 알고 있으면 좋다.
버킷 : S3에 저장된 객체에 대한 컨테이너, 모든 객체는 어떤 버킷에 포함, 윈도우의 폴더로 이해하면 됨.
객체 : S3에 저장된 기본 개체, 객체 데이터와 메타 데이터로 구성
키 : 버킷 내 객체 고유 식별자로 한 객체는 하나의 키를 반드시 가짐. S3는 버킷 + 키 + 버전과 객체 자체 사이의 기본 데이터 맵으로 간주할 수 있음

✅ CI/CD(CodeCommit, CodeBuild, CodeDeploy, CodePipeline)

개발한 것을 자동적으로 build하고 배포하는 과정을 일컫는 말로, AWS에서 서비스 제공
CI (Continuos Integration) : 모든 개발자가 공유 리포지토리에 개발한 코드 커밋하고 병합
CD (Continuos Delivery) : 개발팀이 짧은 주기로 SW를 개발하고 언제든지 OS에 안정적으로 배포

AWS 내 CI/CD에 대해 알아보면 다음과 같다.

AWS codecommit : 깃과 같은 역할 (AWS - Git 연동도 가능!)
AWS CodePipeline : 리포지토리를 CI, CD, build(AWS CodeBuild) 등 묶어서 진행
AWS CodeDeploy : 배포 시 사용

🎈 CodeCommit

클라우드에서 자산(문서, 소스코드 등)을 비공개로 저장하고 관리하는 데 사용하는 서비스
깃과 flow, 명령어가 동일 (repo 생성 후 로컬에서 clone, commit, push 등으로 데이터 저장)
깃과 달리 클라우드 단위에서 데이터 저장

🎈 CodeBuild

  • 클라우드 상 완전관리형 빌드 서비스
  • 소스 코드를 컴파일하고 단위 테스트를 실행하며 배포 준비 완료된 artifact(빌드 진행 이후 deployment에서 알아야 하는 파라미터로 생각하기) 생성
  • 자체 빌드서버를 프로비저닝, 관리 및 확장 할 필요 X
  • build, test 과정 동시 진행

🎈 CodeDeploy

AWS 서비스로 application 배포를 자동화하는 서비스로 다음을 포함해 무제한으로 배포 가능

  • 코드, serverless AWS lambda 함수, 웹 및 구성파일, Executables, 패키지, 스크립트, 멀티미디어 파일
    -> CodeDeploy는 서버에서 실행되고 S3버킷, Git 리포, Bitbucket 리포에 저장된 application 콘텐츠 배포 가능하며 이를 위해 코드 변경할 필요 X

🎈 CodePipeline

CI/CD 전 과정 자동화 가능 (Source, build, Test, staging, production)

  • SW 릴리스 프로세스 모델링하고 서버 설정이나 프로비저닝할 필요성 줄일 수 있음.
  • AWS 콘솔, CLI 사용해 프로세스 단계 정의 가능
  • 피드백 반복, 코드 변경 테스트해 버그 포착도 가능
    -> 기존 학습한 과정들 통합

✅ SpringBoot 구성

  • private, public 서브넷 영역으로 서비스를 하게 될텐데, 실제 private 영역에 인스턴스를 띄우고, DBMS도 private에 띄운다. 이후 public을 통해 baston host로 접속을 허가하여 인터넷 게이트웨이로 외부와 통신할 수 있도록 한다.
  • domain에는 SSL 인증서를 구성하고, CloudFront를 구성해 S3 버킷에 정적 웹 호스팅 기능으로 간단한 리액트 소스를 올려 배포할 수 있도록 구성한다.
  • 각 PRIVATE에 존재하는 인스턴스는 깃을 통해 CodePipeline을 통해 업로드 되도록 한다.
profile
To be a DataScientist

0개의 댓글