linuxer-admin

mysql innodb extra backup 스크립트

#엑스트라 백업 설치
rpm -Uhv https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

#yum 으로 설치
yum install xtrabackup

#디렉토리 확인
ll /backup
ll /backup/full_backup
ll /backup/incre_backup

#디렉토리 생성
mkdir /backup
mkdir /backup/full_backup
mkdir /backup/incre_backup

#crontab 에 설정
* */1 * * * root /root/bin/mysql_innodb_backup.sh


crontab 와 db_full_backup_time 은 중요합니다.스크립스트는 crontab 실행될때 백업이 되며, db_full_backup_time이 아닐경우 차등백업을 실행합니다.


따라서 1시간마다 백업을하며 db_full_backup_time이 있을경우에 full 백업을 합니다.

아래의 스크립트에서 03 15을 변수로 줄경우 배열로 받아서 참일경우 full 백업 거짓일경우 차등백업을 진행합니다.따라서 새벽 3시 오후3시에 백업을 진행 합니다. 

!/bin/bash

DB Backup

BAK_DIR=/backup;
TODAY=$(date +%Y%m%d --date '12 hours ago')

TODAY=$(date +%Y%m%d)

RMTODAY=$(date +%Y%m%d --date '10 days ago')

Delete DB File

rm -rf $BAK_DIR/full_backup/$RMTODAY*
rm -rf $BAK_DIR/incre_backup/$RMTODAY*

Backup Time

db_full_backup_time=("03 15")

Now Time & Time Check

TOTIME=$(date +%H)

TOTIME=$(date +%H)

echo $TOTIME
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]}; do [ "${value}" == "${needle}" ] && echo "true" && return; done
echo "false"
}

db_full_backup_check=in_array $TOTIME ${db_full_backup_time[@]}

if [ "$db_full_backup_check" == "true" ]; then
# full backup
/bin/nice -n 10 /usr/bin/ionice -c2 -n 7 /usr/bin/innobackupex --defaults-file=/etc/my.cnf \
--user=root --password='1234' --slave-info --no-timestamp \
--compress $BAK_DIR/full_backup/$TODAY
else
# hot backup
/bin/nice -n 10 /usr/bin/ionice -c2 -n 7 /usr/bin/innobackupex --defaults-file=/etc/my.cnf \
--user=root --password='1234' --no-timestamp --compress --incremental \
--incremental-basedir=$BAK_DIR/full_backup/$TODAY $BAK_DIR/incre_backup/$TODAY/$TOTIME
fi

aws cloud watch 여러대의 인스턴스에 대한 하나의 경보 생성.ver2

cloudwatch 경보생성 입니다.

여러대의 인스턴스를 하나로 묶어서 경보생성할때 사용하는 방법입니다.

경보 생성을 누릅니다.

지표 선택을 눌러서 지표를 확인합니다.이번에 경보를 생성할 지표는 "CPUUtilization"입니다.

검색하여 체크 후에 '그래프로 표시된 지표' 를 누릅니다.
표시된 지표는 9개 까지 체크하여 추가할수 있습니다.

제한사항으로

 수학표현식을 추가합니다.
수학 표현식은 상황에 따라 잘 사용하기로 바랍니다.https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/using-metric-math.html
이번에는 CPU사용량이 1대라도 70% 를 넘을 경우 경보를 생성할 것이므로 사용한 표현식은 MAX(METRICS()) 입니다.

전체를 체크할 경우 아래와 같이 지표선택 버튼이 활성화 되지 않습니다.

사용할 수학 표현식 하나만 체크해야 생성이 가능합니다.

위와같이 지표를 생성후에 경보생성은 SNS 를 사용해야 하므로 SNS 사용법은 각자 확인해보시기 바랍니다. 

즐거운 하루되세요~

이상한 주제의 글

필자는 의식의 흐름에 따라서 글을 쓰는것을 아주 잘하는 편이다.

오늘은 주제를 추전받았는데 이상한 주제로 글을쓰라는 추천을 받아서 포스팅을 작성하게 되었다.

이상한 주제라고 하면 결국 치과이야기가 적당할것 같다.

교정 3년차의 프로페셔널 교정러다.

교정이 거의 마무리단계이며 교정과정을 먼저 설명해 보겠다.

일단 엑스레이를 찍어서 견적을 받는다. 300만원으로 견적을 받아서 교정을 시작했다. 교정을 하게 된 이유는 간단하게.. 작은어금니와 어금니 사이에 치아가 삼각꼴을 이루며 덧니로 나게되었다. 이유는 여러가지겠지만 하관이 작아서 치아가 한줄에 다못들어간게 이유라면 이유다.

이 작은송곳니를 뽑았다. 교정시작한 첫날에 뽑았는데 너무 행복했다 덧니사이에 끼는 음식물을 더이상 빼지 않아도 된다는 사실이 너무좋았다.

좋은것은 좋은것이고 너무아팠다.

치아와 모발은 소중한것이니 필자처럼 막뽑지 않는것을 추천한다.

그리고 철길을 깔았다.

1달에 한번씩 치과를 갔다. 치아를 고른 열로 sort 하고 규격에 맞지않는 치아는 뽑았다. 그 규격에 맞지않는 치아가 첫째 작은 어금니이다.

첫 교정하는날 1개 그리고 8개월차쯤에 2개 21개월 차에 1개를 뽑았다.

위아래 작은어금니를 뽑았다 이말이다. 그때부턴가 없어져버린 치아처럼 본인도 위아래가 없어진거 같다.

그렇게 4개의 치아를
root@입안# rm -rf "작은송곳니"
하고 각각 치아마다 철길로 연결되서 가지런하게 배열되었다.

고통의 나날들로 다른사람이 교정한다고 하면 꼭 하라고 할거다. 왜냐고? 나만 아플순 없으니까. 진짜 개아프거든.. 밥먹을때마다 입안이 철사에 찢기고 장치에 베이고..헐고 피가나는건 예사일이다. 느긋하고 성격고치고 싶은 사람은 꼭 교정을 해라 성격베리고 예민해지니까.

말이샛는데 교정은 끝나는게 아니라 유지하는거다.

철길을 뺀다고 교정이 끝나는게 아니라 치아뒷편에 교정을 유지해주는 철사를 평생 붙이고 있어야하고 교정을 유지해주는 유지장치를 일정 기간마다 껴야한다.

아주 귀찮은 일이란 말이다.

그렇기에 추천한다.

필자는 미용상의 이유로 교정을 했다.

거짓말 같겠지만 진짜다.

교정을 하고나니 얼굴 라인이 달라졌다 웃는 모습도 가지런해졌다.

자신감과 신기함에 거울보면서 치아점검을 자주한다.

황니인지라 신경쓰여서 워터픽과 음파칫솔을 애용하는데 이것의 리뷰는 나중에 하고 이상한 주제의 블로깅을 마친다.

cloud watch monitoring script

WEB console
iam 추가와 watch 지표가 생성 되는 확인만 하면 된다.

필요한 권한
cloudwatch:PutMetricData
cloudwatch:GetMetricStatistics
cloudwatch:ListMetrics
ec2:DescribeTags

policy 생성

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"ec2:DescribeTags",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics"
],
"Resource": "*"
}
]
}

생성한 정책을 user를 생성하여 부여

Shell 작업

로그인

스크립트를 실행하고 설치하는데 필요한 패키지를 설치한다.

centos
sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64 unzip
cd ~

ubuntu
sudo apt-get install unzip libwww-perl libdatetime-perl

cloud watch monitering script download

curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O

압축해제 및 스크립트 테스트할 경로로 이동

unzip CloudWatchMonitoringScripts-1.2.2.zip && \
rm CloudWatchMonitoringScripts-1.2.2.zip && \
cd aws-scripts-mon

awscreds.conf 생성 및 입력

cp awscreds.template awscreds.conf

vi awscreds.conf
AWSAccessKeyId=
AWSSecretKey=

테스트 명령어 watch 로 전송하지 않음

./mon-put-instance-data.pl --mem-util --verify --verbose

MemoryUtilization: 20.5104909003152 (Percent)
Using AWS credentials file <./awscreds.conf>
Endpoint: https://monitoring.ap-northeast-2.amazonaws.com
Payload: {"MetricData":[{"Timestamp":156646131,"Dimensions":[{"Value":"i-0baaeb0265","Name":"InstanceId"}],"Value":20.5104909003152,"Unit":"Percent","MetricName":"MemoryUtilization"}],"Namespace":"System/Linux","__type":"com.amazonaws.cloudwatch.v2010_08_01#PutMetricDataInput"}

정상 응답확인

crontab 등록
vi /etc/crontab
#disk metric
*/5 * * * * root /root/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ -disk-path=/home --from-cron

disk-path 는 여러개가 들어가도 상관없다.

systemctl restart crond

설치과정이 정상이라면 아래와같이 linux 시스템으로 지표가 생긴다.

이로서 모니터링 지표 생성까지 포스팅을 마쳤다.

경보생성은 다른 포스팅이 많으니 생략한다.

history

1444 sudo apt-get install unzip libwww-perl libdatetime-perl1447 ll
1448 curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
1449 unzip CloudWatchMonitoringScripts-1.2.2.zip && rm CloudWatchMonitoringScripts-1.2.2.zip && cd aws-scripts-mon
1450 ll
1451 ./mon-put-instance-data.pl --mem-util --verify --verbose
1458 vi /etc/crontab
1459 /etc/init.d/cron restart

aws solution architect professional C01 후기

후기는 적어보고 싶었다.

7월 4일 1차시험 7월 31일 2차시험을 봤다.

2차시험에 합격했으며 점수는 아슬아슬하게 761점이었다.

aws solution architect associate 자격증은 17년 11월에 취득했다. 이후로 aws 관련 실무를 했지만 대부분 SE 관련 서버 업무였고 SA 업무를 보게된건 19년 초 부터 이다.

SA pro 자격증은 계속 따고 싶었으나, 결심이 부족했다. 그러다 하루에 한시간씩 공부를 했다. 5월 초부터 1시간씩 매일 공부를 했으니 거의 두달가량을 매일 공부했다고 보면된다.

본격적인 공부는 6월 말경부터 시작했다 그 동안의 공부를 기반으로 제일먼저 풀이한건 예제문제 였다.

https://d1.awsstatic.com/Train%20%26%20Cert/docs/AWS_certified_solutions_architect_professional_examsample.pdf

예제 문제에 나오는 유형을 보고 나온서비스의 FnQ를 모두 보았다,

그리고 모의고사를 두번 봤다. 4만5천원 가량..내10만원..
이건 굉장히 도움이 많이됬다.

그리고 1차시험을 보기전엔 udemy 에서 나온 sap 2019 C01이라고 나온 문제들 3과목정도 봤고 비용은 10-15만원 정도 들었다. 도움이 전혀안된건 아니지만 그렇다고 해서 많은 도움이 된건 아니었다. 이유는 C01 유형이 아니라 C00유형 문제들이었다.

그래서 덤프나 유사유형 문제들이 없는것을 알고는 전략을 수정해서 https://www.aws.training/LearningLibrary
트레이닝을 먼저 다보고 aws 관련 영상을 봤다.

aws korea youtube 에서 거의 대부분의 세션을 봤다.
이것도 어느정도 도움이 됬다.

여기까지 공부하고
https://aws.amazon.com/ko/architecture/?awsf.quickstart-architecture-page-filter=highlight%23new
아키텍처 센터를 한번봤다.

그리고 자격증 백서도 좀봤다
https://github.com/serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide

시험을 앞두고서는 하루에 12시간 정도 공부를해서 4일정도 준비를 했다.
끊임없이 읽고 이해하려는 과정을 거쳤다.

중점적으로 본건 마이그레이션과 장애복구 부분이었다.
코스트 쪽은 주로하는 업무에 기반해서 일반구성도 마찬가지.

시나리오로 시작하는 질문이 대다수 이며 단순기능을 물어보는 질문은 없으니 참고하도록 하자.

sap 자격증을 따고난 소감을 한마디로


" 엄청좋다."

궁금한 것은 언제든 댓글로 남겨 놓으며 답변해 드리겠다.

즐거운 공부되시라!