AWS Elastic Compute Cloud (EC2)
EC2특징
- AWS 상에서 크기 조정이 가능한 컴퓨팅 파워 제공
- 가상화 서버를 인스턴스(instance)라고 부름
- 수천 개의 인스턴스로 컴퓨팅 파워 확장 가능
- 물리환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스, 가상머신으로 제공되며 인스턴스 라고불림
- 몇 분만에 새로운 서버 생성, 서비스 인프라 구축
- 유형에 따라 사용 목적과 비용을 지불하는 방식이 다름
- 범용(균형있는),컴퓨팅최적화(고성능), 스토리지최적화(로컬매우큰데이터), 메모리최적화(메모리대규모데이터), GPU
- 인스턴스 종류와 개수, 세대는 계속해서 변화하고 있음
- 완전히 새로운 인스턴스 타입도 탄생함(a type for ARM server)
- 따라서 현재의 분류는 큰 의미가 없음
EC2 인스턴스 유형
- 유형과 사이즈에 따라 EC2 인스턴스 타입 선택
- CPU Core 갯수, 메모리 크기, NIC 속도 선택
- 인스턴스패밀리 : 애플리케이션의 용도에 따라 분류, 사용자는 필요한 용도에따라 인스턴스 선택
- 인스턴스 세대 : 수가높을수록 더 최신의 세대로 성능이 우수
- 인스턴스의 크기 : 인스턴스가 제공하는 크기. nano, micro, medium, large, xlarge 등 다양한크기
EC2 인스턴스 구매 옵션
- 사용자의 요구따라 비용을 최적화
- 온디맨드 인스턴스 : 필요할때 바로 생성해서 사용하는 방식, 인스턴스에 대해 초 단위 비용지불(빈번한 서버 생성 및 삭제에 적합)
- 예약 인스턴스 : 1년 또는 3년의 기간에 대한 약정을 통해 온디맨드보다 최대 75%저렴한 비용 지불(장기적으로 변경 없이 사용)
- 스팟 인스턴스 : 경매 방식의 인스턴스로 스펙을 정해 비용을 입찰하여, 높은가격을 입력한 사용자에게 인스턴스 할당(단기적으로 병렬 컴퓨팅 파워사용(동영상 인코딩 등))
- 전용 인스턴스 : 고객 전용의 하드웨어에서 인스턴스 서비스를 제공 (보안성 높고 안정적인 클라우드 서비스)
AWS EBS 특징
- ec2인스턴스에 장착하여 사용할 수 있는 가상저장장치(hdd나ssd처럼 가상 컴퓨터에 장착한 저장장치)
- Elastic Block Stroage
- EC2에 연결되는 블록레벨 스토리지 서비스
- 서버용 하드디스크 (크기는 1GB단위, 크기/사용기간을 기준으로 비용과금, 마그네틱의경우 발생하는 I/O횟수에도 비용과금, EC2와 독립적으로 사용가능 다른 EC2인스턴스에 교체가능, 데이터는 영구적저장 원하는가용영역저장가능), 백업된 스냅샷에서 EBS 볼륨을 생성/복원 가능
- EBS VS S3 : 큰 차이점은 저장 방식, EBS는 블록스토리지방식, S3는 객체스토리지 방식
AWS EBS 볼륨 유형
- 서비스 타입에 따라 5가지로 분류
AWS EBS 스냅샷(Snapshot)
- EBS 볼륨의 데이터를 Amazon S3에 백업 및 보관(하드디스크 통째 백업)
- 백업 스냅샷으로 다시 EBS 볼륨 생성 및 데이터 복원 가능
- 특징
- 스냅샷 생성 진행중에도 EBS, EC2 서비스 사용 가능
- 변화된 부분만 저장
- 읽기만 가능한 특정 시간의 가상 복제 파일 시스템( EBS의 데이터 저장상태에 대한 사진(복원본)을 찍어둔개념)
- EBS 볼륨 크기 조정 가능
- 다른 사용자와 공유 가능
- 다른 리전(Region)으로 복사 가능
AWS EC2 Pricing
- On-demand : 사용한 시간단위 & 데이터 송수신 양으로 요금책정, 일반적으로 운영체제 라이선스 비용이 포함되어 있으나 일부sw는 사용자가 라이선스 관리해야함, Region에 따라 가격 다름
- Reserved Instance : 1년 3년단위로 예약해서 하는요금정책, 비용 절감 및 유연성 유지(온디맨드대비 27~55%할인)
- Spot Instance : 경매를 통해 낮은 가격으로 짧은 시간동안 이용할수있는 가격정책(온디맨드 대비 50%이하), 일시적이고 단기간동안 서비스를 사용해야 할때 매우 유용, 사용시간설정가능(1~6시간, 스팟가격이 조금더 상승)
- Bid : 지불하고자 하는 최고 스팟 가격지정
- Start : 스팟 인스턴스는 스팟 가격이 지정한 가격보다 낮을 때 시작
- End : 이를 종료하도록 선택하거나, 스팟 가격이 지정한 최고 가격을 초과할 때까지 계속해서 실행
- Dedicated Hosting/Instance : 고객전용의 서버, 기존서버에 한정된 소프트웨어 라이선스를 사용가능, 물리서버이므로 예측가능한 성능제공, 전용호스팅서버(고객전용으로사용되는 물리서버를 비저닝), 전용인스턴스(전용호스팅보다 물리적으로 제한된 서비스, 특정 전용서버에 배치하 수 없음, 용랑추가불가 등 )
Linux 서버용 EC2 인스턴스
- login as: ec2-user -> 서버이름안에 private IP 주소 설정
보안그룹 설정
- Amazon 보안 그룹
- 인스턴스의 네트워크 트래픽에 대한 가상의 방화벽
- 인바운드(Inbound), 아웃바운드(Outbound)관리
- 인바운드 : 클라이언트가 자신의 서버 데이터에 들어올 수 있는 규칙
- 아웃바운드 : 서버에서 외부로 나가는 규칙
- 생성 가능한 숫자와 규칙제한(VPC한개당 500개보안그룹생성가능, 각 보안 그룹당 추가 규칙개수는 50개까지가능, 네트워크 인터페이스 당 5개의 보안그룹 적용)
- 네트워크 트래픽에 대한 '허용(Allow)'정책만 존재( 차단정책필요 x, 차단정책이 필요하다면 네트워크ACL기능이용)
- 인바운드/아웃바운드 트래픽 별도제어
- 초기 보안그룹 설정에는 인바운드 규칙X(다른 EC2와 통신을 원할경우 인바운드 규칙추가)
WoRDPRESS 웹사이트 구축
웹사이트운영
- 웹 사이트가 동작하려면 웹 서비스를 제공하는 서버가 존재해야함(서버내에 웹서비스 환경을 구축하고, 웹사이트 파일을 업로드해야함)
- 웹서비스 환경구축
- Windows + IIS + MySQL + PHP : WIMP 스택이라고 함
- W/LAMP : Windows/Linux + Apache +MySQL + PHP
- 진행
- 1단계 : IIS사이트구성, 간단한 수정 진행
- 2단계 : MySQL, PHP 설치
- 3단계 : WordPress 사이트 연동
Linux 기반 웹 서버 설치 방법
- Instance 생성 후, LAMP 환경 수동 구성
- LAMP : Linux + Apache + MySQL + PHP(가장 수고스러운 방법)
- Packaged Installation Tools 활용 (설치및구성을 편리하게 해주는 도구들을 활용)
- Launch Script활용(EC2생성시 자동으로 실행할 shell script 삽입)
- (워드프레스 설정까지 미리)준비된 AMI이용(제일 편리하지만, 보통유료이고 AWS Academy에서는 사용불가)
- 접속 포트 및 주소 변경
- 현 웹 서버에는 2개 이슈 존재
- HTTP 기본 포트로 80포트가 아닌 8080포트가 설정되어 있음
- 불편함 : 기본 URL이 아닌 wordpress 서브도메인으로 접속해야함
- 현 웹 서버에는 2개 이슈 존재
결과 : 80 포트 접속을 8080 포트로 redirection
# sudo ipatables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
- Apache 웹 서버의 root 디렉토리를 wordpress 디렉토리로 변경
AWS STORAGE SERVICES
데이터백업
- 데이터가 손상되거나 유실되는 것을 대비하여 데이터를 복사 및 다른 곳에 저장
- 동일장비, 혹은 다른 장비 디스크 활용
- 백업 테이프 활용 (은행 등)
- AWS 에서는 EBS Snapshot 및 AMI 백업 등으로 서비스 제공
Amazaon S3
- Simple Storage Services( S3)
- 확장성이 뛰어나고 무한대로 저장 가능하고 사용한 만큼 지불하는 인터넷 기반 스토리지 서비스
- 리전 내에서 버킷(Bucket)영역을 생성 후 데이터를 key-value 형식의 객체(object)로 저장
- 파일 단위의 접근만 지원
- 정적 웹 사이트 호스팅 서비스 제공 가능
- 활용분야 : 백업및 복구, 데이터 아카이빙, 빅데이터 분석을 위한 데이터 레이크, 하이브리드 클라우드 스토리지, 재해복구
- 스토리지 클래스 : 사용케이스에 맞춰서 옵션 선택
- Standard- 무제한 저장 가능한 스토리지 : 자주액세스하는 데이터용
- Standard - IA(Infrequent Access) : 액세스 빈도 낮으며, 빠르게 액세스가필요한 데이터
- One Zone - IA(Infrequent Access) : 액세스 빈도 낮으며, 빠르게 액세스가필요한 데이터, 단일 AZ에 데이터를 저장
- Glacier - 데이터 백업용 스토리지 : 데이터보관을위한 안전하고 안정적, 매우저렴한스토리지
- S3와 다르게 저장에만 특화
- 데이터아카이빙 및 장기 백업을 위한 안정적인 서비스, 비용이 저렴
- S3에 저장되는 데이터를 라이프사이클 옵션을 활용하여 일정 기간이 지난후 저렴한 Glacier로 이동시킬 수 있음
- 보관된 데이터 엑세스에 대해 검색속도에 따른 서로 다른 요금 정책 제공
S3 Bucket
- 버킷 : 여러가지 사물을 하나에 담는다, 버킷이라는 단위 아래 폴더 및 파일을 업로드하여 업로드 된 객체 URL로 접근하여 폴더나 파일의 내용을 조회 및 수정 가능
- 파일들을 적재하는 단위 : 내부에 폴더를 생성할 수 있음, dns 주소에 포함될 수 있는 형태의 이름을 가짐. 변경불가
- Global unique name : Region 단위의 name space를 global로 확장, 그러나 데이터가 실제 저장되는 리전은 설정해야 함
S3로 파일 업로드 및 삭제
- S3에 버킷(Bucket)을 생성 -> 파일업로드및삭제작업진행 -> aws에서는 5gb까지 프리티어 지원
- 압축파일을 올리지 말것
Static Website구축
- 스크립트, 프로그래밍, DB 등을 이용해 동적으로 웹 페이지 생성 대신 기 구축된 파일들 만으로 구성된 웹 사이트
- 컴퓨팅 서버 없이 S3만으로 정적 웹 사이트 제공 가능
Wordpress -S3 plugin
- Wordpress에 AWS 플러그인 설치 : WP사이트에 업로드하는 파일을 로컬 서버가 아닌 S3에 업로드하도록 변경하는 플러그인 설치(IAM설정을 통해 S3접근권한부여), offloading( 어떤개체(웹서버)에서 처리해야 할 작업을 다른개체(s3)에 분담시키는 것을 offloading 이라고 표현)
- 이유?
- 가용성 높은 웹 서비스 구조를 만들기 위해 웹 서버는 인터페이스 제공 역할만 수행
- 컨텐츠는 모두 DB혹은 분리된 스토리지에 저장되어야 함
- WP에 작성된 글은 DB에 저장되지만, 업로드한 파일은 서버의 로컬 파일 시스템에 저장됨
- 순서
- 기존 Wp blog에 사진이 포함된 글 생성 -> IAM 역할(Role)생성 및 인스턴스에 역할 연결, S3 연결 플러그인 설치 및 설정, 새로운 글 생성하고 저장위치가 S3인지 확인
- 이유?
- IAM Role 변경
- IAM : AWS Identity and Access Management
- AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스(출입카드개념)
- 리소스를 사용하도록 인증(로그인) 및 권한 부여된 대상을 제어
- 작업 순서 : 워드프레스 저장요으로 쓸 S3 버킷생성, IAM으로 S3버킷에 접근할 수 있는 EC2역할설정, Wordpress Instance에 역할부여
- IAM : AWS Identity and Access Management
'공부' 카테고리의 다른 글
Docker란? (탄생배경, 정의) (0) | 2023.11.24 |
---|---|
내가 볼려고 만든 MYSQL문법 (0) | 2023.10.28 |
클라우딩 컴퓨팅 소개 (1) | 2023.10.24 |
웹프로그래밍기초 기말 (1) | 2023.06.11 |
소프트웨어공학 - 기말 (0) | 2023.06.06 |