전체 글

DevOps/AWS

iam RBAC 실습

eks에선 iam을 RBAC 구성에 사용할 수 있다. $ aws eks update-kubeconfig --name 위 명령어 입력 시 현재 aws sts get-caller-identity 를 통해 확인되는 iam으로 ~/.kube/config에 파일이 생성된다. 때문에 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 환경변수 설정 시 해당 iam으로 구성되고 또한 update-kubeconfig 뒤에 —profile을 붙여 이미 configure 된 iam을 사용할 수도 있다. 다만, 현재는 새로운 Role 구성 테스트이므로 eks를 생성한 계정으로 kube config를 생성한다. k8s에서 role 구성 rbac.yaml apiVersion: v1 kind: Namespa..

DevOps/k8s

EKS VPC CNI

Amazon VPC CNI plugin for kubernetes EKS의 각 EC2에 배포되어 추가적인 ENI를 attach 함으로써각 Pod 및 서비스에 할당한다. 즉 EKS에서 실행시킨 pod의 내부 IP 주소(ex. 10.0.0.4)를 할당하기 위해 ENI를 추가한다는 것이다. 장점 기존에 사용하던 overlay network처럼 IP를 할당하는 데에 캡슐화하는 overhead가 발생하지 않는다. 단점 instance 유형에 따라 ENI를 attach 할 수 있는 상한선이 정해져있으므로 각 instance에 대해서 이를 극복하는 추가적인 할당이 불가능하다. Terraform에서 구성 방법 module "vpc_cni_irsa" { source = "terraform-aws-modules/iam/a..

Database

Partition Pruning

Partition Pruning? SQL을 실행하는 시점에 파티션 세그먼트를 액세스 대상에서 제외시키는 기능 기본 파티션 Pruning 정적 파티션 프루닝 파티션 키 컬럼을 상수 조건(ex. where 등록일자 = to_date(’20230824’, ‘YYYYMMDD’))으로 조회할 때 작동. 실행계획의 Pstart와 Pstop 칼럼에 액세스할 파티션 번호가 출력된다. 정적 파티션 Pruning 예시 SQL> Select count(*) from t Where no between 30 and 50; -------------------------------------------------------------------------------------------------- | Id | Operation ..

Database

세션 커서, 애플리케이션 커서에 대해

공유 커서 SQL을 하드파싱한 결과를 저장하고 있는 오라클 객체이며 SGA에 저장된다. 공유 커서는 여러 세션 간에 공유될 수 있으며 단지 데이터를 저장하고 있을 뿐이다. 실제 SQL 실행을 위해선 PGA에 적재해야한다. 만약 라이브러리 캐시에 쿼리에 대한 공유 커서 존재 시 하드 파싱이 생략된다. 세션 커서 세션에서 쿼리를 실행하기 위해 공유 커서로부터 값을 읽어들인 값과 그 밖에 세션에 필요한 각종 상태 값을 저장하고 있는 오라클 객체이다. PGA에 존재하므로 다른 세션과 공유할 수 없으며 하나의 공유 커서에 여러 개의 세션 커서가 연결될 수 있고 서버나 세션 파라미터 설정 시 세션 커서를 사용하고 난 뒤에도 메모리에 캐싱해둘 수 있다. 만약 세션 커서가 캐싱되어 있다면 라이브러리 캐시에서 공유 커서..

DevOps/k8s

k8s dns ndots

ndots? ndots란 FDQN으로 인지하기 시작하는 .(dot)의 개수이다. $ cat /etc/resolv.conf search default.svc.cluster.local svc.cluster.local cluster.local ap-northeast-2.compute.internal nameserver 10.100.0.10 options ndots:5 위와 같이 조회할 수 있으며, ndots:5에서 5가 n의 역할을 하고 기본적으로 n의 기본값은 resolve.conf man 문서에서 다음과 같이 1이라 이야기한다. ndots:n sets a threshold for the number of dots which must appear in a name before an initial absolu..

DevOps/k8s

k8s의 보안

Service Account k8s에서는 권한을 제어하기 위해 UserAccount와 ServiceAccount를 제공한다. 이때 UserAccount는 GKE의 google 계정, EKS에서의 IAM 계정과 연결되어 있어 k8s 관리 대상이 아니다. UserAccount는 Cluster 수준에서 사용되며, 이에 반해 ServiceAccount는 네임스페이스에서 사용된다. 또한 어떠한 pod라도 반드시 SA가 하당되어야하며, 이를 통해 SA 기반 인증/인가를 진행하고 만약 이를 할당하지 않을 시 기본 account로 할당한다. 실습 $ k create serviceaccount sample-serviceaccount serviceaccount/sample-serviceaccount created $ k ..

xlwdn98767
개발 조무사 IT 개발 블로그