클라우드 컴퓨팅 배포 모델

클라우드 기반 배포

  • 애플리케이션의 모든 부분을 클라우드로 실행
  • 기존 애플리케이션을 클라우드로 마이그레이션함
  • 클라우드에서 새 애플리케이션을 설계 및 빌드함

온프레미스 배포

  • 가상화 및 리소스 관리 도구를 사용하여 리소스를 배포한다.
  • 애플리케이션 관리 및 가상화 기술을 사용하여 리소스 활용도를 높힌다.
  • 프라이빗 클라우드 배포라고도 한다.

하이브리드 배포

  • 클라우드 기반 리소스를 온프레미스 인프라에 연결한다.
  • 클라우드 기반 리소스를 레거시 IT 애플리케이션과 통합한다.

🤔레거시?

(Legacy, 유산)

-> 과거에 남겨진 소스 코드 등 더 이상 쓰이진 않더라도 현재에 영향을 주는 것을 말한다.

 

클라우드 컴퓨팅의 이점

  • 선행 비용가변 비용으로 대체한다.
  • 데이터 센터 운영 및 유지 관리에 비용 투자가 필요없다.
  • 애플리케이션을 배포하기 전에 인프라 용량을 예측할 필요가 없다.
  • 종량 과금제로 인해 요금이 감소된다.

 

Amazon Aurora

  • fully-managed 관계형 데이터 베이스 엔진
  • MySQL과 PostgreSQL과 호환된다.
  • 빠르고 효율적인 복제 작업을 지원한다.
    • Aurora DB 클러스터를 다른 AWS 계정과 공유할 수 있다.

🤔DB Cluster?

(Cluster, 군집)

-> 여러 가용영역에 걸쳐 있는 가상 데이터베이스 스토리지 볼륨이다. 각 가용 영역에는 DB 클러스터 데이터의 복사본이 있다.

    하나 이상의 DB 인스턴스와 해당 DB 인스턴스의 데이터를 관리하는 클러스터 볼륨으로 구성된다.

Amazon DynamoDB

  • fully managed인 완벽한 확장성과 빠른 성능을 제공하는 NoSQL 데이터베이스 서비스 이다.
  • 원하는 양의 데이터를 저장하고 검색할 수 있는 데이터베이스 테이블을 만들 수 있다.

Amazon ElastiCache

  • 인 메모리 데이터 스토어 또는 캐시를 손쉽게 배포, 운영 및 확장할 수 있게 해주는 서비스다.
  • RedisMemcached 메모리 엔진을 지원한다.

Amazon RDS (Relational Database Service)

  • fully managed 관계형 데이터 베이스 엔진이다.
  • 필요할 때 자동 백업을 수행 하거나 자동으로 장애를 감지한다.
  • Aurora, MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server를 지원한다.
  • 최대 40개의 RDS DB 인스턴스를 가질 수 있다.

Amazon Redshift

  • 페타 바이트(1024 TB)급 클라우드 데이터 웨어하우스(Data Warehouse) 서비스다.
  • 데이터를 추출하고, 변형하여, 적재할 수 있다. (ETL) -> (Extract, Transform, Load)
  • 빠르고 단순하면서도 비용 효율적으로 표준 SQL 및 기존의 비즈니스 인텔리전스(BI) 도구를 사용하여 모든 데이터를 분석할 수 있다.
  • ETL을 통해 뽑아낸 데이터를 DW에 적재하고, BI를 이용하여 분석하는 과정을 거친다.

🤔데이터 웨어하우스

(Data Warehouse, 정보 창고)

-> 하나의 통합된 데이터 저장 공간으로서, 다양한 운영 환경의 시스템들로부터 데이터를 추출, 변환. 통합해서 요약한 데이터베이스

- 데이터베이스가 관련 있는 업무 데이터는 잘 저장하지만, 저장된 데이터를 제대로 활용하지 못하는 것에서 착안했다.

Amazon DocumentDB

  • fully managed 문서 데이터베이스 서비스다.
  • 데이터는 JSON과 같은 형태로 저장된다.
  • MongoDB와 호환된다.
  • 스키마와 인덱싱이 유연하다.
  • 보통 유저 프로필, 실시간 대규모 데이터를 처리하는데 사용한다.

Amazon Neptune

  • fully managed 그래프 데이터 베이스다.
  • 기본 그래프 쿼리 언어인 Apache TinkerPop Gremlin, SPARQL을 지원한다.

Amazon Quantum Ledger Database (QLDB)

  • fully managed 원장(ledger) 데이터 베이스다.
    • 원장 -> 회계 관련 단어, 회계 장부, 급전 출납부 등
  • 회계 관련 데이터베이스이니 만큼, 투명하고, 변경 불가능하며, 암호화 방식으로 검증 가능한 트랙잭션 로그를 제공한다.
  • 일반적으로 조직의 경제 및 금융 활동 내역을 기록하는데 사용된다.

'AWS' 카테고리의 다른 글

[AWS] 클라우드 컴퓨팅이란  (0) 2021.04.06
[AWS] AWS 서비스 정리 - Storage Service  (0) 2021.04.05
[AWS] AWS 서비스 정리 - Computing Service  (0) 2021.04.04
[AWS] 웹서버에 https를 적용해보자!  (0) 2021.03.28
[AWS] S3 정리  (0) 2021.03.26

Amazon EBS (Elastic Block Store)

  • EC2 인스턴스와 사용하는 블록 레벨 스토리지
  • RDS 의 스토리지로 사용된다.

Amazon EFS (Elastic File Store)

  • 파일 스토리지를 프로비저닝하고 관리하기 쉬운 완전 관리 파일 스토리지 서비스
  • EC2 인스턴스, ECS, EKSFargate에 엑세스 할 수 있고 파일 시스템 인터페이스를 통해 Lambda 함수에 엑세스 할 수 있다.

Amazon FSx

  • fully-managed 타사(third-party) 파일 시스템 솔루션
  • SSD 스토리지를 사용하여 짧은 대기 시간과 빠른 성능 제공

Amazon S3

  • bucket으로 데이터를 객체로 저장한다.
  • 파일과 부분적인 메타데이터로 이루어져 있는 객체.
  • 스토리지의 용량은 사실상 무제한이다

Amazon S3 Glacier

  • 자주 사용하지 않는 데이터 또는 "Cold Data"에 최적화 되어 있다.
  • REST 기반의 웹 서비스다.

🤔Cold Data?

(Cold Data)

-> 자주 접속하는 핫 데이터와 비교해 자주 접속하지 않는 데이터를 말한다.

    고성능 1차 스토리지 대신 콜드 데이터 스토리지를 사용하면 훨씬 경제적이고, 설치와 사용이 간편하며, 드라이브 장애로 인한 문제가 덜 발생한다.

AWS Snowball Edge

  • 데이터 마이그레이션, 엣지 컴퓨팅, 기계 학습과 분석을 위해 S3로 페타 바이트(1024TB) 단위로 데이터를 이동하는 전송 서비스다.
  • 높은 네트워크 비용, 긴 전송 시간, 보안 우려 사항 등 대규모 데이터 전송 시 발생하는 문제를 해결 가능

AWS Snowmobile 

  • 엑사 바이트급 극도로 많은 양의 데이터를 AWS로 이동하는데 사용되는 데이터 전송 서비스
  • Snowmobile 한 대당 최대 100PB까지 전송할 수 있다.

AWS Storage Gateway

  • 클라우드 스토리지에 대한 온프레미스 엑세스 권한을 제공하는 하이브리드 클라우드 스토리지 서비스 이다.
  • 파일을 S3 객체로 저장하고, Glacier 에 백업을 해둔다.

 

'AWS' 카테고리의 다른 글

[AWS] 클라우드 컴퓨팅이란  (0) 2021.04.06
[AWS] AWS 서비스 정리 - Database Service  (0) 2021.04.05
[AWS] AWS 서비스 정리 - Computing Service  (0) 2021.04.04
[AWS] 웹서버에 https를 적용해보자!  (0) 2021.03.28
[AWS] S3 정리  (0) 2021.03.26

Amazon EC2 (Elastic Compute Cloud)

  • 프로비저닝 할 수 있는 Linux 기반/ 윈도우 기반/ Mac 기반 가상 서버

🤔프로비저닝?

(provisioning, 공급, 대비, 준비)

-> 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가, 즉시 사용할 수 있는 상태로 미리 준비해두는 것

Amazon ECR (Elastic Container Registry)

  • 관리되는 AWS Docker 레지스트리 서비스
  • ECR은 내가 만든 컨테이너 이미지를 Amazon S3에 저장한다.
  • Regional Service 이다

🤔Regional Service?

(Reginal Servce, 지역 서비스)

-> S3와 같이 리전 내 서브넷에 한정되지 않는 서비스

Amazon ECS (Elastic Container Service)

  • 클러스터에서 Docker 컨테이너를 실행, 중지 및 관리하는 컨테이너 관리 서비스
  • Regional Service 이다

Amazon Lightsail

  • 클라우드 기반 VPS(Virtual Private Server) 솔루션
    • 가상 서버 호스팅 서비스 ex) 카페24, 리노드, 벌쳐, 디지털 오션 등
  • 다른 서비스들과 달리 독립적으로 구성되어 있다.

Amazon Batch

  • AWS Cloud 내에세 일괄 컴퓨팅 워크로드 실행 가능
  • 한 지역 내 여러 가용영역에 걸쳐 일괄 작업 실행을 단순화 하는 서비스
  • Regional Service 이다

🤔Batch?

(Batch, 일괄)

-> 데이터를 일괄적으로 모아서 처리하는 작업

ex) 하루동안 쌓인 데이터를 배치작업을 통해 특정 시간에 한꺼번에 처리하는 경우

🤔워크로드?

(workload, 업무량)
-> 고객 대면 애플리케이션이나 백엔드 프로세스 같이 비즈니스 가치를 창출하는 리소스 및 코드 모음

AWS Elastic Beanstalk

  • 애플리케이션을 실행하는 인프라에 대한 걱정 없이 AWS Cloud에서 애플리케이션을 신속하게 배포 및 관리할 수 있도록 지원
  • 애플리케이션을 위한 용량 프로비저닝, 로드밸런싱, 확장 및 모니터링의 세부 정보를 자동으로 관리한다
  • PaaS (Platform as a Service)

AWS Lambda

  • 서버가 없는 컴퓨팅 서비스
  • 필요할 때만 코드를 실행하고 자동으로 스케일링 함

AWS ParallelCluster

  • AWS 클라우드에서 HPC(High Performance Computing) 클러스터를 배포하고 관리하는 데 도움이 되는 AWS 지원 오픈 소스 클러스터 관리 도구

🤔ParallelCluster?

(parallel cluster, 병렬 클러스터)
-> 클러스터란 여러 대의 컴퓨터를 네트워크를 통해 하나의 단일 컴퓨터처럼 동작하도록 제작 한 시스템이다.

AWS Serverless Application Model (SAM)

  • Serverless 응용프로그램 구축을 위한 오픈 소스 프레임 워크

AWS Elastic Fabric Adapter (EFA)

  • 네트워크 디바이스로 EC2 인스턴스에 연결하여 HPC기계 학습 애플리케이션 속도를 높일 수 있다.
  • 클라우드 기반 HPC 시스템에서 사용하는 TCP 전송보다 지연율이 낮고 일정하며 더 높은 처리량을 제공한다.

AWS Fargate

  • ECS와 EKS 와 모두 작동하는 컨테이너를 위한 serverless 컴퓨팅 엔진
  • EC2 인스턴스를 프로비저닝하거나 관리할 필요 없이 컨테이너 시작
  • 컨테이너 클러스터 관리를 위한 관리 서비스를 원하는 경우에 사용한다.

 

 

'AWS' 카테고리의 다른 글

[AWS] 클라우드 컴퓨팅이란  (0) 2021.04.06
[AWS] AWS 서비스 정리 - Database Service  (0) 2021.04.05
[AWS] AWS 서비스 정리 - Storage Service  (0) 2021.04.05
[AWS] 웹서버에 https를 적용해보자!  (0) 2021.03.28
[AWS] S3 정리  (0) 2021.03.26

HTTPSSSL(Secure Socket Layer)을 이용한 HTTP 통신 방식을 의미한다. 이런 HTTPS를 아파치를 이용해 웹서버에 적용시켜보자.

 

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html#letsencrypt

 

자습서: Amazon Linux 2에서 SSL/TLS 구성 - Amazon Elastic Compute Cloud

여러 가지 방법으로 새 인증서를 EC2 인스턴스에 업로드할 수 있지만, 가장 간편하고 유익한 방법은 텍스트 편집기(예: vi, nano, 메모장)를 로컬 컴퓨터와 인스턴스에 모두 열고 두 편집기 간에 파

docs.aws.amazon.com

위 자습서를 보고 따라해 볼 것이다.

 

1. 아파치 설치

일단 putty나 ssh등 각자만의 방법을 이용해서 인스턴스에 접속해주자

나는 Amazon Linux 2 이미지를 사용한다.

sudo yum update -y
sudo yum install -y httpd
sudo systemctl enable httpd
sudo systemctl restart httpd

위의 명령어를 차례대로 입력하면 아파치가 설치 된다.

 

제대로 설치되었는지 인스턴스 주소를 브라우저에 입력해 확인해 보자.

위와 같은 화면이 나오면 아파치가 제대로 설치 된 것이다!

 

만약, 연결이 거부되었다고 표시된다면, 보안 그룹에서 인바운드 규칙을 제대로 설정했는지 확인해 보자

나중을 위해서 https도 열어주자

2. HTTPS 적용

docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html#letsencrypt

 

자습서: Amazon Linux 2에서 SSL/TLS 구성 - Amazon Elastic Compute Cloud

여러 가지 방법으로 사용자 지정 키를 EC2 인스턴스에 업로드할 수 있지만, 가장 간편하고 유익한 방법은 텍스트 편집기(예: vi, nano, 메모장)를 로컬 컴퓨터와 인스턴스에 모두 열고 두 편집기 간

docs.aws.amazon.com

를 참고해서 하자. 자세한 설명은 후에 추가

'AWS' 카테고리의 다른 글

[AWS] 클라우드 컴퓨팅이란  (0) 2021.04.06
[AWS] AWS 서비스 정리 - Database Service  (0) 2021.04.05
[AWS] AWS 서비스 정리 - Storage Service  (0) 2021.04.05
[AWS] AWS 서비스 정리 - Computing Service  (0) 2021.04.04
[AWS] S3 정리  (0) 2021.03.26

Bucket

  • 버킷 이름은 AWS 전체에서 유니크 해야한다.
  • Region을 선택해서 어떤 지역에서 배포할 지 정할 수 있음

Block Public Access settings for bucket

  • Block all public access 옵션이 켜져 있으면 권한을 줄 때 오류가 날 수 있음

Objects

S3 URI

  • 엔드포인트 주소 (아마존 CLI를 통해서 파일을 다운 받을 때 사용함)
  • ex) aws s3 cp s3://hanbin-test-s3/asdf.txt .→ 거꾸로 하면 업로드가 됨
  • → s3://hanbin-test-s3/asdf.txt 를 . 으로 다운로드해라.

Object URL

  • 파일에 접근 할 수 있는 URL 주소
  • https://0313-s3.s3-ap-northeast-1.amazonaws.com/index.html
  • 그냥 접속하면 권한이 없다고 접근에 불가능한다고 한다.(버킷의 Block all public access 를 해제해야 함)
    • → make public 을 해주면 접근 할 수 있으나, 자주 사용하지 않는다.

Presigned URL

  • 시간이 지나면 만료가 되는 엑세스키를 포함한 미리 서명이 된 URL을 만드는 것이다.
  • 기간을 정해둔 다운로드 링크를 만들거나 할 때 사용할 수 있다.

Versioning

  • 만약 index.html 라는 이름이 같은 두개의 파일을 모두 S3에 올렸다면 전에 있던 index.html 를 덮어쓰게 되버려 이전의 파일이 사라지게 된다.
  • 이를 방지하기 위해 Bucket Versioning이 존재한다.

  • Bucket Versioning을 활성화 시키면 위와 같이 전 파일이 사라지지 않고 수정했던 시간과 함께 나오게 된다
  • 하지면 옛날 버전의 용량을 모두 계산해서 비용이 청구된다.

Default Encryption

  • 암호화 할 것인지 정함

Server Access logging

  • 어떤 ip가 어떤 resource에 접근했는지 로그를 남겨줌

Event Notification

  • 어떤 오브젝트의 이벤트를 캐치해서 그거에 맞는 이벤트를 발생 시킬 수 있다.

ex) 파일이 올라오면 그 파일에 대한 서브넷을 만들어줌

  1. 만약 사용자가 S3에 큰 용량의 이미지 파일을 업로드함
  2. lambda가 이미지 용량을 줄인다.
  3. 조정한 이미지를 따로 모아둔다.

Transfer Acceleration

  • 남미에 있는 사람이 도쿄로 이미지를 업로드하면 시간이 오래 걸린다.
  • 아마존의 전세계 네트워크를 통해서 속도를 빠르게 해준다.

Requester pays

  • 다른 아마존 계정을 가진 유저가 S3에 오브젝트 요청을 보낼 때, 요청을 보낸 유저가 요금을 지불하는 방식

With Route 53

  • 만약 S3 버킷을 Route 53으로 호스팅 하고 싶으면 Record name과 버킷의 이름이 동일해야함 ex) s3.hanbin.awscloud.work
  • 만약 ec2 인스턴스가 동작하고 있지 않을 때 같은 도메인을 띄워 오류 메세지를 띄울 수 있다.

Bucket Policy

{
	"Version" : "2012-10-17",
	"Statement" : [
		{
			"Sid" : "IPAllow",
			"Effect" : "Deny",
			"Principal" : "*",
			"Action" : ["s3:GetObject", "s3:GetObjectVersion"]
			"Resource" : [
				"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
			],
			"Condition": {
				"NotIpAddress" : {"aws:SourceIp": "54.240.143.0/24"}
			}
		}
	]
}

 

CORS

  • example.com이라는 도메인에서 S3에 요청을 보낼 때 허가되지 않는 도메인 또는 메소드 라면 CORS 오류 가 발생한다.
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

위와 같이 허가를 해줄 수 있다.

Lifecycle rule

  • 생성 후 90일이 지나면 가장 싼 storage class로 바꾸는 규칙 등 아래의 규칙들을 추가할 수 있다.

Replication rule

  • 한 버킷에서 다른 버킷으로 복사할 수 있다.
    • 백업 용도로 사용할 수 있다.
    • 나는 서울 리전에 S3 버킷을 가지고 있는데 미국에 더 빠르게 데이터를 전송하기 위해서 사용할 수 있다.

VPC endpoint

  • NAT Gateway도 없고 Internet Gateway 도 없는 ec2 인스턴스가 s3 버킷에 접근할 수 있는 방법
  • 실제로 많이 사용한다고 한다.

+ Recent posts