드디어 2장의 마무리...
Amazon EC2 인스턴스 배포 및 접근하기 실습을 해보도록 하겠습니다~!!
실습의 목표는 AWS 컴퓨팅 서비스 중 대표적인 Amazon EC2를 실습해 보는 것으로 Amazon EC2 인스턴스를 배포하고 간단한 웹 서비스를 생성해서 서비스에 접근해보는 것이다!
실습을 진행하기에 앞서 준비 사항 두 가지를 선행한 후 진행해야 함..
1. SSH 클라이언트 설치하기
Amazon EC2 인스턴스를 생성하고 해당 가상 서버에 접속하여 설정하는 단계가 있다
실습에서 주로 사용하는 EC2 인스턴스의 운영 체제는 "리눅스"이며, 해당 인스턴스 접근은 SSH(Secure SHell)를 통해 셸 명령어 기반으로 설정할 것이기 때문에 SSH 클라이언트 프로그램을 설치해야 한다!
https://mobaxterm.mobatek.net/download.html
여기 사이트에서 무료로 사용 가능한 'Home Edition' 프로그램을 선택해서 설치하면 된다
(macOS 기반일 때는 내장 SSH를 사용해도 무방)
2. EC2 키 페어 내려받기
앞서서 설명했듯이 EC2 인스턴스에 접근할 때 자격을 증며아는 데 보안 키 정보가 필요하다!
=> 보안 키를 발급받으려면 AWS에서 키 페어를 생성해야 하며, 프라이빗 키 파일을 실습용 데스크톱에 저장해 두어야 함!
방법은 간단 그 자체..
AWS 웹 페이지에서 관리 콘솔에 로그인하고
왼쪽 위에 있는 서비스 클릭 후 컴퓨팅 > EC2 를 선택해서 EC2 설정 페이지로 들어간다
그 후, EC2 설정 메뉴에서 왼쪽에 네트워크 및 보안에서 키 페어를 클릭하면 다음과 같은 화면이 나온다!
이제 키 페어 생성을 눌러 준다
그럼 키 페어 설정 페이지가 나오는데 이름을 입력하고, 프라이빗 키 파일 형식에서 .pem을 선택한 후 키 페어 생성을 누르면 키 페어가 생성된 것을 확인할 수 있다
(키 파일 저장 위치는 꼭 기억하자..)
이렇게 하면 본격적으로 실습을 시작할 수 있다!
AMI 를 이용한 EC2 인스턴스 배포하기
AWS 관리 콘솔에서 EC2 서비스에 대한 인스턴스를 손쉽게 배포할 수 있다
사용자 요구에 따라 기본적으로
이름 및 태그, 애플리케이션 및 OS 이미지(AMI), 인스턴스 유형, 키페어, 네트워크 설정, 스토리지 구성
등을 정의해야 한다
이 작업을 위해 똑같이 서비스 > 컴퓨팅 > EC2 를 선택한 후 인스턴스 시작을 눌러 EC2 인스턴스를 생성하는 설정 페이지로 넘어간다
그 후, 순차적으로 진행하면 되는데
네트워크 설정에서 서비스를 제공받을 대상을 고려하면 SSH 접근은 관리자 자신만 접근하면 되는 서비스이기에 보안 측면을 고려하여 위치 무관 => 내 IP로 선택한다!
쭉쭉 하다보면
(고급 세부 정보를 활용하여 다양한 사용자 요구를 정의할 수 있지만, 현재는 고급 정보를 살펴보지 않고 넘어감)
설정 페이지 맨 아래쪽에 있는 인스턴스 시작을 누르면 된다
모든 인스턴스 보기를 누르면 현재 리전에 존재하는 EC2 인스턴스 정보를 확인할 수 있다
EC2 인스턴스가 생성된걸 확인할 수 있다!
그럼 이제 EC2 인스턴스의 SSH 접속과 웹 서비스를 설정해보자
SSH로 EC2 인스턴스에 접속하여 웹 서비스 설정하기
EC2 인스턴스 접속을 위해서는 먼저 퍼블릭 IP 주소를 확인해야 한다
생성된 EC2 인스턴스에 체크를 하면 아래쪽 인스턴스 세부 정보에서 '퍼블릭 IP 주소'를 확인할 수 있다
(위의 그림에서 퍼블릭 IPv4 주소 복사 해놓기)
그리고 다운 받았던 SSH 프로그램을 실행하여
메인 메뉴에서 Session 을 클릭하여 Session settings 창을 열어주고
SSH 탭을 클릭해서 SSH 설정 정보를 사진과 같이 해준다
(Remote host에는 복사한 EC2 인스턴스 퍼블릭 IP 주소 넣어주기)
User private key 에는 내려받은 키 페어 파일을 지정해주고 모든 설정이 끝나면 OK 누르기!
정상적으로 설정되면 리눅스 셸 명령어를 수행할 수 있는 터미널이 보인다
그러면 명령어를 하나씩 입력하여 웹 서비스(HTTP 데몬)를 설치하고, 미리 만들어 놓은 최초 웹 페이지를 내려받으면 된다
# MyFirstEC2 인스턴스에 SSH 접속하기
# 슈퍼 유저로 변경
sudo su -
# http 데몬 설치
yum install httpd -y
# http 데몬 실행
systemctl start httpd
# 웹 서비스 최초 페이지 내려 받기
curl -L https://bit.ly/afbtest01 > /var/www/html/index.html
이렇게 하면 간단하게 웹 서비스 설치 및 설정이 완료된다
사용한 리눅스 명령어를 참고해보자면
sudo su - : 특정 명령어는 권한에 따라 사용할 수 없으므로 슈퍼 유저로 변환하는 명령어를 미리 수행
yum : 특정 패키지를 설치 및 삭제할 수 있는 명령어
systemctl : 특정 데몬을 실행, 중지, 재시작하는 명령어
curl : HTML URL을 실행하는 명령어
EC2 인스턴스에 생성된 웹 서비스 접속하기
현재 동작 중인 EC2 인스턴스의 웹 서비스에 접속하기 위해 앞서 확인한 퍼블릭 IP 주소를 다시 확인하고 웹 브라우저에서 입력하여 접속해보면
이렇게 여태까지 잘 따라왔다면 응원의 한마디..? 를 볼 수 있다
지금까지 Amazon EC2 인스턴스를 배포하고 인스턴스에 SSH로 접속해서 웹 서비스를 설치하여 웹 접근 최초 페이지를 작업했다!
배포한 EC2 인스턴스는 웹 서비스를 제공하는 웹 서버로 동작하며, 인터넷 웹 브라우저에서 웹 페이지를 확인할 수 있다
EC2 인스턴스의 모니터링 설정하기
앞서 생성한 인스턴스에 대해 수동/자동 모니터링을 설정할 수 있다
수동 모니터링 부터 살펴보자
앞서 진행했던 Amazon EC2 인스턴스 생성 화면에서 아래쪽에 있는 모니터링 탭을 클릭하면
다양한 지표에서 통계 정보를 확인할 수 있다
이런 Amazon EC2 인스턴스의 기본적인 모니터링에서 좀 더 상세한 지표나 규칙을 부여하고 싶다면 오른쪽 위에 있는
대시보드에 추가를 눌러 Amazon CloudWatch 대시보드에서 모니터링을 수행할 수 도 있다!
새로 생성 > 새 대시보드 이름 입력 > 생성 > 대시보드에 추가
를 진행하여 CloudWatch 대시보드를 생성한다
(추가 후에 왼쪽 맨 위에 Dashboards를 클릭하여 대시보드 초기 화면으로 이동 후 삭제 가능)
이번엔 자동 모니터링을 수행해보자
가장 먼저 수행할 작업은 Amazon EC2 인스턴스의 세부 모니터링 관리 기능을 활성화 시키는 것이다
(기능을 활성화하면 1분 간격으로 모니터링을 수행하는데 미미한 비용이 발생할 수 있음)
=> 앞서 실행했던 모니터링 탭에서 세부 모니터링 관리를 눌러 '활성화' 에 체크한 후 저장을 누르면 된다
그 후, Amazon CloudWatch 서비스로 진입하여 경보 생성 링크를 클릭한다
(돋보기 아이콘 옆 검색창에 서비스명을 입력하면 손쉽게 접근 가능)
그럼 첫 번째 단계로 지표 및 조건을 설정하는 페이지로 진입하게 되는데
지표 선택 페이지가 표시되면 찾아보기 탭에서 'CPUUtilization' 을 검색한 후 EC2 > 인스턴스별 지표를 선택한다
필터링 대상 중 실습 중 생성한 EC2 인스턴스에 체크한 후 그래프로 표시된 지표 탭을 클릭한다
그렇게 "그래프로 표시된 지표" 페이지에 진입하면 기간을 5분에서 1분으로 변경하고
옵션 탭을 클릭하여 다음 단계로 넘어간다
옵션 페이지에서 위젯 유형을 누적 면적으로 선택하고 지표 선택을 눌러준다
쭉 아래로 내려 지표 선택 아래쪽에 위치한 조건 설정 영역에서 다음과 같이 설정해준다
작업 구성 페이지로 넘어가면 다음과 같이 설정 후 주제 생성을 클릭한다
(알림을 수신할 이메일 엔드포인트... 에는 경보를 받을 이메일을 입력해준다)
그러면 입력한 이메일 주소로 승인 메시지가 도착하는데 승인해주면 된다!
그 다음 알람 설정 아래쪽에 EC2 작업을 설정한다
EC2 작업 추가를 누르고 경보 상태 트리거는 경보 상태 선택
다음 작업 수행...은 이 인스턴스 재부팅을 선택해주고 다음을 누르면 된다
마지막으로 생성할 경보 이름과 설명을 입력하는 단계로 넘어가는데
자신만의 경보 이름을 입력하고 다음을 누른 후 경보 생성을 눌러 마무리 한다
과정이 조금 길긴한데 순서대로 따라하면 그닥 어렵지 않다...
지금까지 설정한 Amazon CloudWatch 경보 설정은
CPU 사용률이 임겟값 50% 이상일 경우 이메일로 알람을 수행하는 것이다
하지만 현재는 CPU 부하가 거의 없는 상태이므로 CPU 부하를 강제로 발생하는 툴을 설치하여 실습을 해보자..
SSH 터미널에 접속한 후
# MyFirstEC2 인스턴스 SSH 터미널 접속
# CPU 부하 설정 툴 설치
amazon-linux-extras install -y epel
yum install -y stress-ng
#CPU 부하 발생(70%)
stress-ng --cpu 1 --cpu-load 70% --timeout 10m --metrics --times --verify
이렇게 stress-ng라는 툴의 명령어로 강제로 CPU 사용률을 70%로 발생시키면 경보 요건에 충족된다!
실행 후 잠시 기다려보면
진짜 메일이 온다...(신기)
하이퍼링크 타고 들어가보면 임곗값 기준 초과 시점등을 확인해볼 수 있다!
이런식으로 자동 모니터링 도구를 이용하여 관리자가 관리 콘솔을 지속적으로 지켜보지 않아도 동적으로 알림을 수행해서 이벤트 상황에 빠르게 대처할 수 있다
실습을 위해 생성된 모든 자원 삭제하기
강조했듯이, 모든 실습이 끝나면 항상 AWS 클라우드 자원을 삭제해서 반환해야 불필요한 과금을 막을 수 있다!!
EC2 > 인스턴스 에서 생성한 EC2 인스턴스를 선택한 후 인스턴스 상태 > 인스턴스 종료를 선택한다.
그러면 수분 내로 '종료 중 -> 종료됨' 상태로 전환된다
('종료됨' 상태가 되면 정상적으로 EC2 인스턴스가 삭제된 것이니 안심하고 다른 작업을 해도 된다!)
마지막으로 CloudWatch > 모든 경보에서 생성한 경보에 체크하고 작업 > 삭제를 선택해서 삭제한다
이렇게 하면 2장이 끝이 난다...
'Infra > AWS 교과서' 카테고리의 다른 글
[AWS 교과서] 3장 - AWS 네트워킹 서비스(2) (1) | 2024.01.03 |
---|---|
[AWS 교과서] 3장 - AWS 네트워킹 서비스(1) (1) | 2024.01.03 |
[AWS 교과서] 2장 - AWS 컴퓨팅 서비스(2) (1) | 2024.01.02 |
[AWS 교과서] 2장 - AWS 컴퓨팅 서비스(1) (1) | 2024.01.01 |
[AWS 교과서] 1장 - AWS란?(3) (1) | 2023.12.31 |