Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
AWS CLI로 S3 버킷 생성 후 파일 업로드하기 위해서, EC2를 하나 만들어서 접속한다. (이러한 CLI를 개인 PC에 설치하여서 진행할 수도 있다.) https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface 이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이 docs.aws.amazon.com EC2 인스턴스는 아래와 같이 S3를 관리할 수 있는 Role이 부여돼야 ..
자격 증명 기반 정책 IAM 사용자를 대상으로 특정 작업 수행할 수 있도록 정책을 연결해 준다. 리소스 기반 정책 리소스에 설정하는 정책이다. 대표적으로 Amazon S3 버킷, Amazon SQS 대기열 등에 설정할 수 있다. 이를 사용하면 특정 role이나 user를 대상으로 사용할 수 있는 권한을 설정해 줄 수 있다. 두 정책에는 우선 순위는 없다. 명시적 거부가 최우선으로 거부되기 때문에 허용을 하더라도 거부가 있다면 거부된다. 허용에 대한 언급이 없는 경우는 암시적으로 거부된다. 말로만 들으면 이해하기가 힘들 수 있으니 S3 버킷에 리소스 기반 정책을 설정해 보자. S3의 버킷에 리소스 기반 정책을 부여 일단 Role을 준비했다 가정하고, S3 버킷을 만들어보자. 나머지는 기본 세팅을 그대로 두..
VPC( Virtual Private Cloud ) AWS의 VPC는 논리적으로 격리된 네트워크 서비스이다. VPC는 온프레미스에서 사용하는 사설 네트워크와 비슷한 용도로 사용한다. 따라서 VPC 또한 사설 IP를 사용해서 생성하게 된다. 하나의 VPC 내부에서는 논리적인 Router가 동작한다. subnet은 VPC 내부의 IP 대역대를 가지도록 세팅되고, 각각이 라우팅 테이블을 가지고 있다. 아래의 그림을 확인해 보자. 여기서 public subnet만이 외부로 접속할 수 있도록 해야 하기 때문에, Public subnet의 라우팅 테이블만 모든 트래픽을 Internet GateWay로 보내도록 0.0.0.0 => IGW 경로를 추가한다. 즉, public Subnet이라는 네트워크가 따로 존재하는 ..
회사에서는 로그를 남기기 위해 각각의 사원에게 IAM user를 할당한다. 하지만 모든 IAM user에게 일일이 권한을 부여하고 관리하는 것을 쉽지 않다. 따라서 user group라는 IAM 사용자 집합으로 그룹 내의 사용자들의 권한을 지정할 수 있다. 간단하게 user를 group에 권한 추가해보자. S3 그룹은 S3 읽기 권한을 가진다. 이 그룹에 사용자를 추가하자. 이제 그룹 내 정상적으로 추가가 된다. IAM login URL로 접속 사용자의 보안 자격 증명 탭에서 콘솔 로그인 링크가 확인된다. 이 링크로 IAM 유저에 바로 접속할 수 있다. 이 유저는 S3 그룹에 속했기 때문에, read 권한을 상속받아 S3의 버킷 리스트들이 보인다. 반면에 ec2는 권한이 없기 때문에 읽을 수 조차 없다...
참조:https://captcha.tistory.com/78 [#1. Kubernetes 시리즈] 3. CNI란? (Container Network Interface) 이번 글에서는 쿠버네티스를 설치하기 전에 간략하게 CNI(Container Network Interface)에 대하여 알아보겠습니다. 무작정 문서대로 설치만 하기 보다는 내가 설치하는 애가 무엇인지 알고 가는게 좋을 captcha.tistory.com 참조: https://coffeewhale.com/packet-network2 [번역]쿠버네티스 패킷의 삶 - #2 쿠버네티스 패킷의 삶 #1에서 살펴 봤듯이, CNI plugin은 쿠버네티스 네트워킹에서 중요한 역할을 차지합니다. 현재 많은 CNI plugin 구현체들이 존재합니다. 그 중..
Kubernetes Deployment 버전 업데이트를 위해 사용한다. Replica set의 상위 오브젝트로서 생성 시, 대응되는 Replica set도 자동 생성된다. 따라서 Replica set을 생성하는 경우는 거의 없다. Deployment는 애플리케이션을 업데이트할 때 레플리카셋의 변경 사항을 저장하는 리비전을 남겨 롤백을 가능하게 해주고, 무중단 서비스를 위한 롤링 업데이트 전략을 적용할 수 있다. 하나씩 없애고 v2에 새로 생성한다. 트래픽을 점차 v2 pod들로 옮겨주면, 서비스 중단 없는 무중단 서비스가 실현이 된다. Deployment 생성해 보기 # deployment.yaml cat > deployment.yaml apiVersion: apps/v1 kind: Deployment#..
Kubernetes Replicasets 일정 개수의 파드를 유지하는 컨트롤러이다. 동일한 여러 개의 파드를 유지해야 할 때, 파드들을 일일이 정의해서 직접 생성하기 보다는 Replica set이라는 오브젝트를 사용한다. Replicaset을 사하면 더 이상 파드의 상태를 관리할 필요가 없어지고, Replica set이 자동으로 일정 개수만큼 유지해 준다. Replica set 또한 Pod처럼yaml파일로 정의 후에 apply 시키면 된다. # 테스트 레플리카 # replicaset.yaml cat > replicaset.yaml apiVersion: apps/v1 kind: ReplicaSet# kind가 레플리카 셋 metadata: name: replicaset-cloud spec:# 레플리카의 스..
파드의 상태(STATUS) 파드는 자신의 상태를 스스로 판단해서 모니터링에게 데이터 던져줄 수 있다. • Pending: 포드를 생성하는 요청이API서버에의해승인됐지만, 어떠한 이유로인해아직 실제로 생성되지 않은 상태입니다. 예를 들어, 포드가 아직 노드에 스케줄링되지 않았을 때는 포드의 상태가 Pending으로 출력됩니다. • Running: 포드에 포함된 컨테이너들이 모두 생성돼 포드가 정상적으로 실행된 상태입니다. 일반적으로 쿠버네티스에서 바람직한 상태(Desired)로 간주하는 포드의 상태 • Completed: 포드가 정상적으로 실행돼 종료됐 음을 의미합니다. 포드 컨테이너의 init 프로세스가 종료코드로서0을 반환한 경우에 해당 • Error: 포드가 정상적으로 실행되지 않은 상태로 종료됐 음..
Pod 생성 후 동작 # 파드 실행 kubectl run myweb --image=nginx 현재 세팅 중인 디폴트 Namespace에 생긴다. kubectl delete pod myweb yaml 파일로 실행 한땀한땀 커맨드 넣기는 명령형은 힘들다. 그냥 yaml로 만들어 버리자. k run myweb --image nginx --dry-run -o yaml --dry-run 옵션은 실제로 만드는게 아니라 리허설 옵션 실행되지 않고 yaml 파일만 생성한다. 없는 내용은 디폴트값으로 만들어진다. apiVersion은 적합한 것으로 맞춰지게 생성된다. # yaml 파일에 출력 결과 저장 k run myweb --image nginx --dry-run -o yaml > myweb.yaml #yaml 파일로..
Kubectl 기본 명령어 마스터 노드에 설치한, 쿠버네티스의 클라이언트인 kubectl의 기본 명령어들을 살펴보자. #node 확인 kubectl get nodes kubectl get nodes -o wide #추가적인 정보도 확인 kubectl get pod 현재 네임 스페이스에 파드를 출력하지만 파드가 없다. kubectl get pod -A 모든 네임스페이스의 파드를 출력 #특정 네임스페이스의 파트 출력 kubectl get pod -n kubectl-calico 사용하기 # kubectl-calico 명령어 사용을 위한 세팅 curl -L https://github.com/projectcalico/calico/releases/latest/download/calicoctl-linux-amd64 ..