728x90

참고 자료

📖 소플의 처음 만난 AWS

 

SDK

Software Developement Kit, 애플리케이션을 만들기 위한 소프트웨어 개발 도구의 집합

 

Shared Credentials 설정

내가 사용하는 컴퓨터에 AWS 자격 증명을 설정함으로써, 해당 컴퓨터를 사용하는 사람은 별도의 설정 없이 SDK나 CLI를 사용하여 AWS 서비스를 사용할 수 있음

https://docs.aws.amazon.com/ko_kr/sdkref/latest/guide/file-format.html

 

공유 config 및 credentials 파일을 사용하여 AWS SDKs 및 도구 전역 구성 - AWS SDKs 및 도구

애플리케이션이 여러 애플리케이션을 실행하는 서버에 있는 경우 기본 프로파일 대신 항상 명명된 프로파일을 사용하는 것이 좋습니다. 기본 프로필은 환경의 모든 AWS 애플리케이션에서 자동

docs.aws.amazon.com

 

IAM 사용자 생성

IAM - 사용자 - 사용자 생성 클릭 - 사용자 이름 입력 - 권한 옵션 선택 - 사용자 생성 클릭

보안 자격 증명 탭 - 액세스 키 - 액세스 키 만들기 - 사용 사례 선택 - 액세스 키 만들기 클릭

운영 체제별로 .aws 폴더 생성 후, config 또는 credentials 파일 생성

Linux/Mac: ~/.aws/config 또는 ~/.aws/credentials
Window: %USERPROFILE%/.aws/ config 또는 %USERPROFILE%/.aws/ credentials
[default]
region = ap-northeast-2
aws_access_key_id = YOUR_AWS_ACCESS_KEY
aws_secret_access_key = YOUR_AWS_SECRET_KEY

 

AWS CLI 설치 및 사용

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface

이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이

docs.aws.amazon.com

 

AWS SDK와 CLI 사용 시, 명령을 실행하려는 서비스에 대한 권한이 공유 자격 증명에 설정되어있어야 함

 

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html

 

aws — AWS CLI 2.25.11 Command Reference

Synopsis aws [options] [parameters] Use aws command help for information on a specific command. Use aws help topics to view a list of available help topics. The synopsis for each command shows its parameters and their usage. Optional parameters are shown i

awscli.amazonaws.com

 

728x90

'PlayGround > AWS 연습' 카테고리의 다른 글

[AWS] Lambda  (0) 2025.04.09
[AWS] DynamoDB  (0) 2025.04.08
[AWS] CloudFront  (0) 2025.04.07
[AWS] S3  (1) 2025.04.06
[AWS] CloudWatch  (1) 2025.03.31
728x90

참고 자료

📖 소플의 처음 만난 AWS

 

Serverless

서버에 대해 생각하지 않고, 애플리케이션과 서비스를 구축할 수 있게 함

* 특징

  * 서버 관리 부담 없음

  * 이벤트 기반 실행: HTTP 요청, DB 변경, 파일 업로드 등

  * 비용 효율적: 필요할 때만 실행되며, 실행 시간에 따라 비용이 청구됨 -> 트래픽이 자주 변하는 애플리케이션에 이상적

  * 작은 코드 단위 -> 모듈화가 쉽고 테스트가 편리

  * 다양한 클라우드 서비스와 통합

 

AWS Lambda

* 서버리스 컴퓨팅 서비스

 


Lambda 함수 생성 및 실행

1. 함수 생성 클릭

2. 함수 생성 선택

3. 함수 생성 클릭

4. 테스트 탭 선택

  * 이벤트 이름, 이벤트 JSON 입력 후 저장

5. 테스트 클릭 - 세부 정보 확인

 

Lambda 함수 삭제

1. 작업 - 삭제 클릭

 

728x90

'PlayGround > AWS 연습' 카테고리의 다른 글

[AWS] AWS SDK, CLI  (1) 2025.04.10
[AWS] DynamoDB  (0) 2025.04.08
[AWS] CloudFront  (0) 2025.04.07
[AWS] S3  (1) 2025.04.06
[AWS] CloudWatch  (1) 2025.03.31
728x90

참고 자료

📖 소플의 처음 만난 AWS

 

DynamoDB

AWS에서 제공하는 매우 빠르고 확장 가능한 완전 관리형 클라우드 NoSQL 데이터 베이스

  * NoSQL: RDB의 데이터 일관성 제약 일부 완화, 수평적으로 확장 가능한 성능, 스키마 없는 데이터 모델에 최적화. 몇 가지 방법으로 데이터를 효율적으로 쿼리할 수 있으나, 그 외에는 쿼리 비용이 높고 속도가 느림

* Read 방식

  * Eventually Consistent Read: 기본, 최근 완료된 쓰기 작업의 결과가 반영되지 않을 수도 있음

  * Strongly Consistent Read: 가장 최신 데이터로 응답, 네트워크 지연 또는 중단 발생 시, 사용이 어려움

* 과금 방식

  * 스토리지 요금

  * 읽기/쓰기 용량 유닛 요금

    * 1읽기 용량 유닛 = 초당 최대 2건의 읽기 작업 제공

    * 1쓰기 용량 유닛 = 초당 최대 1건의 쓰기 작업 제공

(프리티어: 매월 25GB 스토리지 및 읽기/쓰기 용량 유닛이 각 25개씩 제공)

 

DynamoDB 기본 구성

Table

  Attribute1 Attribute2
Item1 Value Value
Item2 Value Value

Table: Item의 집합

Item: Attribute의 집합

Attribute: Key(문자열)-Value 방식의 데이터

 

DynamoDB 데이터 타입

* 스칼라 데이터 형식: 하나의 값만 표현

  * Number: 양수, 음수 또는 0

  * String: 문자열

  * Binary: 압축 텍스트

  * Boolean: true/false

  * Null: null

* 문서 형식: 내포 속성이 있는 복잡한 구조를 표현

  * List: 순서가 지정된 값 모음

  * Map: 정렬되지 않은 이름-값 쌍의 모음

* 다중 값 형식: 여러 스칼라 값을 표현

  * String Set, Number Set, Binary Set

 

DynamoDB 파티션

DynamoDB가 데이터를 저장하는 곳

* Primary Key

  * Table 내에서 각 Item을 구분하는 고유 식별자

  * 단순 기본 키: 파티션 키만 사용 / 복합 기본 키: 파티션 키와 정렬 키를 함께 사용

* Partition Key

  * 데이터가 저장되어 있는 파티션을 결정하기 위한 키

  * 내부 해시 함수에 대한 입력으로 파티션 키 값을 사용

  * 출력에 따라 항목을 저장할 파티션이 결정됨

* Sort Key

  * 파티션 키가 동일한 모든 항목들을 정렬하는 키 값

 

보조 인덱스

* Local Secondary Index: 테이블과 파티션 키는 동일하지만 정렬 키는 다른 인덱스

  * 테이블 당 최대 5개

  * 파티션 키와 다른 정렬 키를 사용해서 테이블 내에 아이템을 찾을 수 있음

  * 예: 테이블의 파티션 키: Name, 정렬 키: Subject -> LSI: 파티션 키: Name, 정렬 키: Score

* Global Secondary Index: 파티션 키 및 정렬 키가 테이블의 파티션 키 및 정렬 키와 다를 수 있는 인덱스

  * 테이블 당 최대 20개

  * 다른 값으로 파티션을 나눌 수 있고, 해당하는 파티션 내에서 아이템들을 정렬할 수 있음

  * 예: 테이블의 파티션 키: Name, 정렬 키: Subject -> GSI: 파티션 키: Subject , 정렬 키: Score

 

DynamoDB 데이터 조회 방식

* Query: 기본 키 값을 기반으로 항목을 찾는 방식

* Scan: 테이블 또는 보조 인덱스의 모든 항목을 읽어와서 필터링하는 방식

  * Query 방식은 학번을 곧바로 부르는 방식, Scan은 한 명씩 불러 학번이 일치하는지 확인하는 방식으로 데이터를 조회할 때는 되도록이면 Query를 사용하는 것이 좋음

 


DynamoDB 테이블 생성

1. 테이블 생성 클릭

2. 테이블 이름, 파티션 키, 정렬 키 입력, 테이블 설정 선택

  * 보조 인덱스 생성 시, 설정 사용자 지정 선택

3. 테이블 생성 클릭

 

DynamoDB 데이터 입력

1. 작업 - Create Item

  * 새 속성 추가를 통해 값 입력

2. 항목 생성 클릭

 

DynamoDB 데이터 조회

1. 표 항목 탐색 클릭

2. 쿼리 선택 - 테이블 또는 인덱스 선택 - 파티션 키 입력 후 실행 클릭

3. 스캔 선택 - 필터 클릭 - 속성 이름, 유형, 조건, 값 입력 후 실행 클릭

  * Query 방식은 학번을 곧바로 부르는 방식, Scan은 한 명씩 불러 학번이 일치하는지 확인하는 방식으로 데이터를 조회할 때는 되도록이면 Query를 사용하는 것이 좋음

 

DynamoDB 테이블 삭제

1. 테이블 선택 후 삭제 클릭

 

728x90

'PlayGround > AWS 연습' 카테고리의 다른 글

[AWS] AWS SDK, CLI  (1) 2025.04.10
[AWS] Lambda  (0) 2025.04.09
[AWS] CloudFront  (0) 2025.04.07
[AWS] S3  (1) 2025.04.06
[AWS] CloudWatch  (1) 2025.03.31
728x90

참고 자료

📖 소플의 처음 만난 AWS

 

CloudFront: CDN 서비스

AWS 서비스와 CloudFront 데이터 전송 무료

  * CDN(Content Delivery Network): 콘턴츠 전송 네트워크, 콘텐츠를 전 세계로 빠르게 전송할 수 있게 해주는 것

    * CDN이 전 세계로 컨텐츠를 빠르게 전송할 수 있는 원리 = 캐싱

 

* CloudFront

  * Distribution

    * 각 배포는 고유의 도메인을 가짐

    * Route53을 사용해서 자신의 도메인과 연결 가능

  * Origin

    * 원본 파일을 가져오는 위치(기본: S3, 커스텀: EC2, ELB, 외부 서버 등)

 


S3를 Origin으로 하는 CloudFront에서 파일 가져오기

 

CloudFront 배포 만들기

1. CloudFront - CloudFront 배포 생성 클릭

2. Origin Domain 선택

  * 사용자가 CloudFront를 통해 버킷의 객체를 가져오려고 할 때, Edge Location에 해당 객체가 캐싱이 되고 빠르게 전송될 수 있게 됨

3. 원본 액세스 선택 - 원본 액세스 제어 설정 클릭

4. Create new OAC 클릭

5. 이름 입력 - create 클릭

6. 웹 애플리케이션 방화벽(WAF) 설정(유료)

7. 기본값 루트 객체: CloudFront 배포의 URL로 접속할 경우에 기본적으로 나오게 될 객체

8. 배포 생성 클릭

9. 정책 복사 클릭: CloudFront가 S3 버킷 객체에 접근할 수 있도록 S3 버킷 정책 업데이트

10. S3 - 버킷 - 권한 탭 - 버킷 정책 편집 클릭

  * 정책을 직접 만들고 싶은 경우: Amazon S3 오리진에 대한 액세스 제한

    * 버킷 ARN, CloudFront ARN 값 사용

11. 객체 URL로 들어갈 경우, AccessDenied 확인

12. 배포 - 배포 도메인 이름 복사 - 확인

13. 개발자 도구 - network 탭 - reload page 클릭 후, docs 탭에 CloudFront 주소 확인

Header - x-cache: Miss from cloudfront(캐시를 가져올 경우, Hit / 캐시에 없을 경우, Miss)

 

CloudFront 삭제

1. 배포 클릭 후 비발성화 클릭

2. 삭제(비활성화 클릭 후 삭제가 활성화되기까지 시간이 좀 걸림)

728x90

'PlayGround > AWS 연습' 카테고리의 다른 글

[AWS] Lambda  (0) 2025.04.09
[AWS] DynamoDB  (0) 2025.04.08
[AWS] S3  (1) 2025.04.06
[AWS] CloudWatch  (1) 2025.03.31
[AWS] IAM  (0) 2025.03.24
728x90

참고 자료

📖 소플의 처음 만난 AWS

 

S3(Simple Storage Service)

무제한 파일 저장 스토리지

* URL을 통해 손쉽게 파일 공유

* 정작 웹사이트 호스팅 가능

특징

  * 객체 스토리지 특성 상 일부만 수정이 불가능하므로 최종 파일을 저장하는 용도로 사용

  * 빠른 속도로 Read/Write하는 작업에는 부적합

  * 이미지, 동영상, 문서 등 미디어 파일을 보관하거나 로그 파일을 보관하기에 적합

  * AWS 서비스 데이터 백업 등 데이터 백업에도 적합

구성

  * Bucket: 객체를 담는 최상위 단위

  * Object: Bucket에 담는 데이터 단위(파일)

  * Metadata: Object에 대한 여러 가지 정보를 담고 있는 데이터

  * Policy: Bucket과 Object에 대한 접근을 통제하는 권한 정보

* S3 스토리지 클래스

스토리지를 저장하는 형태

* 종류

  * Standard: 최소 3개의 가용 영역에 데이터 저장, 자주 액세스하는 데이터 전용(내구성, 가용성, 성능)

  * Standard IA(Infrequent Access): 자주 접근하진 않지만 필요할 때 빠르게 액세스해야 하는 데이터에 적합

    최소 3개의 가용 영역에 객체 중복 저장(고가용성, 복원력)

  * One-zone IA: 단일 가용 역역에만 데이터 저장(복원력 X)

  * Glacier: 자주 접근하지 않는 데이터를 저렴한 비용으로 보관

* 객체 라이프 사이클 관리

  1. Standard 클래스 저장

  2. 30일 경과 후, 자주 사용하지 않게 되면 Standard IA 클래스로 변경

  3. Standard IA 클래스에서 30일 경과 후, 데이터 아카이빙 목적으로 Glacier 클래스로 변경

 

Object Storage

데이터를 객체로 관리하는 저장소

객체 구성

  * 아이디

  * 데이터

  * 메타데이터

특징

  * 규모와 유연성이 필요한 애플리케이션 구축 시 적합

  * 분석, 백업, 아카이브 목적으로 사용 가능

  * 데이터 일부 수정 불가 -> 전체 덮어쓰기로 수정

 

File Storage

데이터를 파일로 관리하는 저장소

특징

  * 애플리케이션이 공유 파일에 액세스하거나 파일 시스템이 있어야 하는 경우에 적합

  * 파일 시스템을 통해 데이터를 파일 단위로 저장

  * 파일의 일부분만 수정 가능

  * 예시: NAS, 사용자 홈 디렉터리 등

 

Block Storage

데이터를 블록(저장 공간을 나누는 단위)으로 관리하는 저장소

특징

  * 데이터를 작은 블록 단위로 나누어 저장하며, 각 블록은 고유한 주소 또는 식별자를 가짐

  * 파일 시스템이나 메타 데이터 없이 순수 데이터 블록만 저장

  * 낮은 지연 시간 -> 고성능 애플리케이션에서 사용하기 적합

  * 예시: 데이터베이스 시스템, 가상 머신, 클라우드 스토리지 등

 

비교

Object Storage File Storage
데이터를 객체 단위로 관리 데이터를 파일 단위로 관리
객체 데이터 일부분만 수정 불가능 파일 내용 일부분만 수정 가능
운영체제에서 직접 접근 불가 운영체제에서 직접 접근 가능(볼륨 마운트)
큰 확장에 유연하게 대처 가능 큰 확장에 대처하기 어려움
다수의 사본을 분산시켜 저장 사본 저장하지 않음

* 볼륨 마운트: 외부 저장소(예: 하드 드라이브, SSD, 네트워크 스토리지, 클라우드 스토리지)를 운영체제의 특정 경로(마운트 포인트)에 연결하여 일반적인 파일 시스템처럼 사용할 수 있도록 하는 것(예: Windows: D:\, E:\ 같은 드라이브 문자로 마운트됨)

 


S3 버킷 생성

1. 버킷 이름 입력

  * 버킷 이름은 DNS형식으로 전 세계에서 유일해야 함

2. 객체 소유권 선택

  * ACL 비활성화: 버킷의 모든 객체 소유권을 현재 AWS 계정이 소유

3. 퍼블릭 액세스 차단 설정 선택

4. 버킷 만들기 클릭

 

S3 버킷에 파일 업로드 및 다운로드

1. 업로드 클릭

2. 파일 추가 클릭

3. 업로드 클릭

4. 다운로드 클릭

 

S3 버킷에 폴더 생성

* 폴더 개념: 파일 이름의 Prefix 개념

1. 폴더 만들기 클릭

2. 폴더 이름 입력

3. 폴더 만들기 클릭

4. 파일 - 작업 - 복사 클릭

5. 대상 - S3 찾아보기 - 폴더 클릭 - 대상 선택

6. 복사 클릭 

 

MobaXTerm으로 S3 다루기

  * Cyberduck: FTP, SFTP 등의 다양한 형태로 원격 서버에 접속해서 사용할 수 있는 스토리지 브라우저

1. IAM - 사용자 - 사용자 추가

2. 사용자 이름 입력

3. 권한 옵션 - 직접 정책 연결 - AmazonS3FullAccess 선택

4. 사용자 생성

5. 보안 자격 증명 탭 - 액세스 키 - 액세스 키 만들기 클릭

6. 사용 사례 선택

  * CLI: 키와 시크릿 키를 통해 접속할 때 사용하는 옵션

7. 액세스 키 만들기 클릭

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%ED%88%B4%EB%A1%9C-S3-%EC%A0%91%EC%86%8D%ED%95%B4%EC%84%9C-%EA%B0%84%ED%8E%B8%ED%95%98%EA%B2%8C-%EB%8B%A4%EB%A3%A8%EA%B8%B0-MobaXterm

 

[AWS] 📚 클라이언트 툴로 S3 접속해서 간편하게 다루기 [MobaXterm]

S3 클라이언트 툴 웹 콘솔 브라우저로 S3 서비스를 다루기에는 한국인 정서에는 좀 많이 느린편이라 답답하다. 그래서 보통 aws cli 커맨드로 S3를 다루는데, 그래도 간단한 작업 같은 경우 GUI 환경

inpa.tistory.com

 

connection lost due to error 10054
* 비밀번호 확인

connection failed due to error 75795
* 버킷 접근 권한 확인

 

S3 정적 웹사이트 호스팅

1. 속성 탭 - 정적 웹 사이트 호스팅 - 편집 클릭

2. 활성화 클릭

  * 인덱스 문서 등 입력

3. 변경 사항 저장 클릭

4. 버킷 최상위 경로에 index.html 업로드

 

* 403 Forbidden

  * 버킷 객체에 대한 접근 권한 문제

    * 권한 탭 - 퍼블릭 액세스 차단 - 편집 클릭 - 차단 해제 후 변경 사항 저장 클릭

    * 버킷 정책(버킷과 객체들에 대한 접근 권한 설정, 각 정책은 JSON 형태로 작성) - 편집 - 버킷 ARN 복사 - 정책 생성기 클릭 - Select type of Policy: S3 Bucket Policy - Principal(리소스에 대한 액세스가 허용되거나 거부되는 사용자, 계정, 서비스 또는 기타 Entity를 지정하는 옵션): *(모든 사용자) - Select Actions: GetObject - ARN 입력 후 '/*(버킷 내 모든 객체에 접근할 수 있도록 하기 위함)' 추가 - Add Statement 클릭 - Generate Policy 클릭 - JSON 복사 후 붙여넣기 - 변경 사항 저장 클릭

 

S3 버킷 삭제

* 버킷을 삭제하기 위해서 버킷이 비어있어야 함

1. 버킷 선택

2. 비어 있음 클릭(= 버킷 비우기)

3. 비어 있음 클릭

4. 종료 클릭

5. 삭제 클릭

6. 버킷 삭제 클릭

 

* 버킷 이름은 DNS 형식으로 전 세계에서 유일해야 하며, 삭제하면 곧바로 같은 이름으로 버킷을 만들기 어려울 수 있음

 

728x90

'PlayGround > AWS 연습' 카테고리의 다른 글

[AWS] DynamoDB  (0) 2025.04.08
[AWS] CloudFront  (0) 2025.04.07
[AWS] CloudWatch  (1) 2025.03.31
[AWS] IAM  (0) 2025.03.24
[AWS] Route53  (0) 2025.03.23