상세 컨텐츠

본문 제목

AWS 3일차

카테고리 없음

by kiminaki 2021. 6. 2. 21:16

본문

1. AMI 란 ?

Amazon machine ImagesAmazon machine은 아마존에서 만든 컴퓨터를 의미하고 image는 그 컴퓨터가 가지고 있는 상태를 그대로 얼려서 나중에 그대로 복원할수 있는 형태를 의미한다

 

따라서 AMI는 EC2를 위한 서비스로 EC2에 설치된 서비스나 설정등을 그대로 얼려서 복사하는것을 의미한다.

 

이번실습의 목표는 인스턴스에 웹을 설치하여 Hello AWS를 뜨게하고 AMI로 만들고 이 AMI로 다시 인스턴스를 생성하는 것이다. 

(보안그룹에 80번 HTTP을 열어주어야한다)

 

 

 

먼저 인스턴스에 yum -y install httpd를 입력하여 아파치를 설정하였고

vi /var/www/html index.html 인데스파일을 수정하야 안에 hello world를 작성하였다.

이후 systemctl restart httpd, systemctl enable httpd

 

 

먼저 웹이 설치된 인스턴스에서 마우스 오른쪽버튼-이미지 및 템플릿- 이미지 생성을 클릭한다.

 

 

좌측 하단에 AMI를 클릭하고 이미지가 생성되는 것을 기다린다.

(그러는 동안 현재 실행되고 있는 인스턴스는 잠시 중지된다.)

 

 

 

 

AMI를 선택하고 마우스 오른쪽 버튼-시작하기 클릭

 

 

 

그러면 인스턴스 설치할때와 마찬가지로 스펙화면이 뜬다.

 

 

이때 보안그룹을 설정할때 복사했던 인스턴스와 같은 보안그룹을 주면된다.

 

 

 

인스턴스가 생성되게 된다.

 

 

 

인스턴스의 세부정보를 보게되면 주소가나오는데 이걸 복사하여 크롬에 입력해준다.

 

 

웹이 그대로 복사 된것을 볼 수 있다.

 

 

 

AWS MarketPlace

AWS MarketPlace란 ? 우리는 보통 서버를 설치할때 서버만 있는것이 아닌 제공할 서비스등을 설치하거나 필요에 맞는 설정으로 바꾸어 주게된다. AWS MarketPlace에서는 인스턴스안에 여러 서비스가 설치된체로 직접 인스턴스를 구매하여 설치할 수 있다.(단 특정서비스는 과금이 발생한다.)

 

 

해당 사진은 aws 마켓에서 서비스를 검색한 사진이다.

 

 

 

 

AMI를 다른 리전으로 복사하기

대상이미지 마우스 오른쪽 버튼 - ami 복사

 

 

해당 리전으로 복사하면된다.

 

2. API와 툴 생성을 위한 엑세스 키만들기 

 

우선 API 란? 

API는 전달의 매게체라고 할수 있는데 프로그램들이 서로 상호 작용 하는것을 도와준다. 

API 는 사용자가 사용할수 있게 명령 목록들을 정리하고 명령을 받으면 응용프로그램과 상호작용하여 요청에 대한값으 전달하게 된다.

 

 

 

우린 이런 AWS에서 API와 툴을 사용하기 위해 엑세스키를 생성 하도록한다 

(액세스 키Access Key와 시크릿 키Secret Access Key는 AWS API와 써드파티 툴(아마존 이외의 회사나 단체에서 만든 툴)을 사용할 때 필요한 인증 수단 이다.)

 

 

엑세스키 주의사항이 다 꼭 따르도록하자.

엑세스 키와 시크릿 키를 모든 사람이 볼 수 있는 블로그, 트위터, 페이스북에는 절대 올리면 안됩니다. 특히 AWS API 사용법을 작성하여 블로그에 공개할 때 액세스 키와 시크릿 키가 포함되지 않도록 주의합니다. 모르는 사람이 액세스 키와 시크릿 키로 EC2 인스턴스를 대량으로 생성하여 몇 천만원의 요금이 청구되는 사고도 자주 일어납니다.

 

 

AWS 계정은 모든 AWS 리소스에 무제한으로 접근이 가능하므로 AWS 계정의 액세스 키를 생성하고 사용하는 것은 아무래도 보안상 위험이 있습니다. 따라서 AWS에서는 IAMIdentity and Access Management에서 계정을 생성한 뒤 권한을 제한할 것을 권장하고 있습니다.

 

 

 

 

내 보안 자격 증명클릭 

 

 

새 액세스 키 만들기를 클릭한다.

 

 

이후 실습에서는 여기서 생성한 액세스 키와 시크릿 키를 사용한다.

 

해당 파일을 다운로드하면 엑세스키와 시크릿키를 얻을 수 있다.

 

 

 

3. Cloud Watch

Cloud Watch란 ? 일종의 알람 시스템이다 AWS의 리소스의 상태를 모니터링하고 측정치와 연계하여 액션을 사용할수 있다. 

 

예를들어 EC2 인스턴스는 CPU 사용률, 데이터 전송량, 디스크 사용량 등을 모니터링 할수 있으며 이러한 측정치와 연계하여 알림, 및 자동확장을 수행할 수 있다. 

 

아래에는 예시들이 명시되어 있다.

 

 

  • EBS 볼륨: 읽기/쓰기 사용량, 지연 시간 등을 모니터링할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • ELB(Elastic Load Balancing): 요청 수 및 지연 시간 등을 모니터링할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • RDS(Relational Database Service): CPU 사용률, DB 연결 수, 사용 가능한 메모리 및 스토리지 공간, 읽기/쓰기 지연 시간 등을 모니터링할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • DynamoDB: 테이블 인덱스와 글로벌, 로컬 보조 인덱스에서 소모한 읽기/쓰기 용량 유닛, 스캔, 쿼리, 아이템 추가 및 수정(PutItem), 아이템 삭제(Delete)를 모니터링 할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • ElastiCache: CPU 사용률, 데이터 읽기/쓰기, 네트워크 사용량, 캐시 엔진의 각 명령어 사용량 등을 모니터링 할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • SNS(Simple Notification Service): 게시(Published) 및 전송(Delivered) 메시지 수 등을 모니터링할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.
  • SQS(Simple Queue Service): 전송(Send) 및 수신(Received) 된 메시지 수 등을 모니터링할 수 있습니다. 측정치와 연계하여 알림(Notification), 자동 횡적 확장(Auto Scaling) 액션을 사용할 수 있습니다.

 

Cloud Watch 실습 

CPU 사용량이 30%가 넘었을때 내 메일로 경고가 오게 설정.

경보 선택하고 경보 클릭

 

 

왼쪽에 경보 클릭

 

 

 

경보 생성 클릭

 

 

 

 지표 선택 클릭

 

 

 

해당 인스턴스의 CPU 사용량 체크후 선택

 

 

CPU 사용량이 30퍼가 넘은 경보가 발생하게 만든다

 

 

 

내 메일에 알람이 가도록한다.

 

 

이때 새 주체 생성을 해서 이름과 메일을 입력을 하고 저장하면된다. 그 다음  해당 메일로 구독하라는 메시지가 온다. 구독을 눌러야 연결을 된다.

 

 

이후 생성을 완료하면 경보-확인에 해당 경보가 설정된다. 

이제 리눅스에  CPU 사용률을 높여보자

 

 

리눅스 해당 명령을 실행한다.

 

 

그러면 알람이 경보 상태에 오게되고 

 

메일을 받을 수 있게된다.

 

 

 

 

4. S3

S3는 인터넷 스토리지 서비스로서 용량에 관계없이 파일에 접근할 수 있고 HTTP로 파일에 접근할 수 있습니다. 

서버에만 용량을 충당시킨다면 무리가 갈 수있어  S3를 사용하고 서버를 사용한거보다 훨씬 저렴합니다.

 

 

다음은 S3 기본 개념입니다.

  • 객체(Object): S3에 데이터가 저장되는 최소 단위입니다. 이 객체는 파일과 메타데이터로 구성됩니다.
  • 기본적으로 키(Key)가 객체의 이름이며 값(Value)이 객체의 데이터 입니다.
  • 객체 하나의 크기는 1바이트부터 5테라바이트(TB)까지입니다.
  • 메타데이터는 HTTP Content-Type 형식(MIME) 입니다. 파일의 확장자에 따라 자동으로 설정되며 임의로 설정할 수도 있습니다. 키-값(Key-Value) 형식이며 S3 전용 메타데이터 및 사용자 정의 메타데이터도 저장됩니다.
  • 버킷(bucket): S3에서 생성할 수 있는 최상위 폴더(디렉터리)입니다. 버킷은 리전별로 생성해야 합니다. 단 버킷의 이름은 모든 S3 리전 중에서 유일해야 합니다. 계정 별로 100개까지 생성할 수 있습니다
  • 버킷 안에 객체가 저장됩니다.
  • 폴더(디렉터리) 생성 가능이 가능합니다(실제로는 객체 이름이 디렉터리 경로까지 포함하고 있습니다).
  • 저장 가능한 객체의 개수는 무제한입니다.
  • 저장 가능한 용량은 무제한입니다.
  • 접속 제어 및 권한 관리가 가능합니다.
  • http://examplebucket.s3.amazonaws.com/helloworld.jpg 처럼 URL로 접근이 가능합니다. 여기서 examplebucket은 버킷, helloworld.jpg은 객체입니다.
  • 내구성과 가용성: 1년 기준으로 99.999999999% 내구성, 99.99% 가용성을 가지고 있습니다. 내구성은 데이터가 유실되지 않는 것을 뜻하며 가용성은 언제나 정상적으로 사용 가능한 상태를 말합니다.
  • 요금: 저장 용량과 데이터 전송량, HTTP 요청(Request) 개수로 책정됩니다. 자세한 요금은 AWS 사이트의 요금표(http://aws.amazon.com/ko/s3/pricing/)를 참조하기 바랍니다.