반응형
리뷰 (Review)
더보기
S3 (Simple Storage Service)
- 객체 단위 저장 스토리지
- EC2와는 별도로 사용되는 serverless 형식의 서비스
- 서비스 자체는 글로벌 서비스지만 생성은 별도의 리전에 생성
- 무제한으로 저장 공간을 제공하고, 한 객체의 최대 크기는 5TB
- S3에 객체를 저장하기 위해서는 버킷(bucket)을 먼저 생성해야 한다.
스토리지 서비스 - S3
S3 (Simple Storage Service)
- 버킷에 저장되는 단위는 객체
- 객체는 S3의 버킷에 저장되는 하나의 데이터 의미
- 키, 데이터, 메타 데이터로 구성
- 객체 하나의 크기는 1byte ~ 5TB
- S3 스토리지 클래스에 따라 저장 비용과 검색 속도의 차이가 발생
- S3는 별도의 File System에 의하여 객체를 관리하지 않는다.
- 버킷에 별도의 폴더를 생성할 수 있으나 일반적으로 말하는 디렉토리와는 다른 의미이다.
- 버킷에 저장된 객체에 접근하기 위해서는 해당 객체의 객체 URL을 통해 접근한다.
- 객체 URL 형식 - 버킷명.S3.리전.amazonawer/[폴더/...]/객체명
버킷에 데이터 업로드
- 필요시 폴더 생성하여 보관
더보기
- S3 메뉴 → 버킷 → <사용자 버킷> → [폴더] → 업로드
- 대상 세부 정보 설정
- 권한 설정
- 속성 - S3 스토리지 클래스 결정
- 서버 측 암호화 설정
- 추가 체크섬 설정
- 태그 부여
- 메타 데이터 - 데이터에 대한 설명 정보, key:value 형식으로 작성
- 유형 - 시스템 정의, 사용자 정의 중 선택
- key : value
S3 기능
- 객체 저장
- 멀티 파트 업로드
- 버전 관리
- 수명 주기 관리
- 정적 웹 서비스(사이트) 호스팅
- 정적 웹 서비스
- Front-end 기술(HTML/CSS/JavsScript)을 활용하여 작성된 Web Application을 이용한 Web Service 제공
- 동적 웹 서비스
- Front-end 기술과 Back-end 기술(JSP/PHP/Node.js/...)을 활용하여 작성된 Web Application으로 Web Service 제공 시 서버에 요청하고 서버에서 결과를 제공하는 과정으로 동작한다.
- 정적 웹 서비스
- 전송 속도 향상
S3를 이용한 정적 웹 서비스 호스팅
더보기
- S3 메뉴 → 버킷 → 버킷 만들기
- 버킷 이름 - AWS내에서 고유한 이름 설정
- AWS 리전 선택
- 객체 소유권 선택 - ACL 비활성화됨 (객체 소유권을 계정 소유로 한다.)
- 퍼블릭 액세스 차단 설정 - 모든 퍼블릭 액세스 차단 해제, 퍼블릭 액세스 확인
- 버킷 버전 관리 설정 - 비활성화
- 태그 설정
- 서버 측 암호화 설정 - 비활성화
- 버킷 속성 변경
- 정적 웹 사이트 호스팅 편집
- 정적 웹 사이트 호스팅 설정 - 활성화
- 호스팅 유형 설정 - 정적 웹 사이트 호스팅
- 인덱스 문서 - 기본 페이지 파일명 기술
- 버킷 권한 변경
- 버킷 정책 편집
- 버킷 정책은 JSON 형식이며 Bucket-Name을 정적 웹 사이트 호스팅에 사용할 버킷 이름으로 설정
- 정책을 통해서 버킷에 대한 권한 부여
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::Bucket-Name/*"
}
]
}
- 파일 업로드
- 버킷 속성의 정적 웹 사이트 호스팅 항목의 버킷 웹 사이트 엔드 포인트를 통해 접속
- https://버킷이름.s3-website.리전.amazonaws.com
- 필요하다면 별도의 domain과 연결하여 사용할 수 있다. - Amazon Route 53 서비스 활용
- 참고 자료
- S3를 이용한 정적 웹 서비스 호스팅 시 주의사항
- Public으로 contents를 제공하므로 항상 보안 고려
- S3 정적 웹 서비스 호스팅은 HTTPS 접속을 허용하지 않는다.
- S3 정적 웹 사이트 호스팅 주소가 일반적인 DNS에 비해 길고 S3를 사용하고 있다는 점이 노출되므로 Amazon Cloud Front (CDN) 또는 Amazon Route 53 (DNS Service)를 활용한다.
AWS CLI를 이용한 S3 제어
- AWS Command Line Interface
- 커맨드 라인(명령줄)에서 AWS의 API(단위 동작 수행 함수 또는 명령)를 직접 호출할 수 있게 도와주는 유틸리티
- AWS CLI는 python으로 만들어졌으며, python 실행 환경이 필요
- AWS CLI 2 부터는 별도 python 실행 환경이 없어도 동작할 수 있도록 패키지가 개선되었다.
- Amazon Linux AMI는 기본적으로 AWS CLI가 설치되어 있다.
- 참고 자료
AWS CLI 설치
- AWS CLI 패키지 다운로드 - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- AWS CLI 패키지 압축 해제 - unzip awscliv2.zip
- AWS CLI 설치 - sudo ./aws/install
- AWS CLI 설치 확인 - aws --version
[ec2-user@ip-12-12-12-12 ~]$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 44.8M 100 44.8M 0 0 218M 0 --:--:-- --:--:-- --:--:-- 218M
[ec2-user@ip-12-12-12-12 ~]$ unzip awscliv2.zip
...
[ec2-user@ip-12-12-12-12 ~]$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
[ec2-user@ip-12-12-12-12 ~]$ /usr/local/bin/aws --version
aws-cli/2.7.32 Python/3.9.11 Linux/5.10.135-122.509.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off
[ec2-user@ip-12-12-12-12 ~]$
AWS CLI 환경 설정
- 사용자 인증, 사용 리전 정보가 미리 설정되어 있어야 한다.
- 환경 설정 정보 저장 위치 및 파일
- 사용자 홈 디렉토리 - ~/.aws
- 환경 설정 파일
- credentials
- config
- AWS CLI 환경 설정을 위해서는 IAM 서비스의 사용자 인증 정보 필요
- IAM 서비스 사용자 인증 정보 생성
- IAM 메뉴 → 사용자 메뉴 → 사용자 선택 → 보안 자격 증명 → 액세스 키 만들기 → .csv 파일 다운로드
- .csv 파일을 다운로드 받지 않으면 해당 액세스 키는 사용할 수 없다.
- IAM 메뉴 → 사용자 메뉴 → 사용자 선택 → 보안 자격 증명 → 액세스 키 만들기 → .csv 파일 다운로드
- IAM 서비스 사용자 인증 정보 생성
- AWS CLI 환경 설정 - aws configure
- 참고 자료
- AWS Access Key ID 입력 - 액세스 키 파일 내용 입력
- AWS Secret Access Key 입력 - 액세스 키 파일 내용 입력
- Default region name 입력 - 사용 리전 이름 입력
- Default output format 입력 - json 또는 yaml, 출력 결과 표시 형식
- AWS CLI 환경 설정 파일
- credentials 파일 - access key id / secret access key 저장
- config 파일 - region 및 output format 저장
- 환경 설정 파일에 프로파일 추가 가능
- 추가 프로파일 등록 시 [프로파일명] 다음 줄에 key=value 형식(hash 형식)으로 등록 가능
- AWS CLI 명령 사용 시 --profile 옵션 다음에 프로파일명을 적어주면 해당 프로파일 내용 적용
- 환경 변수를 등록하여 환경 설정 가능
AWS CLI 명령으로 S3 제어
- 참고 자료
- aws s3 ls - default region의 S3 bucket list 출력
- aws s3 sync s3://<버킷명> <download 위치>
- S3 bucket으로부터 지정 위치에 데이터 다운로드
- aws s3 cp <upload 할 파일명> s3://<버킷명>
- 지정한 파일을 S3 bucket에 upload
- aws s3 rm s3://<버킷명>/<객체명>
- 지정한 객체 삭제
S3 사용 적합 / 부적합한 경우
- S3 사용 적합한 경우
- 한 번 쓰고 여러 번 읽어야 하는 경우
- 데이터가 다양하고, 데이터량이 지속적으로 증가하는 경우
- 사용자가 많고 데이터 접근이 일시적으로 급증하는 경우
- S3 사용 부적합한 경우
- 여러 번 쓰기 작업을 해야 하는 경우
- 블록 스토리지가 필요한 경우
DataBase 개요
DataBase
- 데이터를 일정한 형식으로 저장 관리
- 테이블 형식(2차원 구조)으로 저장 - 테이블 집합
- 테이블은 필드(1차원 구조) 집합
- 필드는 데이터 성격에 따른 자료형으로 데이터 저장
- DBMS (DataBase Management System)는 DataBase를 관리하는 system으로 DB Engine 이라고도 한다.
DataBase 종류
- 관계형 Database (Relational Database, RDB)
- 관계 이론에 따라 데이터 관리
- 정형화된 데이터를 관리할 때 편리
- SQL(Structure Query Language)을 이용하여 데이터 처리 (CRUD, 생성/읽기/수정/삭제) script
- DDL (Data Definition Language) - DBA (DataBase Administrator) 사용
- DCL (Data Control Language) - DBA (DataBase Administrator) 사용
- DML (Data Manipulation Language) - CRUD 처리
- 비관계형 Database (No-SQL Database)
- 비정형 데이터(이미지, 동영상, 음성, 자연어 등)를 관리할 때 편리
- 프로그램에 의한 처리가 쉽다.
- 별도의 처리용 script가 없다.
DataBase 사용 절차
- Domain에 대한 이해 - 문제 이해
- Database 설계 - Data Modeling
- DBMS 설치
- RDBMS - Oracle, MySQL, MariaDB, SQL Server, PostgresSQL
- No-SQL DBMS - MongoDB
- H/W 사양 결정
- 설치 방법에 따른 설치
- DBMS 환경 설정 및 유지 관리
- DataBase 구축
- DataBase 생성
- 테이블 생성
- Application을 이용한 DataBase 활용
- CRUD 기능을 프로그래밍
AWS DataBase 사용
- EC2 Instance에 직접 DBMS 설치
- DBMS 설치 가능 사용의 EC2 Instance 생성
- DBMS 환경 설정을 직접 수행해야 한다.
- DBMS 관리를 직접 수행해야 한다.
- AWS RDS 서비스를 통한 DataBase 사용 - serverless 방식 (완전 관리형 서비스)
- AWS DynamoDB / Amazon DocumentDB - 비관계형 DataBase 서비스
DataBase 서비스 - AWS RDS
Amazon RDS (Relational DataBase Service)
- 참고 자료
- 관계형 DBMS를 AWS 환경에서 사용할 수 있도록 지원하는 완전 관리형 DataBase 서비스 (serverless, SaaS)
- DBMS에 대한 관리는 AWS에서 담당하고 사용자는 DBMS 활용에만 집중
- RDS를 사용하면 EC2와 별개로 시스템을 구성할 수 있다.
- RDS에서 생성하는 DBMS를 DB Instance라고 한다.
- DB Instance는 shell을 사용할 수 없고 별도의 O/S도 지원하지 않는 AWS에서 관리하는 완전 관리형 서비스
RDS 서비스를 이용한 DB Instance 생성
더보기
- RDS 메뉴 → 데이터 베이스 → 데이터 베이스 생성
- 데이터베이스 생성 방식 선택 - 표준 생성
- 엔진 옵션 설정 (DB Engine 결정) - MySQL 선택
- 템플릿 선택 - 프리 티어 선택
- 설정
- DB Instance 식별자 입력
- 마스터 사용자 이름 입력
- 마스터 암호 입력
- 인스턴스 구성 - DB Instance H/W 사양
- 스토리지 설정 - DataBase가 실제로 저장되는 스토리지 사양
- 연결 설정 - DB Instance 네트워크 위치 결정
- EC2 컴퓨팅 시소스에 연결하지마세요 선택 시
- VPC 선택
- VPC의 DNS 확인과 DNS 호스트 이름이 활성화 되어 있어야 한다.
- RDS를 생성하기 위해 서로 다른 가용 영역으로 하는 2개 이상의 subnet이 구성되어야 한다.
- 퍼블릭 액세스 설정 - 허용
- VPC 보안 그룹 - 새로 생성
- MySQL 기본 사용 port - 3306번 사용
- 데이터베이스 인증 설정 - 암호 인증
- 추가 구성
- 초기 데이터베이스 이름 설정
- VPC 선택
- EC2 컴퓨팅 시소스에 연결하지마세요 선택 시
TIF
AWS 과정도 슬 끝이 보이는 것 같다.
AWS를 다룰 수록 구글 스터디잼 쿠버네티스 했던 것들이 문득 생각난다.
지금 다시 해보면 그때보단 잘 이해하고 넘어가지 않을까 하는 생각과 티끌만큼은 성장했구나 하는 생각.
돈 들어올 구멍은 없는데 싸이클이 망가졌다.
고쳐보려고 했는데 빌어먹을 나사산이 다 나갔다. 뭘 이따구로 만들어놨지?
운동은 해야하니까 또 주문했다... 속상하다.
2022. 09. 15 에 작성된 글입니다.
반응형
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 33일차 (1) | 2023.10.06 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 32일차 (0) | 2023.10.05 |
구름 쿠버네티스 전문가 과정 6기 - 30일차 (0) | 2023.09.27 |
구름 쿠버네티스 전문가 과정 6기 - 29일차 (0) | 2023.09.25 |
구름 쿠버네티스 전문가 과정 6기 - 28일차 (0) | 2023.08.29 |