BootCamp(OZ Coding School)

[AWS] 클라우드 컴퓨팅과 AWS 실습

나무늘보Programmer 2024. 5. 14. 00:58

클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 IT자원을 인터넷을 통해 제공하고 사용한 만큼만 비용을 지불하는 것을말한다.
물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터 베이스와 같은 기술 서비스를 사용할 수 있다.

리전, 가용영역, 엣지 로케이션이란?

리전 : 서비스들이 제공되는 서버의 물리적인 국가/도시 단위의 위치

기영영역 : 논리적 데이터 센터의 각 그룹/ 각 리전 안의 데이터 센터

엣지 로케이션 : 여러 서비스들을 가장 빠른 속도로 제공하기 위한 거점

클라우드의 4가지 종류

https://smallrich.tistory.com/70

On Premises

서버 구축 부터 하드웨어까지 모든것을 직접 하는 것.

 

IaaS (Infrastructure as a Service)

가상화 기술과 물리적 자원, 즉 인프라만 제공. Amazon AWS, MS Azure, Google GCP 등

 

PaaS (Platform as a Service)

개발에 필요한 환경, 즉 플랫폼까지만 빌려주고 앱과 데이터는 기업이 직접 운영.

AWS Elastic Beanstalk, Heroku, Red Hat OpenShift 등

 

SaaS (Software as a Service)

전통적인 IT 솔루션 (사용자의 하드웨어·소프트웨어)을 모두 서비스.

Dropbox, Salesforce, Google Drive, Naver MYBOX 등

서비스들의 필요성 및 특징, 역할

 

[AWS] AWS Basic Services

EC2 (Elastic Compute Cloud)클라우드에서 탄력적으로 컴퓨팅 자원을 제공해주는 서비스이다.EC2는 가상 머신을 인터넷을 통해서 제공해주는 서비스이기 때문에 가상 서버 서비스라고 부른다.또한 리소

slowprogramer.tistory.com

AWS EC2와 Elastic IP 사용해보기

EC2 인스턴스 생성하기

이름과 원하는 OS 이미지를 선택 한 후 인스턴스 유형, 키페어를 선택하여 인스턴스를 시작

SSH를 사용해서 접속하기

인스턴스의 Public IP와 EC2 인스턴스 생성 시 발급받은 키(.pem)을 이용해서 접속
접속전 키의 모드를 최소로 주어줘야 오류가 발생하지 않는다.
이는 보안을 위해서 최소한의 권한만 키 파일에 부여해야 하기때문이다.

키파일 권한 변경

chmod 400 'key file path' #파일 소유자만 읽을 수 있는 권한 설정

SSH를 통해 접속

ssh -i 'key file path' 'os_user_name'@'public_ip'

3000번 포트를 통해 접속 가능하도록 보안 규칙 추가하기

보안 탭의 인바운드 규칙을 수정 한다.
보안 그룹을 클릭 후 인바운드 규칙 수정한다.
규칙 추가를 누른 후 유형은 TCP 포트범위 3000 소스 Anywhere-IPv4을 선택 후 설명을 입력해서 규칙을 저장한다.

Elastic IP 할당 받기

우측 메뉴리스트에서 탄력적 IP 클릭을 한뒤 우측 상단의 탄력적 IP 주소 할당을 클릭 후 할당 버튼을 클릭하여 할당 받음

EC2에 Elastic IP를 연결하기

원하는 탄력적 IP선택후 작업을 눌러 탄력적 IP 주소연결 클릭

원하는 인스턴스를 선택 한 뒤 연결 클릭

Elastic IP를 통해서 SSH 접속하기

기존 방식과 동일하나 인스턴스 정보에 탄력적 주소를 이용해서 접속 한다.

ssh -i 'key file path' 'os_user_name'@'Elastic IP'

EC2인스턴스에서 Elastic IP 연결 해제하기

원하는 탄력적 IP를 선택하고 탄력적 IP 주소 연결 해제 클릭

할당 받은 Elastic IP 릴리즈 하기

원하는 탄력적 IP를 선택하고 탄력적 IP 주소 릴리즈 클릭
(탄력적 IP는 연결 되어있지 않으면 과금 되므로 꼭 해제후 릴리즈해 반납을 하자!)

EC2 인스턴스 종료하기

원하는 인스턴스를 선택후 인스턴스 종료 버튼 클릭

EBS 사용해보기

EC2 인스턴스 생성하기 (서울 리전, Ubuntu, t2.micro)

EBS 볼륨 생성하기

EC2 인스턴스에 EBS 볼륨 연결하기

EC2 인스턴스에 EBS 볼륨 제거하기

EBS 볼륨 삭제하기

EC2 인스턴스 종료하기

ELB(Elastic Load Balancing) 사용해보기

EC2 인스턴스 생성하기 (2개, 서로 다른 가용영역 (availability zone))

EC2 인스턴스 생성간 네트워크 설정의 서브넷 설정을 통해서 다른 가용영역에 인스턴스 생성

ALB와 대상그룹 생성하기

네트워크 맵핑에는 반드시 인스턴스가 포함된 가용영역을 선택해야 한다.

포함해야 할 인스턴스를 클릭후 '아래에 보류 중인 것으로 포함' 클릭

생성한 대상그룹을 선택하고 로드밸러서 생성

EC2 인스턴스를 대상그룹에 포함시키기

대상 등록 클릭

추가할 인스턴스 클릭 후 '아래에 보류 중인 것으로 포함 클릭

보류 중인 대상 등록

ALB 주소를 통해 EC2 인스턴스에 접속하기

로드 밸런서의 DNS로 접속

작성 된 글을 ALB를 통해서 볼 수 있음

EC2 인스턴스 종료하기

Auto Scaling 사용해보기

EC2 인스턴스 생성하기

ALB 생성하기

생성한 EC2 인스턴스를 기반으로 AMI를 생성하기

ASG (Auto Scaling Group) 생성하기

시작템플릿 선택하면 되나 현재 시작 템플릿이 없기 때문에 생성

AMI 선택 및 세부 사항들을 선택하고 템플릿 생성

가용영역 선택, 선택시 대상 그룹의 가용 영역과 동일하게 설정해야 함

정보를 검토하고 Auto Scaling그룹 생성

EC2 인스턴스에 SSH로 접속하고 stress를 사용하여 Auto Scaling 작동 테스트하기

스트레스 프로그램을 이용해서 CPU에 부하를 걸어서 AutoScaling작동 확인

RDS 사용해보기

RDS 인스턴스 생성하기

원하는 데이터 베이스 선택

템플릿 선택

데이터 베이스(인스턴스)이름 및 암호 설정

액세스 방식, 보안그룹 설정

MySQL Workbench를 사용하여 RDS 인스턴스에 접속하기

접속 정보 입력, Hostname에 엔드포인트를 넣어준다

서버 상태 확인해보기

RDS 인스턴스 삭제하기

S3(기본) 사용해보기

S3 버킷 생성하기

생성한 버킷에 파일 업로드 하기

업로드한 파일 다운로드 받기

다운로드 버튼을 클릭하여 다운 가능

폴더를 생성하고 폴더로 파일 복제하기

폴더 만들기 클릭 후 폴더 생성

원하는 파일 선택 후 복사

S3(정적 웹사이트 호스팅) 사용해보기

버킷의 정적 웹사이트 호스팅 활성화 하기

속성 탭 아래의 정적 웹 사이트 호스팅 활성화

생성한 버킷에 간단하게 작성한 index.html 파일 업로드하기

버킷의 퍼블릭 액세스 차단 해제 하기

버킷 정책 편집하기 (외부에서 모든 객체에 접근할 수 있도록)

편집 클릭

정책 생성기로 정책 생성

버킷 웹 사이트 엔드포인트로 접속하여 웹 사이트가 잘 나오는지 확인하기

버킷 삭제하기

비어있음 버튼으로 버킷 내 내용을 지우고 삭제를 클릭하여 삭제

CloudFront 사용해보기

S3 버킷 생성하기

생성한 버킷을 origin으로 하는 CloudFront 배포 생성하기

원본 관련 옵션 및 제어 설정 생성 후 설정

배포 생성 후 S3 버킷 정책 업데이트 하기

CloudFront 배포 도메인 이름으로 접속하여 객체가 잘 나오는지 확인하기

주피터 노트북 파일이므로 다운로드가 활성

CloudFront 배포 및 S3 버킷 삭제하기

비활성화 진행

삭제

Route53 사용해보기

호스팅 영역 생성하기

A 레코드 추가하기

CNAME 레코드 추가하기

NS, SOA 레코드를 제외한 모든 레코드 삭제하기

호스팅 영역 삭제하기

IAM 사용해보기

IAM 사용자 생성하기

생성한 IAM 사용자로 AWS 콘솔 로그인하기

EC2 페이지 접속하여 잘 나오는지 확인하기

IAM 사용자 삭제하기

DynamoDB 사용해보기

스키마 설계 후 DynamoDB 테이블 생성하기

 

보조 인덱스 (글로벌) 생성하기

생성한 테이블에 항목을 몇 개 생성하기, 이때 자유롭게 속성도 추가하기

항목 쿼리한 결과를 캡쳐하기

글로벌 보조 인덱스를 사용하여 쿼리하기

항목 스캔한 결과를 캡쳐하기

테이블 삭제하기

DynamoDB 삭제하기

AWS Lambda

블루프린트를 사용하여 함수를 하나 생성하기 (Hello world function)

테스트 이벤트 구성하고 테스트 실행해보기

람다함수 삭제하기

AWS SDK, CLI(공유 자격 증명 설정)사용해보기

IAM 사용자 생성하기 (S3ReadOnlyAccess 권한 포함)

생성한 액세스 키를 사용하여 사용 중인 컴퓨터에 공유 자격 증명 설정하기

AWS CLI를 사용하여 S3 명령어 테스트하기

공유 자격 증명 제거하기

IAM 사용자 삭제하기