Infra/cloud

[AFOS] 2주차 컴퓨팅 서비스 - 실습 : EC2 웹 서버 설치

미니문92 2021. 7. 9. 03:26

4. 실습

사전 준비 사항

  • SSH Client 프로그램 : 윈도우(MobaXterm)
  • SCP 프로그램 : 윈도우(FileZilla client)
  • 신규 VPC 생성 : SecondVPC 생성

 

1. 서비스 → VPC → VPC 마법사 시작 클릭

 

2. [1단계] 단일 퍼블릭 서브넷이 있는 VPC 선택

 

3. [2단계] 아래 입력 VPC 생성 선택

 

IPv4 CIDR 블록 : 10.20.0.0/16
VPC 이름 : SecondVPC
퍼블릭 서브넷의 IPv4 CIDR : 10.20.1.0/24
가용 영역 : ap-northeast-2a
서브넷 이름 : SecondVPC-Subnet1

AWS EC2 인스턴스를 배포 후 해당 인스턴스에 SSH Client 로 접속을 하고 기본 동작들 확인

 

[데모 실습 & 실습 과제 2] 인스턴스 배포 및 모니터링/알람

 


AWS 관리 콘솔에 접속 후 EC2 배포 & 인스턴스 시작 시 명령 실행

  • EC2 서비스 → '인스턴스 시작' 클릭

 

 

단계 1 : Amazon Machine Image(AMI) 선택 → 'Amazon Linux 2 AMI : 64bit(x86)' 선택

단계 2 : 인스턴스 유형 선택 → 't2.micro vCPU(1) MEM(1GiB)' 선택

단계 3 : 인스턴스 세부 정보 구성 → 아래 내용 입력 후 하단 다음: 스토리지 추가

  • 네트워크 : SecondVPC
  • 서브넷 : 'SecondVPC' 선택 시 자동으로 1개 있는 서브넷 선택됨
  • 퍼블릭 IP 자동 할당 : 활성화
  • 고급 세부 정보
    • 사용자 데이터 : 텍스트로 → 아래 내용을 복사 붙여넣기 ⇒ 인스턴스 시작 시 명령 실행
#!/bin/bash
hostnamectl --static set-hostname AFOS2-WebSrv
yum install httpd -y
systemctl start httpd && systemctl enable httpd
echo "<h1>Welcome to AFOS2 Web Server</h1>" > /var/www/html/index.html

단계 4 : 스토리지 추가 선택 → '기본값 그대로 두고' 하단 다음: 태그 추가 → 인스턴스 스토리지 & EBS 볼륨 유형

단계 5 : 태그 추가 → 아래 '키 값' 입력 후 다음: 보안 그룹 구성 → EC2 태그 지정

  • 키 : Name & 값 : WebSrv

단계 6 : 보안 그룹 구성 → 새 보안 그룹 생성(체크 확인) → 아래 유형(SSH & HTTP), 소스 '위치 무관 (혹은 내 IP)' 선택 후 검토 및 시작

 

 

단계 7 : 시작하기 ⇒ (SSH 키 관련 선택) 기존 키 페어 선택 또는 새 키 페어 생성 : 기존 키 페어 선택 후 자신의 SSH 키 페어 선택 후 체크 후 인스턴스 시작 클릭

 


AWS 관리 콘솔에서 생성된 EC2 정보 확인 - 퍼블릭 IP

  • 생성된 인스턴스 선택 후 하단에 '세부 정보'에서 퍼블릭 IP 주소와 프라이빗 IP 주소 확인

 

 

  • '세부 정보'에서 스토리지 클릭 후 정보 확인

 

 


자신의 PC에서 SSH 로 인스턴스의 퍼블릭 IP로 접속 & SCP로 파일 업/다운로드

  • SSH 접속 : MobaXterm - session - SSH 클릭 후

 

 

  • SCP 접속 : Filezilla -> 파일 -> 사이트 관리자 클릭 후

 

 

  • 접속 성공 후 오른쪽 리모트 사이트 에서 /home/ec2-user로 이동 후 왼쪽 탐색기에서 파일 선택 후 업로드

 


EC2 퍼블릭 IP로 웹 브라우저 접속 확인

  • 인스턴스 시작 시 명령 실행(User Data - shell 스크립트) 적용 확인

 


EC2 기본 정보 확인

  • EC2 선택 -> 모니터링 -> CPU 사용률(%) 확인

 

  • Elastic Block Store -> 볼륨 클릭 : EBS 볼륨(루트 볼륨)을 확인
  • 리눅스의 기초 명령어들을 활용하여 배포한 EC2의 기본 정보 확인 : 이전 글 참조
 

[AFOS] 1주차 AWS & 가상서버

1. 클라우드란? 클라우드란? 클라우드는 인터넷을 통해서 언제 어디서든지 원하는 때 원하는 만큼의 IT 리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있게 하는 서비스를 말합니다. 클

minimun92.tistory.com

 


EC2 CPUUtilization(사용률) 경보(Alarm) 생성

EC2 1분 간격 모니터링 설정(추기 미미한 비용 발생!) : EC2 → 모니터링 및 문제 해결 → 세부 모니터링 관리 [활성화]

 

CloudWatch 서비스 → 경보 → 경보 생성

  • [단계 1] 지표 및 조건 지정 → 지표 선택 후 'EC2 → 인스턴스별 지표 'CPUUtilization' 검색 필터링(엔터) 후 '인스턴스 ID' 확인
  • 탭 메뉴 중 그래프로 표시된 지표(1) 클릭 → 기간 1분
  • 탭 메뉴 중 '그래프 옵션' 클릭 → 위젯 유형에 누적 면접 클릭 ⇒ 하단 [지표 선택 ]클릭

 

  • [단계 2] 작업 구성 → 아래 설정 후 맨 하단 다음 클릭
    • 경보 상태 트리거 : 경보 상태
    • SNS 주제 선택 : 새 주제 생성
    • 새 주제 생성 이름 : EC2_CPU_High_Alarms_Topic
    • 알림을 수신할 이메일 엔드포인트 : '각자 자신의 개인 이메일, 이메일2...'

 

 

주제 생성 하면 위와 같은 이메일 발송, Confirm Subscription 클릭

 

성공!

 

  • [단계 3] 경보 이름 : WebSrv-CPU-High-Alarm ⇒ 아래 다음 클릭
  • [단계 4] 맨 아래 경보 생성 클릭

 


CPU 부하 발생

sudo amazon-linux-extras install -y epel
sudo yum install -y stress-ng
stress-ng -h

 

  • EC2 - 모니터링 - CPU 사용률(%) 확인 → 오른쪽 중간 상단 '자동 새로 고침' 간격 10초
  • (옵션) EC2 Shell 에서 top , htop 로 CPU 상태 확인
  • CPU 부하 발생
sudo stress-ng --cpu 1 --cpu-load 70% --timeout 10m --metrics --times --verify

 

htop 실행

 


알람 이메일 확인 & EC2 자동 재부팅 확인

 

CPU 점유율 50% 초과로 인한 메일 수신

 

Cloudwatch 경보 그래프
서버 connection 끊김

 


index.html 에 사진 이미지 첨부하여 접속한 웹 페이지

 

Filezilla로 전송한 파일을 /var/www/html 로 이동
index.html 파일 편집
이미지 업로드 된 웹페이지 확인