2025/10/17 AWS - 1

김기훈·2025년 10월 17일

TIL

목록 보기
38/191

오늘 학습한 내용

  • FastAPI
      1. 의존성
      1. 의존성으로서의 클래스
      1. 종속성/캐시
      1. 경로 작동 데코레이터에서의 의존성
      1. 전역 의존성
  • 라이브 세션
    • AWS - 1
      • IAM
      • S3

어려운 내용

  • AWS

오늘 발생한 문제(없으면 최고)


라이브 세션

클라우드(Cloud) 서비스

  • 인터넷을 통해 컴퓨팅 자원을 손쉽게 사요할 수 있도록 제공하는 서비스
    • 컴퓨팅 자원(Computing Resource): 컴퓨터로 할 수 있는 기능( cloud: 파일저장 )
  • 일반인으로서 클라우드 서비스 사용
    • 클라우드에 사진 업로드/다운받기/공유하기
  • 개발자로서 클라우드 서비스 사용
    • 클라우드를 통해 컴퓨팅자원을 임대 받아서, 우리가 만든 서버를 사용자에게 제공(배포)하기
      • 컴퓨팅자원: 원격 서버 / 데이터베이스 / 파일 스토리지 / AI 모델 서빙

클라우드 서비스 제공자

  • AWS(= Amazon Web Services)
  • Azure(= MicroSoft)
  • GGP(= Google Cloud Platform)

AWS(= Amazon Web Services)

  • 200+ 가지 서비스 존재
    • 20~40 메인 서비스
  • 리전(Region)
    • 리전별로 서비스를 독립적으로 관리됨
    • 실제로 AWS의 데이터 센터가 여러 위치에 있음
      • 서버를 옮겼을때 동일한 기능을 제공하지 않을 수 있음
        • 바꾸려면 바꿀수는 있지만 많이 복잡하다. 새롭게 만들어야 할 수도
    • 대형 서비스는 다중 배포해서 다양한 리전을 가짐
    • AWS pricing: 사용한 만큼 비용 발생
      • S3: 객체를 저장하는 비율 만큼 지불 등등 많음

IAM(Identity & Access Management)

  • 계정&접근 권한 관리 서비스
    • 리전의 영향을 받지 않음 / 루트 사용자에 대해 MFA 추가: 2차인증
    • 권한: 어떤걸 할 수 있고, 어떤걸 할 수 없는지
      • AdministratorAccess
        • 모든 권한을 열어주는 access
          • Effect: 기능
          • Action: 구체적인 행동(ex. s3:GetObeject)
          • Resource: 대상(구체적으로 어떤 자원에 대해서 허용/거부)
            • (ex. arn:aws:s3::example-bucket)
      • Least Privilege
        • 최소 권한 규칙: 가능한 적은 권한으 주어라
      1. User(사용자): AWS 서비스 및 리소스를 접근할 수 있는 사람(개체)
      1. Group(사용자 그룹): 사용자를 일괄적으로 관리하는 단위
      1. Policy(정책): 사용자의 권한을 구체화한 JSON문서
      1. Role(역할): 사용자가 아닌 AWS 서비스에 대해 권한 부여
      • 사용자 대신 서비스에게 어떠한 권한을 부여하기 위한 무언가(비유: 모자)

  • Role를 사용하면 한번에 권한을 부여하고 빼고가 가능한데 서버 자체에 권한을 부여하면 하나씩 빼고 바꾸고 해야해서 번거롭다.

S3(Simple Storage Service)

  • 간편 저장 서비스: 클라우드 어플을 만들기 위해서 사용 가능
    • 파일 저장하는 서비스(이미지, 비디오, 오디오...)
      • 구글 클라우드 , iCloud, MyBox
  • DB랑 다른점은 무었이냐?
    • 정형 데이터: 형태가 고정된 데이터 -> 행과 열로 구분되는 데이터
    • 비정형 데이터: 형태가 고정되지 않은 데이터
      • .jpeg / .png / .pdf -> 파일 포맷이 있는데 왜 비정형 데이터냐?
      • 이런 파일들은 = 바이너리 데이터
    • 파일 데이터(바이너리 데이터)는 관계형 데이터베이스에 저장하는 것이 비효율적
  • 사용
    • 1.버킷만들기
      • 객체 소유권(ACL): 객체에 대한 액세스를 지정할 수 있는 사용자를 결정 (비활성화 권장)
      • 퍼블릭 액세스(Public Access): 인터넷을 통한 접근
        • 안전을 원한다면 차단하는게 좋음
        • 퍼블릭 엑세스를 차단했다면 콘솔 상에서 dev_user는 버킷에 접근 가능
          • 관리자로 권한(IAM Policy)을 다 열어놨기 때문에 접근 가능
          • dev_user(AdministratorAccess)
          • 권한을 부여 받은 사람만 가능하다 -> Public Access 차단
      • 버전관리 (유료)
        • 버전 관리를 사용하여 Amazon S3 버킷에 저장된 모든 객체의 각 버전을 보존,
          • 검색 및 복원 가능, 의도치 않은 사용자 작업과 애플리케이션 장애를 모두 복구
      • LifeCycle
        • 시간을 지정해서 지우기 가능(ex. 10일뒤에 지우기)
  • AWS서비스는 IAM Policy를 통해서 권한 관리를 한다.
    • 권한이 없으면 (기본적으로) 차단
profile
안녕하세요.

0개의 댓글