728x90

분류 전체보기 79

Shell Script 기초(2)

Redirection Pipeline 1. Redirection 일반적으로 Communication Channels이라고 하면 사용자의 입력이 프로그램에 들어가고 프로그램의 결과가 터미널을 통해 출력된다. 입력은 '키보드', 출력은 '터미널'이라는 채널을 통해 전달이 되는데 이 전달 매체를 다른 방법으로 전환하여 전달하도록 하는 것이 Redirection이라고 할 수 있다. Communication Channels Redirection Characters 의 미 STDIN 0 표준 출력을 터미널이 아닌 파일로 출력 STDERR 2> 2>> 표준 에러 출력을 터미널이 아닌 파일로 출력 입력 mailx라는 명령을 통해 localhost에서 유저 간 메일을 주고 받는 과정에서 입력에 대한 Redirection..

Shell Script 2023.11.22

Shell Script 기초(1)

Shell 이란 변수 Metacharacters Quoting Rule Nesting Commands Alias Prompt 1. Shell 이란 쉽게 말하면 Shell 이란 사용자 명령어 해석기라고 할 수 있다. 우리가 윈도우 운영체제에서 보는 윈도우 프롬프트와 비슷하다. Shell은 사용자의 명령어를 해석하여 커널에게 전달하고 커널은 그 명령을 실행시킨다. Shell의 종류는 다양하지만 대표적으로 Bourne Shell(sh), C Shell(csh), Korn Shell(ksh), Bourne Again Shell(bash) 등이 있다. 조개가 진주를 감싸고 있듯 사용자와 운영체제 내부(커널) 사이 인터페이스를 감싸고 있기에 Shell이라는 이름이 붙었다. 2. 변수 프로그래밍 언어를 배워보신 분이..

Shell Script 2023.11.22

프로젝트 CloudFront - WAF

Cloud Front 배포 시 EKS on Fargate로 생성된 로드밸런서를 원본으로 지정 도쿄 리전과 오레곤 리전에 있는 로드밸런서 둘을 원본으로 지정 동작탭에서 원본으로 지정한 로드밸런서를 사용 이 때 메일을 보내는 람다 함수와 연결되어있기 때문에 POST 방식의 메서드가 사용가능하도록 설정되어야 정상적인 메일링 서비스 가능 Cloud Front에 WAF를 통해 특정 IP에 대해 접속이 불가능하도록 통제 일단 내 IP로 실험해보고 Athena를 통해 쿼리된 IP중 접속 빈도가 비정상적으로 많은 것을 차단하는 IP sets를 생성 생성된 IP sets는 Web ACLs에 규칙으로 적용시킨다. 정상적으로 웹에 접속되는 모습

AWS 2023.10.16

23.9.7(목) 쿠버네티스 9일차

https://kubernetes.io/ko/docs/concepts/scheduling-eviction/assign-pod-node/ 노드에 파드 할당하기 특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하는 것을 선호하도록 파드를 제한할 수 있다. 이를 수행하는 방법에는 여러 가지가 있으며 권장되는 접근 방식은 모두 레이 kubernetes.io 1. Affinity Affinity 종류 1. NodeAffinity 어느 노드에 파드를 만들 것인지 선호도를 지정 1-1. anti-affinity affinity의 반대, 선호하지 마라 2. PodAffinity 어느 파드에 컨테이너를 만들 것인지 선호도를 지정 선호도 1. required 선호되는 노드를 지정할 때 강제로 지정 2. p..

Kubernetes 2023.09.07

23.9.6(수) 쿠버네티스 8일차

https://kubernetes.io/ko/docs/concepts/configuration/configmap/ 컨피그맵(ConfigMap) 컨피그맵은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이다. 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 컨피그맵을 사용할 수 있다. 컨피그맵 kubernetes.io 1. ConfigMap 환경변수와 같은 설정값을 파드에 전달하여 적용시키기 위한 오브젝트 1. 환경변수를 deployment안에 다 포함하여 넣는 방법 cat t1_mysql_configmap.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabe..

Kubernetes 2023.09.06

23.9.4(월) 쿠버네티스 7일차

https://kubernetes.io/ko/docs/concepts/services-networking/ingress/ 인그레스(Ingress) URI, 호스트네임, 경로 등과 같은 웹 개념을 이해하는 프로토콜-인지형(protocol-aware configuration) 설정 메커니즘을 이용하여 HTTP (혹은 HTTPS) 네트워크 서비스를 사용 가능하게 한다. 인그레스 개념은 kubernetes.io ingress : 외부에서 내부로 접근하기 위한 API 오브젝트 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리함. 인그레스는 부하 분산, SSL 종료, 명칭 기반의 가상 호스팅을 제공할 수 있다. ingress 오브젝트를 사용하기 위해서 반드시 인그레스..

Kubernetes 2023.09.04

23.9.1(금) 쿠버네티스 6일차

job은 리눅스의 크론데몬과 비슷한 형태로 컨테이너의 작업예약 및 실행주기에 관여한다. https://kubernetes.io/ko/docs/concepts/workloads/controllers/job/ 잡 잡에서 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적한다. 지정 kubernetes.io apiVersion: batch/v1 kind: Job metadata: name: job-example spec: completions: 6 parallelism: 3 activeDeadlineSeconds: 15 # 15초 내로 시작하지 않으면 강제로 종료해라 template: spec: ..

Kubernetes 2023.09.01

23.8.25(금) 쿠버네티스 1일차

쿠버네티스는 그리스어로 조타수라는 의미를 가지고 있다. 쿠버네티스 기초 설정 1. 호스트 이름 변경 master, node1, node2, node3 2. 각 IP는 다음과 같다. 192.168.108.20/24 master 192.168.108.21/24 node1 192.168.108.22/24 node2 192.168.108.23/24 node3 3. root 암호 설정] echo -e 'root:dkagh1.\nroot:dkagh1.' | chpasswd 4. LVM으로 디스크 확장 (생략가능) pvcreate /dev/sdb vgextend ubuntu-vg /dev/sdb lvextend -l +100%FREE -n /dev/ubuntu-vg/ubuntu-lv # 사이즈 재조정 resize2f..

Kubernetes 2023.09.01

23.8.28(월) 쿠버네티스 2일차

쿠버네티스 사용법 k get pod -o yaml kubectl logs nginx k get nodes,pods,deployments,namespaces # 모든 정보 출력 k delete pods --all # 모든 pods 삭제 # 기본적으로 pod을 삭제하더라도 deploy가 남아있기 때문에 다시 재생성된다. k delete deploy --all # 모든 deploy 삭제 kubectl run webserver --image=nginx:latest --port=80 kubectl exec webserver -- cat /etc/hostname kubectl exec webserver -- cat /etc/hosts k exec -it webserver -- /bin/bash # webserver..

Kubernetes 2023.09.01

23.8.29(화) 쿠버네티스 3일차

Local : pods를 특정 node로 지정해서 사용가능 persistant : cluster의 생명주기와 동일 cluster 내 의 pod 사이에 공유가능 volume : pod의 생명주기와 동일 pod내의 Container끼리 공유가능 PV(persistant volume) PVC(persistant volume claim) : PV와 Pod을 매핑하고 연결해주는 역할 (중간자 역할) #--------------------------vl-emptydir.yaml-------------------------- cat vl-emptydir.yaml apiVersion: v1 kind: Pod metadata: name: sidecar spec: containers: - name: app image: b..

Kubernetes 2023.09.01
728x90