어쩌다 IT
article thumbnail
반응형

리뷰 (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/*"
        }
    ]
}
  • 파일 업로드
  • 버킷 속성의 정적 웹 사이트 호스팅 항목의 버킷 웹 사이트 엔드 포인트를 통해 접속

AWS CLI를 이용한 S3 제어

  • AWS Command Line Interface
  • 커맨드 라인(명령줄)에서 AWS의 API(단위 동작 수행 함수 또는 명령)를 직접 호출할 수 있게 도와주는 유틸리티
  • AWS CLI는 python으로 만들어졌으며, python 실행 환경이 필요
  • AWS CLI 2 부터는 별도 python 실행 환경이 없어도 동작할 수 있도록 패키지가 개선되었다.
  • Amazon Linux AMI는 기본적으로 AWS CLI가 설치되어 있다.
  • 참고 자료

 

AWS CLI 설치

[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 파일을 다운로드 받지 않으면 해당 액세스 키는 사용할 수 없다.
  • 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 사용 절차

  1. Domain에 대한 이해 - 문제 이해
  2. Database 설계 - Data Modeling
  3. DBMS 설치
    • RDBMS - Oracle, MySQL, MariaDB, SQL Server, PostgresSQL
    • No-SQL DBMS - MongoDB
    • H/W 사양 결정
    • 설치 방법에 따른 설치
    • DBMS 환경 설정 및 유지 관리
  4. DataBase 구축
    • DataBase 생성
    • 테이블 생성
  5. 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번 사용
        • 데이터베이스 인증 설정 - 암호 인증
        • 추가 구성
          • 초기 데이터베이스 이름 설정

TIF

AWS 과정도 슬 끝이 보이는 것 같다.

AWS를 다룰 수록 구글 스터디잼 쿠버네티스 했던 것들이 문득 생각난다.

지금 다시 해보면 그때보단 잘 이해하고 넘어가지 않을까 하는 생각과 티끌만큼은 성장했구나 하는 생각.

 

돈 들어올 구멍은 없는데 싸이클이 망가졌다.

고쳐보려고 했는데 빌어먹을 나사산이 다 나갔다. 뭘 이따구로 만들어놨지?

운동은 해야하니까 또 주문했다... 속상하다.

 

 

2022. 09. 15 에 작성된 글입니다.

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!