1. IAM

  • AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스
  • 역할(인증, 로그인)과 권한 관리!
  • AWS 계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 ID로 시작
  • 이 자격 증명은 AWS 계정 루트 사용자라고 하며, 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하여 액세스
  • 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장함!


특징

  • AWS 계정에 대한 공유 액세스 제공
    • 액세스 키 없이도 AWS 리소스 관리 권한을 다른 사람에게 제공할 수 있음
  • 세분화된 권한
    • 리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있음
  • EC2에서 실행되는 애플리케이션을 위한 보안 AWS 리소스 액세스
  • 멀티 팩터 인증 (MFA)
    • 보안 강화를 위해 계정과 개별 사용자에게 2-팩터 인증을 추가할 수 있음
    • MFA: 계정 소유자나 사용자가 계정 작업을 위해 암호, 액세스 키 뿐만 아니라 특별히 제공된 디바이스 코드를 입력해야 함
  • ID 페더레이션
    • 기업의 다른 곳에 이미 암호가 있는 사용자에게 AWS 계정에 대해 임시 액세스할 수 있는 권한 부여
  • 보장을 위한 자격 증명 정보
    • IAM 자격 증명을 기반으로 하여 제공
  • PCI DSS 준수
    • 신용카드, 데이터 처리, 전송 등에 대한 국제 표준 준수
  • 많은 AWS 서비스와의 통합
  • 최종 일관성
  • 무료 사용

IAM 정책

  • 정책: 어떤 리소스에 대해 접근할 수 있고, 허가하는지

스크린샷 2023-11-27 오후 7 27 50

스크린샷 2023-11-27 오후 7 29 21

사용자 생성

스크린샷 2023-11-27 오후 8 11 30

스크린샷 2023-11-27 오후 8 12 59

체크: AWS CLI로 리소스 접근 허용

스크린샷 2023-11-27 오후 8 15 01

스크린샷 2023-11-27 오후 8 15 17

액세스키 만들기에서 CLI 권한 추가 가능

스크린샷 2023-11-27 오후 8 15 40

액세스 키는 창을 나가기 전에 복사해 두어야 함

정책 생성

스크린샷 2023-11-27 오후 8 16 04

스크린샷 2023-11-27 오후 8 17 24

스크린샷 2023-11-27 오후 8 18 13 생성한 정책은 사용자 또는 그룹에서 가져가서 쓸 수 있음

2. S3

  • 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
  • S3를 사용하여 데이터 레이크, 웹사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호할 수 있음
  • 특정 비즈니스, 조직 및 규정 준수 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능 제공

기능

  • 스토리지 클래스
    • 스토리지 별로 데이터를 넣을 수 있음
  • 스토리지 관리
    • 세부 관리 (객체 태그 등 이용)
  • 액세스 관리
    • public / private
  • 데이터 처리
    • CRUD 제공
  • 스토리지 로깅 및 모니터링
  • 분석 및 인사이트
  • 강력한 일관성

S3 정적 웹 사이트 호스팅

  • 별도의 서버를 띄울 필요 없이 정적 웹사이트를 사용할 수 있음
  • 정적 웹사이트에서 개별 웹 페이지는 정적 콘텐츠를 포함함
  • 클라이언트 측 스크립트를 포함할 수 있음
  • HTML, JavaScript, React, Vue 등
  • 대조적으로, 동적 웹사이트는 PHP, JSP 또는 ASP.NET 등 서버 측 스크립트를 포함한 서버 측 처리에 의존

S3 구성

  • 버킷
    • 저장된 객체에 대한 컨테이너
    • 모든 객체는 어떤 버킷에 포함되어 있음
    • 윈도우의 폴더라고 생각하면 됨
  • 객체
    • S3에 저장되는 기본 개체
    • 객체 데이터와 메타데이터로 구성
    • 버킷 내 객체의 고유한 식별자
    • 버킷 내 모든 객체는 정확히 하나의 키를 가짐
    • 버킷 + 키 + 버전ID 조합이 객체를 고유하게 식별
      • S3는 버킷 + 키 + 버전과 객체 자체의 기본 데이터의 map으로 간주할 수 있음!

버킷 생성

스크린샷 2023-11-27 오후 9 02 37 버킷 명은 유일해야 함!

스크린샷 2023-11-27 오후 9 03 16 파일 업로드 가능

스크린샷 2023-11-27 오후 9 07 00

정적 웹 사이트 호스팅

버킷에서 아래로 내리면 정적 웹 사이트 호스팅 섹션이 있음 스크린샷 2023-11-27 오후 9 07 43

스크린샷 2023-11-27 오후 9 08 10 임의로 index.html 파일을 넣었음
react 등 정적 웹 사이트 파일을 넣을 수 있음

스크린샷 2023-11-27 오후 9 08 24 url 생성

스크린샷 2023-11-27 오후 9 08 42

처음에는 접속이 막혀잇음
권한 탭에서 정책 열어줘야 함

스크린샷 2023-11-27 오후 9 09 21 차단 풀기

스크린샷 2023-11-27 오후 9 09 48

정책 생성기 클릭

스크린샷 2023-11-27 오후 9 10 59 원하는 대로 권한 부여

스크린샷 2023-11-27 오후 9 11 14 생성된 JSON 정책을 복사하여 붙여넣으면 됨

스크린샷 2023-11-27 오후 9 12 17

스크린샷 2023-11-27 오후 9 12 34

입력한 index.html 파일이 보임!

3. CI/CD

  • CI: Continuous Integration
    • 모든 개발자가 개발한 코드를 공유 리포지토리에 커밋하고 병합하는 것
  • CD: Continuous Delivery (Deploy)
    • 개발팀이 짧은 주기로 소프트웨어를 개발하고, 언제든지 운영 환경으로 안정적으로 배포하는 것

스크린샷 2023-11-27 오후 9 19 51

스크린샷 2023-11-27 오후 9 20 27

CodeCommit

  • 깃허브와 같은 형상관리 서비스
  • 클라우드에서 자산(문서, 소스 코드, 바이너리 파일 등)을 비공개로 저장하여 관리하는 데 사용할 수 있도록 AWS 서비스에서 호스팅되는 버전 관리 서비스

스크린샷 2023-11-27 오후 9 23 53


  • 특징
    • 높은 서비스 가용성과 내구성 제공
    • HW 프로비저닝, SW 설치, 구성 및 업데이트 할 필요가 없음
    • 코드를 안전하게 저장할 수 있음
    • 코드 공동 작업 가능
    • 버전 관리 프로젝트 쉽게 확장 가능
    • 언제든지 모든 것을 보관할 수 있음
    • 다른 AWS 서비스, 서드파티 서비스와도 호환
    • git 기반의 리포지토리에서 CodeCommit으로 마이그레이션 가능
    • git에 대한 도구를 모두 사용할 수 있음


리포지토리 생성

스크린샷 2023-11-27 오후 9 36 57

스크린샷 2023-11-27 오후 9 37 19

스크린샷 2023-11-27 오후 9 37 45 github와 똑같이 https를 복제하여 clone할 수 있음

CodeBuild

  • 클라우드 상의 완전관리형 빌드 서비스
  • 소스 코드를 컴파일하고 단위 테스트를 실행하여 배포 준비가 완료된 아티팩트 생성
  • 자체 빌드 서버를 프로비저닝, 관리 및 확장할 필요 없음
  • Apache Maven, Gradle과 같은 널리 사용되는 프로그래밍 언어 및 빌드 도구에 맞게 사전 패키지된 빌드 환경 제공
  • 빌드 환경을 사용자 지정하여 사용자 고유의 빌드 도구 사용
  • 최대 빌드 요청 수에 맞게 자동으로 확장

스크린샷 2023-11-27 오후 9 41 22


  • 작동 방식

스크린샷 2023-11-27 오후 9 41 57


빌드 프로젝트 생성

스크린샷 2023-11-27 오후 9 42 56

스크린샷 2023-11-27 오후 9 43 33
소스 공급자 선택 가능

스크린샷 2023-11-27 오후 9 43 55

github 선택 시 연동 필요

스크린샷 2023-11-27 오후 9 44 37

흔히 develop 브랜치를 개발서버로, master 브랜치를 운영 서버로 사용
develop 브랜치 생성 및 연동 -> develop에 merge되는 순간 자동으로 빌드 시작

스크린샷 2023-11-27 오후 9 46 46

스크린샷 2023-11-27 오후 9 47 14 빌드 스크립트 생성

ex) 빌드 명령 삽입 -> gradle 명령어 입력 스크린샷 2023-11-27 오후 9 49 05

아티팩트: 빌드가 진행된 이후에 deployment에서 알아야 할 parameter, argument 등

스크린샷 2023-11-27 오후 9 51 10

CodeDeploy

  • EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스

  • 다음을 포함하여 다양한 애플리케이션 콘텐츠를 거의 무제한으로 배포 가능
    • 코드
    • 서버리스 AWS Lambda 함수
    • 웹 및 구성 파일
    • Executables
    • 패키지
    • 스크립트
    • 멀티미디어 파일
  • CodeDeploy는 서버에서 실행되고 Amazon S3 버킷, Github 리포지토리 또는 Bitbucket 리포지토리에 저장되는 애플리케이션 콘텐츠 배포 가능
  • 서버리스 Lambda 함수도 배포 가능
  • CodeDeploy를 사용하기 위해 기존 코드를 변경할 필요 없음


애플리케이션 생성

스크린샷 2023-11-27 오후 9 55 13

스크린샷 2023-11-27 오후 9 55 36


애플리케이션 - 배포 그룹 생성

스크린샷 2023-11-27 오후 9 56 04

스크린샷 2023-11-27 오후 9 56 12

스크린샷 2023-11-27 오후 10 03 19

code deploy역할 생성 후 적용

스크린샷 2023-11-27 오후 9 59 23 태그 추가

스크린샷 2023-11-27 오후 10 03 56

CodePipeline

  • CodeCommit, CodeBuild, CodeDeploy를 묶은 서비스
  • 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리스 파이프라인을 자동화하는 데 도움이 되는 완전관리형 배포 서비스
  • CI, CD 전 과정 자동화

스크린샷 2023-11-27 오후 10 29 12


  • 특징
    • 소프트웨어 릴리스 프로세스 모델링
    • 서버를 설정하거나 프로비저닝 할 필요성을 줄일 수 있음
    • AWS Management Console 또는 AWS CLI를 사용하여 소프트웨어 릴리스 프로세스 단계 정의할 수 있음
    • 피드백을 반복하고 각 코드 변경을 테스트하여 버그를 포착하는 새로운 기능을 신속하게 릴리스할 수 있음
    • 릴리스 프로세스의 모든 단계에서 자체 플러그 또는 사전 구축된 플러그인을 사용하여 필요에 맞춰 조정할 수 있음
  • 서버가 2개 있다고 하면 (개발용/운영용) 파이프라인도 2개가 생성되어야 함


파이프라인 생성

스크린샷 2023-11-27 오후 10 31 26

스크린샷 2023-11-27 오후 10 32 42

스크린샷 2023-11-27 오후 10 32 56 소스 공급자 선택

스크린샷 2023-11-27 오후 10 34 03

스크린샷 2023-11-27 오후 10 35 43 빌드 공급자 선택 - jenkins를 많이 사용하긴 함!

스크린샷 2023-11-27 오후 10 36 14 배포 공급자 선택 - beanstalk 바로 배포도 가능!


스크린샷 2023-12-08 오후 10 45 39

스크린샷 2023-12-08 오후 10 45 50

웹 완성이 안된거라 배포가 안되는거겠지,,?

4. AWS CLI

  • 쉽게 파일 업로드
  • 쉘을 명령어로 자동화시킬 수도 있음

설치: 터미널에서

pip3 install awscli

aws --version
# aws-cli/1.31.2 Python/3.11.4 Darwin/23.0.0 botocore/1.33.2

configuration

  • IAM 에서 key를 받아야 함
    • 사용자 생성 스크린샷 2023-11-29 오후 8 40 27
    • 액세스키 만들기 스크린샷 2023-11-29 오후 8 40 38 스크린샷 2023-11-29 오후 8 40 50 스크린샷 2023-11-29 오후 8 41 18
    • aws configure 스크린샷 2023-11-29 오후 8 42 26 스크린샷 2023-11-29 오후 8 42 40

s3 목록 확인 ls

스크린샷 2023-11-29 오후 8 45 53

  • 오류 발생 시 접근 권한 추가 스크린샷 2023-11-29 오후 8 44 56

버킷 생성

스크린샷 2023-11-29 오후 8 49 09

파일 업로드

cd Documents/citron
aws s3 sync . s3://citron-profiles-test

스크린샷 2023-11-29 오후 8 51 23

파일 삭제

aws s3 rm s3://citron-profiles-test --recursive