이세개발
article thumbnail

프로세스 관리

프로세스 목록 생성

이 연습에서는 ps 명령에서 로그 파일을 생성합니다. 이 로그 파일은 SharedFolders 섹션에 추가해야 합니다.

ps -aux에서 processes.csv라는 이름의 로그 파일을 생성하고 COMMAND 섹션에서 루트 사용자를 포함하거나 "[" 또는 "]"를 포함하는 프로세스를 생략합니다.

주의사항:

현재 위치를 나타내기 위해 명령 끝의 마침표 뒤에 공백이 있습니다.

현재 위치가 /home/ec2-user/companyA 폴더라는 것을 확인하려면 pwd를 입력하고 Enter 키를 누릅니다.

현재 위치가 이 폴더가 아닌 경우 cd companyA를 입력하고 Enter 키를 누릅니다.

sudo ps -aux | grep -v root | sudo tee SharedFolders/processes.csv를 입력하고 ENTER 키를 눌러 기기에서 실행되는 모든 프로세스를 표시하고 단어 root를 필터링합니다.

cat SharedFolders/processes.csv를 입력하고 ENTER 키를 눌러 작업을 검증합니다.

콘솔에 sudo ps -aux | grep -v root | sudo tee SharedFolders/processes.csv의 출력이 표시됩니다.

sudo ps -aux | grep -v root | sudo tee SharedFolders/processes.csv 명령의 출력.

top 명령을 사용하여 프로세스 나열

이 연습에서는 top 명령을 사용합니다.

top 명령을 실행하여 시스템에서 활성 상태인 프로세스와 스레드를 표시합니다.
top 명령의 출력을 관찰합니다.
기본 터미널에서 top 명령을 실행하고 ENTER 키를 누릅니다.

서비스 관리

httpd 서비스의 상태 확인

Httpd는 호스트에 설치된 Apache http 서버용 서비스입니다. 이는 자주 사용하는 웹사이트(예: amazon.com)를 실행하는 것과 같은 경량 웹 서버입니다. 이 연습에서는 httpd 서비스의 상태를 확인하고 systemctl 명령을 사용하여 시작하고 서비스가 작동 중인지 확인합니다.

유용한 힌트

루트 사용자가 아닌 경우 sudo를 사용하여 이 연습을 완료해야 할 수 있습니다.

아래와 같이 systemctl 명령을 사용하고 ENTER 키를 눌러 httpd 서비스의 상태를 확인합니다.

sudo systemctl status httpd.service

여기에는 httpd 서비스가 로드되었음을

나타냅니다. 즉, 설치되어 작업할 준비가 되었지만 비활성 상태라는 의미입니다.
따라서 다음 단계는 해당 서비스를 시작하는 것입니다.

아래와 같이 systemctl 명령을 사용하고 ENTER 키를 눌러 httpd 서비스의 상태를 확인합니다.

sudo systemctl start httpd.service

아래와 같이 systemctl 명령을 사용하고 ENTER 키를 눌러 httpd 서비스의 상태를 다시 확인합니다.

sudo systemctl status httpd.service

httpd가 실행 중이므로 이제 제대로 작동하는지 확인해보겠습니다. 브라우저에서 새 탭을 열고 http://<your_public_ip>을 입력합니다. 과정 시작 시 <your_public_ip>를 검색한 공용 IP로 바꿉니다.

이제 아래 명령을 입력하고 Enter 키를 눌러 서비스를 중지할 수 있습니다.

sudo systemctl stop httpd.service

Linux EC2 인스턴스 모니터링

이 연습에서는 Amazon Linux2 EC2 인스턴스를 모니터링하기 위해 Linux 명령을 사용합니다. 또한 AWS Console을 열고 CloudWatch에 로그인하여 이 서비스가 인스턴스를 모니터링하기 위한 데이터를 제공하는 방법을 확인합니다.

유용한 힌트

루트 사용자가 아닌 경우 sudo를 사용하여 이 연습을 완료해야 할 수 있습니다.

아래 명령을 입력하고 Enter 키를 눌러 실행 중인 프로세스 목록을 표시합니다.

top

상단에는 현재 실행 중인 프로세스와 CPU 사용량 및 메모리 사용량과 같은 리소스 사용량이 표시됩니다. Q를 눌러 종료하고 셸로 돌아갑니다.
다음 단계에서는 CPU에서 워크로드를 시뮬레이션하는 스크립트를 실행합니다.

다음 명령을 입력하고 ENTER 키를 눌러 EC2 인스턴스에서 많은 워크로드를 시뮬레이션하는 stress.sh 스크립트를 실행합니다.

./stress.sh & top

1단계에서와 같이 top 명령을 입력하고 Enter 키를 눌러 실행 중인 프로세스 목록을 표시합니다.

방금 실행한 프로세스에 CPU 사용량이 높은 것을 알 수 있습니다.

다음 단계에서는 AWS Management Console을 열고 EC2 인스턴스에 대한 더 나은 인사이트를 제공하는 AWS CloudWatch 애플리케이션을 시작합니다.

화면 오른쪽 상단에서 AWS 버튼을 클릭합니다. 이렇게 하면 새 탭에 AWS Management Console이 표시됩니다.

화면 상단의 검색 표시줄에 CloudWatch를 입력하고 표시되는 CloudWatch 링크를 클릭합니다.

왼쪽 메뉴에서 Dashboard를 선택한 다음 Automatic dashboards를 선택합니다. Automatic dashboards 목록에서 EC2를 선택합니다.

이렇게 하면 AWS에서 생성한 EC2 대시보드가 열립니다.

EC2 CloudWatch 대시보드에는 기본적으로 CPU 사용률, 디스크 읽기 및 쓰기 등과 같은 여러 지표가 표시되는 것을 알 수 있습니다.

이전에 스트레스 스크립트를 시작한 시간과 일치하는 CPU 사용률의 급등을 볼 수 있습니다.

대시보드는 사용자 정의가 가능하므로 위젯을 추가 또는 제거하고,
재구성하고, 색상을 사용자 정의할 수 있습니다. AWS CloudWatch는
나중에 검색할 경보 또는 이벤트 트리거와 같은 더 많은 기능을 제공하므로
애플리케이션을 실시간으로 모니터링하는 핵심 AWS 서비스가
됩니다.

터미널로 돌아가 top가 첫 번째 열에 표시되는 stress.sh 프로세스의 PID를 복사합니다.

q를 눌러 top 애플리케이션을 종료합니다. 이제 아래 명령을 입력하고 Enter 키를 눌러 스트레스 프로세스를 종료할 수 있습니다(6825를 터미널에서 읽은 실제 PID로 바꿈).

sudo kill 6825

5분 정도 기다렸다가 AWS CloudWatch 대시보드로 돌아갑니다. CPU 사용률이 감소한 것을 알 수 있습니다.

기본적으로 AWS CloudWatch는 데이터를 처리하기 전에 5분 동안 데이터를 집계합니다. 이는 변경할 수 있는 설정입니다.

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!