AWS ๋ฆฌ์์ค์ ๋ก๊ทธ ๊ด๋ฆฌ, ์ด๋ฒคํธ ๋ชจ๋ํฐ๋ง ์๋น์ค
-
AWS ๋ฆฌ์์ค์ ๋ชจ๋ ์ฝ๊ธฐ, ์ฐ๊ธฐ ์์ ์ ์์ธ ๋ก๊ทธ(์์ ๋ด์ญ, ๊ด๋ จ ๋ฆฌ์์ค์ ๋ฆฌ์ , ์์ ์ํ์์ ์์ ์๊ฐ ๋ฑ)๋ฅผ ๋ณด๊ด
-
API ์์ ๊ณผ ๋น API ์์ ์ ๋ชจ๋ ๊ธฐ๋ก
- API ์์
- ์ : ์ธ์คํด์ค ์์, S3 ๋ฒํท ์์ฑ, VPC ์์ฑ
- ๋น API ์์
- ์ : AWS Management Console์ ๋ก๊ทธ์ธ ๋ฑ
- API ์์
-
์ด๋ฒคํธ(event)
- AWS ๊ณ์ ์ ํ๋ ๊ธฐ๋ก
๊ด๋ฆฌ ์ด๋ฒคํธ
= ์ ์ด ํ๋ ์ธ ์์ (Control Plane Operations)- ๋ณด์ ์ฃผ์ฒด๊ฐ AWS ๋ฆฌ์์ค์์ ์คํํ๋ ์์
์ ํฌํจ
- ๋ณด์ ๊ตฌ์ฑ
- โ IAM AttachRolePolicy API
- ๋๋ฐ์ด์ค ๋ฑ๋ก
- โ EC2 AttachRolePolicy API
- ๋ฐ์ดํฐ ๋ผ์ฐํ
๊ท์น ๊ตฌ์ฑ
- โ EC2 CreateSubnet API
- ๋ก๊น
์ค์
- โ CloudTrail CreateTrail API
- ๋ณด์ ๊ตฌ์ฑ
- ๊ณ์ ์์ ๋ฐ์ํ๋ ๋น API ์ด๋ฒคํธ
- ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๋ ๊ฒฝ์ฐ ConsoleLogin ์ด๋ฒคํธ๊ฐ ๋ก๊น
- ์ฐ๊ธฐ ์ ์ฉ๊ณผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ถ๋ฅ
- ์ฐ๊ธฐ ์ ์ฉ ์ด๋ฒคํธ : ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๋ API ์์
- ์ฝ๊ธฐ ์ ์ฉ ์ด๋ฒคํธ : ๋ฆฌ์์ค๋ฅผ ์ฝ๊ธฐ๋งํ๊ณ ๋ณ๊ฒฝํ์ง ์๋ API ์์
- ๋ณด์ ์ฃผ์ฒด๊ฐ AWS ๋ฆฌ์์ค์์ ์คํํ๋ ์์
์ ํฌํจ
๋ฐ์ดํฐ ์ด๋ฒคํธ
= ๋ฐ์ดํฐ ํ๋ ์ธ ์์ (Data Plane Operations)- ๋ฆฌ์์ค ๋๋ ๋ฆฌ์์ค ๋ด์์ ์ํ๋๋ ๋ฆฌ์์ค ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณต
- ๋๋์ ์์
์ด ์ํ๋๋ S3 ๊ฐ์ฒด ์์ค ํ๋, Lambda ํจ์ ์คํ
- S3 ๊ฐ์ฒด ์์ค ํ๋ โ GetObject, DeleteObject, PutObject API
- Lambda ํจ์ ์คํ โ Invoke API
- ์ถ์ ์ ์์ฑํ ๋ ๋ฐ์ดํฐ ์ด๋ฒคํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ก๋์ง ์์
- ๋ฐ์ดํฐ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋กํ๋ ค๋ฉด ํ๋์ ์์งํ ๋ฆฌ์์ค ๋๋ ๋ฆฌ์์ค ์ ํ์ ์ถ์ ์ ๋ช ์์ ์ผ๋ก ์ถ๊ฐํด์ผ ํจ
์ธ์ฌ์ดํธ ์ด๋ฒคํธ
- AWS ๊ณ์ ์ ๋น์ ์์ ์ธ ํ๋์ ์บก์ณ
- ๊ณ์ API ์ฌ์ฉ๋ ๋ณํ๊ฐ ๊ณ์ ์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ํจํด๊ณผ ํฌ๊ฒ ๋ค๋ฅผ ๋ ๋ก๊น
- S3 deleteBucket API ํธ์ถ์ด ํ๊ท ์ ์ผ๋ก ๋ถ๋น 20ํ ํธ์ถ
- โ ๋ถ๋น 100ํ ํธ์ถ์ด ๊ฐ์ง
- โ ๋น์ ์์ ์ธ ํ๋
- โ ๋น์ ์์ ์ธ ํ๋์ด ์์๋ ๋์ ์ ์์ผ๋ก ๋์๊ฐ์ ๋๋ฅผ ๊ธฐ๋ก
- S3 deleteBucket API ํธ์ถ์ด ํ๊ท ์ ์ผ๋ก ๋ถ๋น 20ํ ํธ์ถ
-
์ด๋ฒคํธ ๊ธฐ๋ก (Event History)
- CloudTrail ์ด๋ฒคํธ์ ๋ํ ์ง๋ 90์ผ ๊ฐ์ ๊ธฐ๋ก
- ์กฐํ, ๊ฒ์, ๋ค์ด๋ก๋ ๋ฑ์ด ๊ฐ๋ฅ
- ๊ฐ ๋ฆฌ์ ๋ณ๋ก __์ด๋ฒคํธ ๊ธฐ๋ก__์ ์์ฑํ๊ณ ํด๋น ๋ฆฌ์ ์์์ ํ๋๋ง ๊ธฐ๋ก
- IAM, Route 53 ๋ฑ์ ๊ธ๋ก๋ฒ ์๋น์ค ์ด๋ฒคํธ๋ ๋ชจ๋ ๋ฆฌ์ ์ ์ด๋ฒคํธ ๊ธฐ๋ก์ ํฌํจ
-
์ถ์ (trail)
- 90์ผ์ด ๊ฒฝ๊ณผํ ์ด๋ฒคํธ ๊ธฐ๋ก์ ์ ์ฅํ๊ฑฐ๋ CloudTrail์ด ๊ธฐ๋กํ๋ ์ด๋ฒคํธ ์ ํ์ ์ฌ์ฉ์ ์ ์ํ ๋ ์์ฑ
- ํน์ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋กํ๊ณ ์ง์ ํ S3 ๋ฒํท์ CloudTrail ๋ก๊ทธ ํ์ผ์ ์ ๋ฌ, ๋ก๊ทธ ํ์ผ์๋ JSON ํ์์ ํญ๋ชฉ์ด ํ๋ ์ด์ ๋ค์ด ์์
- eventTime
- userIdentity
- eventSource
- eventName
- awsResion
- sourceIPAddress
- AWS ๋ฆฌ์์ค์ AWS์์ ์ค์๊ฐ์ผ๋ก ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ํฐ๋ง
- ๋ฆฌ์์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์งํ(= ์ธก์ ํ ์ ์๋ ๋ณ์)๋ฅผ ์์งํ๊ณ ์ถ์
- CloudWatch ์น ์ฌ์ดํธ์๋ ์ฌ์ฉ ์ค์ธ ๋ชจ๋ AWS ์๋น์ค์ ํ ์งํ๊ฐ ์๋์ผ๋ก ํ์๋๊ณ , ์ฌ์ฉ์ ์ง์ ๋์๋ณด๋ ์ถ๊ฐ๊ฐ ๊ฐ๋ฅ
- ์งํ๋ฅผ ๊ฐ์ํด ์๋ฆผ์ ๋ณด๋ด๊ฑฐ๋ ์๊ณ๊ฐ์ ์๋ฐํ ๊ฒฝ์ฐ ๋ชจ๋ํฐ๋ง ์ค์ธ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒฝ๋ณด๋ฅผ ์์ฑ
- ์์คํ ์ ์ฒด์ ๋ฆฌ์์ค ์ฌ์ฉ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ฐ ์ด์ ์ํ๋ฅผ ํ์
-
LAB ๋งํฌ
-
EC2 ์ธ์คํด์ค๊ฐ ์ค์ง(shutdown)๋์์ ๋ ์ด๋ฉ์ผ ํต์ง(notification)๋ฅผ ๋ฐ์
- ์ธ์คํด์ค ์ค์ง
- ์ธ์คํด์ค ์คํ
LAB1-2 : EC2 ์ธ์คํด์ค๊ฐ ์ค์ง(stopped)๋์์ ๋ ์ด๋ฉ์ผ๊ณผ ํจ๊ป SMS ํต์ง๋ฅผ ๋ฐ์ํ๋๋ก ์ค์
- SMS ๊ตฌ๋ ์์ฑ
-
์ด๋ฒคํธ ์์
-
์ด๋ฒคํธ ์ ํ -> ํน์ ์ํ(shutdown)
-
์ผ์นํ๋ ์ด๋ฒคํธ์ ์ผ๋ถ -> JSON์์ detail๋ง ๋ฐ์ ์ค๊ธฐ ์ํด
"detail":{"instance-id":"i-0697bdc417cb5d414","state":"stopping"}}
-
- ์ด๋ฉ์ผ ํ์ธ
- ๋ฌธ์ ํ์ธ
TODO. EC2 ์ธ์คํด์ค๊ฐ ์ค์ง(stopped)๋์์ ๋ ํฌ๋งทํ ๋ ์๋ฆผ ๋ฉ์์ง๋ฅผ ์ ์กํ์์ค.
์ธ์คํด์ค์์ ์์ฑ๋๋ ๋ก๊ทธ ์ ๋ณด๋ฅผ CloudWatcch๋ก ์ ์กํด์ ๋ก๊ทธ๋ฅผ ํตํฉ
- EC2 ์ธ์คํด์ค์ CloudWatch Logs ์์ด์ ํธ๋ฅผ ์ค์นํ๊ณ , ๋ก๊ทธ ์๋น์ค๋ฅผ ์ผ๊ณ , ๋ฉ์์ง๋ฅผ ์์ ํ๋๋ก CloudWatcch๋ฅผ ๊ตฌ์ฑ
-
[ec2-user@ip-10-0-0-134 ~]$
sudo yum update -y
-
[ec2-user@ip-10-0-0-134 ~]$
sudo yum install -y awslogs
-
[ec2-user@ip-10-0-0-134 ~]$
cd /etc/awslogs
-
[ec2-user@ip-10-0-0-134 awslogs]$
ls -l
total 20 -rw------- 1 root root 55 Mar 5 02:14 awscli.conf โ ์๊ฒฉ์ฆ๋ช ๊ณผ ์ง์ญ์ ๋ณด๋ฅผ ํฌํจ -rw-r--r-- 1 root root 8355 Jul 25 2018 awslogs.conf โ CloudWatch ๋ก๊น ์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ํฌํจ drwxr-xr-x 2 root root 6 Jul 25 2018 config -rw-r--r-- 1 root root 147 Jul 25 2018 proxy.conf
-
[ec2-user@ip-10-0-0-134 awslogs]$
sudo systemctl start awslogsd
- awslogs ์๋น์ค๋ฅผ ์์
-
[ec2-user@ip-10-0-0-134 awslogs]$
tail -f /var/log/awslogs.log
- awslogs ์์ด์ ํธ๊ฐ ์์ฑํ๋ ๋ก๊ทธ๋ฅผ ํ์ธ
2021-03-05 02:18:18,404 - cwlogs.push - INFO - 3448 - MainThread - Missing or invalid value for use_gzip_http_content_encoding config. Defaulting to use gzip encoding. 2021-03-05 02:18:18,404 - cwlogs.push - INFO - 3448 - MainThread - Missing or invalid value for queue_size config. Defaulting to use 10 2021-03-05 02:18:18,404 - cwlogs.push - INFO - 3448 - MainThread - Using default logging configuration. 2021-03-05 02:18:18,425 - cwlogs.push.stream - INFO - 3448 - Thread-1 - Starting publisher for [1538ea66cfd1d4424de78dedc63516f8, /var/log/messages] 2021-03-05 02:18:18,431 - cwlogs.push.stream - INFO - 3448 - Thread-1 - Starting reader for [1538ea66cfd1d4424de78dedc63516f8, /var/log/messages] 2021-03-05 02:18:18,432 - cwlogs.push.reader - INFO - 3448 - Thread-4 - Start reading file from 0. 2021-03-05 02:18:24,519 - cwlogs.push.publisher - WARNING - 3448 - Thread-3 - Caught exception: An error occurred (ResourceNotFoundException) when calling the PutLogEvents operation: The specified log group does not exist. 2021-03-05 02:18:24,520 - cwlogs.push.batch - INFO - 3448 - Thread-3 - Creating log group /var/log/messages. 2021-03-05 02:18:24,582 - cwlogs.push.batch - INFO - 3448 - Thread-3 - Creating log stream i-04545e7d208a38d21. 2021-03-05 02:18:24,675 - cwlogs.push.publisher - INFO - 3448 - Thread-3 - Log group: /var/log/messages, log stream: i-04545e7d208a38d21, queue size: 0, Publish batch: {'skipped_events_count': 0, 'first_event': {'timestamp': 1614910316000, 'start_position': 0L, 'end_position': 162L}, 'fallback_events_count': 0, 'last_event': {'timestamp': 1614910698000, 'start_position': 68477L, 'end_position': 68564L}, 'source_id': '1538ea66cfd1d4424de78dedc63516f8', 'num_of_events': 789, 'batch_size_in_bytes': 88289}
-
[ec2-user@ip-10-0-0-134 awslogs]$
sudo systemctl enable awslogsd.service
- ๋ถํ ์ awslogs ์๋น์ค๋ฅผ ์๋ ์คํ
-
EC2 ์ธ์คํด์ค์ /var/log/message ํ์ผ์ ๋ด์ฉ๊ณผ CloudWatch์ ๋ก๊ทธ ๊ทธ๋ฃน์ ์์ง๋ ๋ด์ฉ์ด ์ผ์น
-
์ฐธ๊ณ :
- ํจํด ํํฐ๋ง
{ ($.eventSource = s3.amazonaws.com) && (($.eventName = PutObject) || ($.eventName = GetObject)) }
- ๊ฒฝ๋ณด๋ฅผ ์๋ฆด ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ 3/3์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ
- ์งํ ๊ฒฝ๋ณด ์ํ
- OK
- ์งํ ๋๋ ํํ์์ด ์ ์๋ ์๊ณ๊ฐ ๋ด์ ์์
- ALARM
- ์งํ ๋๋ ํํ์์ด ์ ์๋ ์๊ณ๊ฐ์ ๋ฒ์ด๋ฌ์
- INSUFFICIENT_DATA
- ๊ฒฝ๋ณด๊ฐ ๋ฐฉ๊ธ ์์๋์๊ฑฐ๋, ์งํ๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋, ์งํ๋ฅผ ํตํด ๊ฒฝ๋ณด ์ํ๋ฅผ ๊ฒฐ์ ํ๋๋ฐ ์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ
- OK
ํ์ผ ์ ๋ก๋ ์, ์ค์ ํ ๊ฒฝ๋ณด๋ฅผ ํ์ธํ๋ค