AWS Certified Data Engineer - Associate - 합격후기

DEA-C01 합격 후기를 쓰러왔다. AWS Certified Data Engineer - Associate 자격증은 2024년 3월 12일 정식으로 출시되었으며, 취득일은 3월 14일이다. 먼저 DEA 시험은 Beta 시기를 거쳐서 오픈했는데, 그 이전에 https://explore.skillbuilder.aws/learn 에서 강의를 이미 오픈했다. 나는 사실 자격증을 얼른 취득하고 싶어서 조금씩 공부를 해놓고 있었다. (올서티가 마려웠다.) https://aws.amazon.com/ko/certification/certified-data-engineer-associate/ 공부의 시작은 시험안내서 이다. https://d1.awsstatic.com/ko_KR/training-and-certification/docs-data-engineer-associate/AWS-Certified-Data-Engineer-Associate_Exam-Guide.pdf 내가 본 안내서에서 중요하다 생각하는 부분이다. 프로그래밍 개념을 적용하면서 데이터를 수집 및 변환하고 데이터 파이프라인을 오케스트레이션합니다. - Glue / Step Function ...

March 16, 2024 · 3 min · 📁 AWS, Certification · 🏷️ DEA, DEA-C01, Data Engineer

AWS-ALL-Certification-Review

50일간의 챌린지를 끝냈다. 근래의 나는 다시금 내한계를 부수고 성장하는 과정을 거쳤다. 어느 순간부터 일하는것도 너무 쉬웠다. 공부하는건 시험이라는 부담감은 있었지만 공부가 어렵진 않았다. 50일간의 긴 시간이었다. 평균 5일에 1개의 자격증을 취득했다. 2023.12 CKAD: Certified Kubernetes Application Developer 2023.12 AWS Certified cloud practitioner 2023.12 AWS Certified Solutions Architect - Associate 2023.12 AWS Certified Developer – Associate 2023.12 AWS Certified SysOps Administrator – Associate --------------------------------2024---------------------------------- 2024.01 AWS Certified Database - Specialty 2024.01 AWS Certified Security - Specialty 2024.01 AWS Certified Advanced Networking - Specialty 2024.01 AWS Certified Solutions Architect - Professional 2024.01 AWS Certified: SAP on AWS - Specialty 2024.02 AWS Certified DevOps Engineer – Professional ...

February 8, 2024 · 2 min · 📁 AWS, Certification

AWS-User-Notifications-Hacking-Detection

아직 이걸 설정 안했다면 반드시 하길 바란다. 우리는 AWS를 다루면 항상 해킹의 위험에 당면한다. 미리 막는다면 너무좋은 일이겠으나, 그렇지 못한경우가 많다. 해킹을 당한다 하여도 문제들을 간단하게 캐치할수 있는 방법이 있다. 보통 AWS계정이 해킹당하면 해커의 니즈는 컴퓨팅 리소스를 사용하여 채굴을 돌리려고 한다. 이 과정에서 EC2를 만들게 되고, EC2의 생성을 모니터링 할수 있는 방법이 있다면, 조기에 해킹을 진압할수 있을 것이다. 이번에 나온AWS User Notifications 서비스가 그 니즈에 완벽하게 부합하다. 이미지 대로 생성하자, 활성화되지 않은 계정의 리전들은 서비스노티도 안되거나 서비스가 런칭되지 않아서 리전에서 제외해야한다. 초기 한국계정으로 선택되지 않은 리전이다. ...

May 25, 2023 · 1 min · 📁 AWS

EKS-NodeLess-08-AWS-Karpenter-topologySpreadConstraints

topologySpreadConstraints 을 사용한 Karpenter 테스트를 진행하겠다. topologySpreadConstraints 테스트는 Topology Aware Hint 를 예비한 테스트다. https://aws.amazon.com/ko/blogs/tech/amazon-eks-reduce-cross-az-traffic-costs-with-topology-aware-hints/ 참고할 부분이 있다면 이 글을 참고하길 바란다. 간략하게 설명하자면 Kubernetes 에서 Cross Zone Traffic 의 문제로 비용이 막대하게 발생할수 있다. 또한 Cross-AZ로 인하여 약간의 레이턴시가 발생할수도 있기때문에 Topology Aware Hint는 여러 문제점들을 줄여주는 역할을 한다. 조건은 몇가지가 있는데, Service 로 연결되 AZ가 수평적으로 동일하게 노드가 배포되어있고 서비스에 apiVersion: v1 kind: Service metadata: name: service annotations: service.kubernetes.io/topology-aware-hints: auto 다음과 같은 annotations 붙어있어야 한다. ...

May 20, 2023 · 3 min · 📁 AWS, Kubernetes · 🏷️ EKS, karpenter, topologySpreadConstraints

EKS-NodeLess-07-AWS-Karpenter-CRD

이제 카펜터의 CRD를 정리하고 어떻게 사용해야 하는지 이야기를 해보려고 한다. 거의 끝에 다왔다. https://www.linuxer.name/posts/eks-nodeless-05-aws-karpenter-component/ Karpenter Component 를 설명할때 CRD를 설명했었다. 다시 이야기 하자면 provisioners.karpenter.sh - provisioners - / awsnodetemplates.karpenter.k8s.aws -awsnodetemplates - 두가지를 셋팅해야 한다. 먼저 provisioners 를 이야기 해볼까 한다. apiVersion: karpenter.sh/v1alpha5 kind: Provisioner metadata: name: default spec: requirements: - key: karpenter.k8s.aws/instance-category operator: In values: [c, m, r] - key: karpenter.k8s.aws/instance-generation operator: Gt values: ["2"] providerRef: name: default https://karpenter.sh/v0.27.3/concepts/provisioners/ https://github.com/aws/karpenter/tree/main/examples ...

May 20, 2023 · 1 min · 📁 AWS, Kubernetes

EKS-NodeLess-06-AWS-Karpenter-Install

이번 포스팅은 Karpenter 설치다. 설치하다 막히면 가이드를 보자. https://karpenter.sh/v0.27.3/getting-started/migrating-from-cas/ karpenter 를 설치하기 전에 먼저 셋팅해야 할것들이 있다. CLUSTER_NAME=myeks # your clouster name AWS_PARTITION="aws" # aws or aws-gov or aws-cn AWS_REGION="$(aws configure list | grep region | tr -s " " | cut -d" " -f3)" OIDC_ENDPOINT="$(aws eks describe-cluster --name ${CLUSTER_NAME} \\ --query "cluster.identity.oidc.issuer" --output text)" AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' \\ --output text) export KARPENTER_VERSION=v0.27.3 # latast version 환경 변수 설정이다. ...

May 17, 2023 · 3 min · 📁 AWS, Kubernetes · 🏷️ EKS, nodeless, karpenter

EKS-NodeLess-05-AWS-Karpenter-component

이제야 드디어 Karpenter까지 왔다. Karpenter의 구성요소부터 살펴보자! PodDisruptionBudget: PodDisruptionBudget은 클러스터의 안정성을 보장하기 위해 사용된다. 특정 서비스를 중단하지 않고 동시에 종료할 수 있는 Pod의 최대 수를 지정한다. ServiceAccount: Karpenter가 동작하려면 해당 권한을 가진 Kubernetes의 ServiceAccount가 필요하다. ServiceAccount는 Kubernetes 리소스에 대한 API 접근 권한을 제공한다. Secret-webhook-cert: Karpenter의 웹훅에 사용되는 TLS 인증서를 저장하는 Secret이다. 이를 통해 웹훅이 안전하게 통신할 수 있다. ConfigMap-logging: Karpenter의 로깅 설정을 저장하는 ConfigMap이다. 로깅 수준, 출력 형식 등을 지정할 수 있다. ...

May 15, 2023 · 3 min · 📁 AWS, Kubernetes · 🏷️ EKS, nodeless, karpenter

EKS-NodeLess-04-AWS-LoadBalancer-Controller

AWS LoadBalancer Controller 도 Fargate에 올려야 한다. 비교적 간단한데, Controller Pod에 annotations 한줄만 추가하면된다. 먼저 추가할때 Policy 를 생성한다. VPC_NAME=myeks-VPC // VPC NAME 으로 변경 CLUSTER_NAME=myeks REGION=ap-northeast-2 curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.7/docs/install/iam_policy.json aws iam create-policy \\ --policy-name AWSLoadBalancerControllerIAMPolicy \\ --policy-document file://iam_policy.json POLICY_ARN=`aws iam list-policies | grep Arn | grep AWSLoadBalancerControllerIAMPolicy | awk -F\\" '{print $4}'` VPC_ID=$(aws ec2 describe-vpcs --query 'Vpcs[?contains(Tags[?Key==`Name`].Value[], `'$VPC_NAME'`) == `true`].[VpcId]' --output text) 이 Policy를 이용하여 eksctl에서 사용할거다. POLICY_ARN은 전체 Policy 에서 AWSLoadBalancerControllerIAMPolicy 의 arn을 추출한다. ...

May 14, 2023 · 1 min · 📁 AWS, Kubernetes

EKS-NodeLess-03-Karpenter-01-intro

NodeLess 컨셉에서 제일 중요한 역할을 맡고 있는 Karpenter 다. Karpenter 의 기본적인 아키텍처 부터 리뷰해볼까 한다. 그렇다면 그전에 Cluster Autoscaler 부터 설명해야 한다. Cluster Autoscaler 는 보통 CA라 부른다. 간략하게 플로우를 설명하겠다. Kubernetes에 새로운 Pod 가 프로비저닝 되었을때 Pod는 노드그룹에 스케줄링 된다. 노드그룹에 자원이 부족하면 CA가 트리거 된다. CA는 AWS 의 ASG에 새로운 로드를 요청한다. ASG는 새로운노드를 생성하고 노드그룹에 추가한다. 새로 스케줄링된 노드에 Pod가 생성된다. 생략된 단계가 있지만 실제로 이 단계를 모두 거쳐야 인스턴스가 EKS에 연결되고 노드그룹에 인스턴스가 노출된다. 그렇다면 단순히 ASG에서 노드를 제거해본 경험이 있는가? 있다면 알것이다. 이건 가끔 커피한잔하고 와도 제거안된 인스턴스가 있는 경우도 있다. ...

May 12, 2023 · 1 min · 📁 AWS, Kubernetes · 🏷️ EKS, nodeless, karpenter

EKS-NodeLess-02-Fargate

# k get pod -A -o wide NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES default nginx-pod 1/1 Running 0 11m 192.168.12.217 ip-192-168-12-150.ap-northeast-2.compute.internal <none> <none> karpenter karpenter-5bffc6f5d8-6f779 1/1 Running 0 125m 192.168.12.99 fargate-ip-192-168-12-99.ap-northeast-2.compute.internal <none> <none> karpenter karpenter-5bffc6f5d8-84mjn 1/1 Running 0 130m 192.168.11.201 fargate-ip-192-168-11-201.ap-northeast-2.compute.internal <none> <none> kube-system aws-node-h5z8d 1/1 Running 0 11m 192.168.12.150 ip-192-168-12-150.ap-northeast-2.compute.internal <none> <none> kube-system coredns-fd69467b9-4nk6x 1/1 Running 0 127m 192.168.12.52 fargate-ip-192-168-12-52.ap-northeast-2.compute.internal <none> <none> kube-system coredns-fd69467b9-cqqpq 1/1 Running 0 125m 192.168.11.122 fargate-ip-192-168-11-122.ap-northeast-2.compute.internal <none> <none> kube-system kube-proxy-z8qlj 1/1 Running 0 11m 192.168.12.150 ip-192-168-12-150.ap-northeast-2.compute.internal <none> <none> 먼저 예제를 보여준다. NodeLess EKS 컨셉의 기반이다. nginx-pod / aws-node-h5z8d / kube-proxy-z8qlj 는 카펜터가 만든 노드위에 올라가 있다. ...

May 7, 2023 · 2 min · 📁 AWS, Kubernetes · 🏷️ EKS, nodeless, fargate