일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 정보처리기능사
- CodePipeline
- AWS
- 해킹송
- cbt
- CodeCommit
- EKS
- 유나인버거조인트
- SQS
- stateful
- ASG
- CloudWatch
- Lambda
- Round Robin
- istio
- Kinesis
- write Through
- DNS
- 3AZ
- CloudFormation
- write back
- server
- APIGateway
- DaemonSet
- 쿠버네티스
- cloudwatch-agent
- access_log
- CodeBuild
- S3
- Kubernetes
- Today
- Total
cloud bee
sqs + cloudwatch로 안전하게 인스턴스 관리하기 본문
이번에 구현해 볼 다이어그램은 다음과 같이 구성되어 있다.
amazon web service console에서 사용한 서비스 목록
- Amazon Virtual Private Cloud
- Amazon Elastic Compute Cloud
- AWS Identity and Access Management
- Amazon Simple Queue Service
- Amazon CloudWatch
다이어 그램 동작과정
1. Amazon Ec2 instance를 Root 계정으로 접속한다.
2. Root 계정으로 접속 시 자동으로 root_log 파일이 생성된다. ( root_log 안에는 로그인 날짜가 기록되어 있다. )
3. Root 계정으로 접속 시 SQS에 메시지를 자동으로 전송한다.
4. root_log 파일이 생기면 cloudwatch에 로그 데이터를 자동으로 푸시한다.
블로그 실습 조건
✅ amazon console account
✅ region: ap-northeast-2 ( 서울 리전 )
✅ your email address
Amazon Web Service Steps
Step1. Create a default VPC
Step2. Create a security group
Step3. Create a Role in Identity and Access Management
Step4. Creating an SQS
Step5. Create and set up an ec2 instance
Step6. CloudWatch Logging Results Viewed + SQS
Step1. Create a default VPC
VPC console Link!: https://console.aws.amazon.com/vpc
기본 VPC를 생성해 주도록 한다.
라우팅 테이블에 모든 서브넷을 연결해 준다.
Step2. Create a security group
security group를 생성해 주도록 한다.
security group name: demo-SG
Inbound role: port 22 ( My IP )
Step3. Create a Role in Identity and Access Management
Identity and Access Mangement에서 역할을 생성하기 위해 아래 콘솔에 접속해 준다.
IAM console Link!: https://console.aws.amazon.com/iam
역할 > 역할 만들기를 선택해 준다.
신뢰할 수 있는 엔터티 유형에서 AWS 서비스를 선택해 준다. 사용사례는 EC2로 선택한다.
CloudWatchAgentAdminPolicy, AmazonSQSFullAccess 권한을 선택해 주도록 한다.
역할이름을 watch_sqs로 지정한다.
Step4. Creating an SQS
아래 amazon SQS 콘솔창을 열어 amazon SQS를 생성해 주도록 한다.
amazon SQS console link!: https://console.aws.amazon.com/sqs
대기열> 대기열 생성을 통해 대기열을 생성하도록 한다.
대기열의 유형은 표준으로 선택해 준다.
대기열의 이름은 demo-sqs로 지정해 준다.
이후 모든 항목은 default 값으로 지정하고 생성한다.
Step5. Create and set up an ec2 instance
아래 ec2 콘솔창을 열어 ec2 instance 생성단계를 진행해 준다.
ec2 console Link!: https://console.aws.amazon.com/ec2
인스턴스 > 인스턴스 시작 단계를 진행하여 ec2 instance를 생성한다.
이름은 demo-instance로 지정하고, AMI를 Amazon Linux로 설정해 준다.
이후 t2.micro를 선택하고 키페어를 선택해 준다. ( 사전에 미리 생성함 )
그리고 watch_sqs를 지정해 준다.
사용자 데이터는 다음과 같은 내용을 입력해 주도록 한다.
#!/bin/bash
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
echo 'password' | passwd --stdin ec2-user
echo 'password' | passwd --stdin root
yum install amazon-cloudwatch-agent -y
cat << EOF > /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
"agent": {
"metrics_collection_interval": 10,
"logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/root/root_log",
"log_group_name": "/aws/root/access",
"log_stream_name": "root_{instance_id}",
"timezone": "Local"
}
]
}
}
}
}
EOF
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
systemctl restart sshd
demo-instance에 접속한 후 bashrc에 다음을 추가해 준다.
vim .bashrc
c=$(date +%d/%b/%Y:%H:%M:%S)
echo '127.0.0.1 -- ['$c' +0000] "GET / HTTP/1.1" 200 3630 "-" "curl/7.79.1"' >> root_log
aws sqs send-message --region ap-northeast-2 --endpoint-url https://sqs.ap-northeast-2.amazonaws.com/<Your account id>/demo-sqs --queue-url https://sqs.ap-northeast-2.amazonaws.com/<Your account id>/demo-sqs --message-body "root user is access :`date`"
Step6. CloudWatch Logging Results Viewed + SQS
cloudwatch에서 로그 그룹과 로그 스트림을 확인해 본다.
cloudwatch console Link!: https://console.aws.amazon.com/cloudwatch
이제 sqs를 확인해 보도록 한다.
sqs console Link!: https://console.aws.amazon.com/sqs
대기열 > demo-sqs > 메시지 전송 및 수신 > 메시지 풀링을 하여 결과를 확인한다.
'AWS > data' 카테고리의 다른 글
S3와 EMR을 활용하여 데이터 변환작업 구성 (0) | 2023.01.10 |
---|---|
AWS cloudwatch-agent로 로깅하기 (0) | 2023.01.08 |
csv data athena 쿼리 (0) | 2023.01.07 |
kinesis data analyfice flink 실습 (0) | 2022.10.24 |