- 아래는 예시이며 오토스케일링에 CWAgent를 적용하는 법만 다루고 있는 점 참고 부탁드립니다.
아래의 내용을 내용한다고 하여 즉시 적용이 되는 것이 아니며 적용 이후 스케일링을 통해서 생긴 인스턴스에 적용이 됩니다.
- 기존에 있는 실행중인 인스턴스는 따로 개별 설치를 하셔야 합니다.
1. 기존에 존재하는 오토스케일링으로 생긴 인스턴스를 확인합니다.
2. ssm 및 키페어를 통한 원격 접속을 하여 인스턴스에 접속 후
ps -ef | grep "cloudwatch" 으로 실행중인 프로세스를 확인합니다.
( 만약 없다면 오토스케일링의 적용되어 있는 ami에 CWAgent 설치 및 적용이 되어 있지 않다는 것입니다.)
3. 적용하고자 하는 오토스케일링 그룹 을 클릭하고 시작 템플릿을 클릭합니다. 이후 템플릿 수정을 누릅니다.
4. 새 템플릿을 생성하고 하단 제일 아래에 고급 세부 정보을 클릭합니다. 
5. 하단 제일 아래에 사용자 데이터 란 내용에 다음과 같은 내용을 넣습니다. 이후 템플릿을 새로 생성합니다.
(만약 기존에 들어가야 하는 쉘 코드가 있으면 그 밑에 해당 내용을 넣으시면 됩니다.)
(아래의 첫번째 예시는 아마존 리눅스 기준입니다.)
(아래의 두번째 예시는 우분투 리눅스 기준입니다.)
#!bin/bash
# 루트 권한
sudo su
# CloudWatch Agent 설치
cd /opt/
wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
rpm -U ./amazon-cloudwatch-agent.rpm
# CloudWatch Agent 자동 시작 설정
systemctl enable amazon-cloudwatch-agent
systemctl start amazon-cloudwatch-agent
# 구성 파일 작성
cat <<EOF > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"namespace": "CWAgent",
"append_dimensions": {
"InstanceId": "\${aws:InstanceId}",
"AutoScalingGroupName": "\${aws:AutoScalingGroupName}"
},
"aggregation_dimensions": [
["AutoScalingGroupName"],
["InstanceId"]
],
"metrics_collected": {
"disk": {
"measurement": ["disk_used_percent", "disk_inodes_free"],
"metrics_collection_interval": 60,
"resources": ["/"]
},
"mem": {
"measurement": ["mem_used_percent"],
"metrics_collection_interval": 60
}
}
}
}
EOF
# CloudWatch Agent 설정 적용
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json \
-s
# 이름 수정하기
mv file_file_config.json file_config.json
# CloudWatch Agent 재시작
systemctl restart amazon-cloudwatch-agent
#!bin/bash
# 루트 권한
sudo su
# CloudWatch Agent 설치 (우분투)
cd /opt/
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
sudo dpkg -i amazon-cloudwatch-agent.deb
# CloudWatch Agent 자동 시작 설정
systemctl enable amazon-cloudwatch-agent
systemctl start amazon-cloudwatch-agent
# 구성 파일 작성
cat <<EOF > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"namespace": "CWAgent",
"append_dimensions": {
"InstanceId": "\${aws:InstanceId}",
"AutoScalingGroupName": "\${aws:AutoScalingGroupName}"
},
"aggregation_dimensions": [
["AutoScalingGroupName"],
["InstanceId"]
],
"metrics_collected": {
"disk": {
"measurement": ["disk_used_percent", "disk_inodes_free"],
"metrics_collection_interval": 60,
"resources": ["/"]
},
"mem": {
"measurement": ["mem_used_percent"],
"metrics_collection_interval": 60
}
}
}
}
EOF
# CloudWatch Agent 설정 적용
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json \
-s
# 이름 수정하기
mv file_file_config.json file_config.json
# CloudWatch Agent 재시작
systemctl restart amazon-cloudwatch-agent
6. 다시 오토스케일링 화면으로 돌아가서 시작 템플릿을 누릅니다.
7. 기본 버전 설정을 누르고 가장 최신 버전으로 업데이트를 하면 완료입니다.
* 해당 내용은 적용후 확인하는 내용으로 따라하지 않으셔도 됩니다.
적용된 것을 확인하기 위해서 기존 인스턴스를 종료합니다.
인스턴스 2대가 다시 생성된 것을 확인할 수 있습니다.
다시 인스턴스에 접속해 보면 적용되어 있는 걸 확인 하실 수 있습니다.
Cloudwatch 지표상에서도 확인 할 수 있습니다.
댓글
댓글 0개
댓글을 남기려면 로그인하세요.