반응형

1. 시험환경

    ˙ docker-compose 

 

2. 목적

    ˙ docker-compose 주요 명령어를 알아보자.

 

3. 적용

    ① 프로젝트 목록 관련

        - 실행중인 프로젝트 목록 확인 : $ docker-compose ls

        - 전체 프로젝트 목록 확인 : $ docker-compose ls -a

 

    ② 프로젝트 실행 및 종료하기

        - 프로젝트 실행(Foreground) : $ docker-compose up

        - 프로젝트 실행(Background) : $ docker-compose up -d

        - 프로젝트 이름 지정 : $ docker-compose  -p [project-name] up -d

        - 프로젝트 종료(컨테이너, 네트워크) : $ docker-compose down

        - 프로젝트 종료(컨테이너, 네트워크, 볼륨) : $ docker-compose down -v

 

    ③ 컨테이너 서비스 Scale Up

        - 서비스명 확장 : $ docker-compose up --scale [service-name]=3

 

    ④ 기타

        - 서비스 로그 : $ docker-compose logs

        - 이벤트 로그 : $ docker-compose events

        - 이미지 목록 : $ docker-compose images

        - 실행중인 컨테이너 목록 : $ docker-compose ps

        - 실행중인 프로세스 목록 : $ docker-compose top

 

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ python, venv, pip

 

2. 목적

    ˙ 프로젝트 별 패키지 버전을 관리 하기 위해 파이썬 가상화 환경에서 개발한다.

    ˙ venv 관련 명령어 및 패키지 관리법에 대하여 알아보자.

 

3. 적용

    ① 파이썬이 설치되어 있어야 한다.

        - 참고 : https://languagestory.tistory.com/31

 

Window 파이썬(python) 설치하기

1. 시험환경 ˙ 윈도우 ˙ 파이썬 2. 목적 ˙ 윈도우 운영체제에서 파이썬을 설치한다. 3. 적용 ① 파이썬 공식 사이트에 접속하여 "Downloads" 메뉴를 클릭한다. - https://www.python.org/ ② 설치 프로그램이

languagestory.tistory.com

 

    ② 생성 : 가상환경을 생성하면 "가상환경-이름"으로 하위폴더가 생성된다.

        - python -m venv [가상환경-이름]

        - 보통, [가상환경-이름].venv로 지정하는 것이 관례이다.

 

    ③ 활성화 : 커맨드라인 맨 왼쪽에 (가상환경-이름)이 붙는 것을 확인하면 활성화 모드로 진입한다.

        - [가상환경-이름]/Scripts/activate.bat

 

    ④ 활성화 모드에서 "deactivate" 명령어를 입력하면 비활성화 된다.

 

    ⑤ 가상환경 내에서 패키지 설치/삭제

        - 가상환경 활성화 상태에서 "pip install" 명령어로 패키지 설치
        - 가상환경 활성화 상태에서 "pip uninstall" 명령어로 패키지 삭제

        - 가상환경 생성 폴더 내에서 작업한 것에 유의한다.

 

    ⑥ 설치 패키지를 확인하고 다른 환경에서도 동일한 패키지를 일괄 설치할 경우의 명령어를 실행한다.

        - pip freeze
        - pip freeze > requirements.txt
        - pip install -r requirements.txt

가상환경에서 설치한 패키지만 포함

 

     가상환경 및 관련 패키지 삭제

        - 폴더를 삭제한다 :  [가상환경-이름] 폴더

 

반응형
반응형

1. 시험환경

    ˙ AWS ECR, EC2

    ˙ Docker

    ˙ 우분투(ubuntu) 리눅스

 

2. 목적

    ˙ AWS ECR에 저장된 이미지를 EC2(ubuntu)에서 다운로드(pull) 받는 방법을 알아보자.

    ˙ 이와 관련된 AWS Cli 명령어를 알아보자.

 

3. 적용

    ① ECR 권한을 가진 IAM 사용자의 AccessKey, SecretKey 등 입력한다.

        - IAM 사용자 등록 : $aws configure

        - 자격증명 확인 : $aws sts get-caller-identity

 

    ② ECR에 접근 가능한 docker client 승인 토큰을 발급 받는다.

        - $ aws ecr get-login-password --region [region-이름] | docker login --username AWS --password-stdin [계정-ID].dkr.ecr.[region-이름].amazonaws.com

 

    ③ aws-cli 명령어를 통해 ECR repository 목록 조회한다.

        - $ aws ecr describe-repositories

 

    ④ 특정 repository 정보를 조회한다.

        - $ aws ecr describe-image --repository-name [repository-이름]

 

    ⑤ ECR Repository에서 이미지를 다운로드(pull) 한다.

        - $ docker pull [aws_ccount_id].ecr.[region-이름].amazonaws.com/[repository-이름]:[TAG]

 

4. 결과

    ˙ 다운받은 이미지를 확인한다.

        - $ docker images

반응형
반응형

1. 시험환경

    ˙ AWS EKS

    ˙ Ubuntu

    ˙ kubectl

 

2. 목적

    ˙ EKS Cluster 및 NodeGroup 설치 완료 후 최초 접속을 위한 설정을 알아보자.

    ˙ EKS Cluster와 통신하여 기초 명령어 동작을 확인한다.

 

3. 적용

    ① AWS EKS Cluster를 생성한다.

    - 참고 : https://languagestory.tistory.com/276

 

AWS EKS Cluster 생성 (AWS 웹 콘솔)

1. 시험환경 ˙ AWS EKS ˙ AWS Web Console 2. 목적 ˙ AWS 웹 콘솔에 접속하여 EKS Cluster를 설치한다. 3. 적용 ① EKS Control Plane에서 사용할 역할(Role)을 생성한다. - 참고 : https://languagestory.tistory.com/275 EKS Contro

languagestory.tistory.com

 

    ② AWS EKS NodeGroup을 생성한다.

    - 참고 : https://languagestory.tistory.com/279

 

AWS EKS NodeGroup 생성 (AWS 웹 콘솔)

1. 시험환경 ˙ AWS EKS ˙ AWS Web Console 2. 목적 ˙ AWS 웹 콘솔에 접속하여 EKS NodeGroup을 설치한다. 3. 적용 ① EKS Cluster를 생성한다. - 참고 : ② EKS Cluster "컴퓨팅" 탭에서 "노드 그룹 추가" 버튼을 클릭한

languagestory.tistory.com

 

    ③ EKS 접속을 위한 Remote PC에 접속한다.

        - 여기서는 Ubuntu EC2를 사용한다.

 

    ④ Remote PC에 Kubectl을 설치한다.

        - 참고 : https://languagestory.tistory.com/192

 

우분투(ubuntu) 리눅스(linux) 환경에서 kubectl 설치하기

1. 시험환경 ˙ 우분투(ubuntu) 리눅스(linux) v20.04 ˙ kubectl 2. 목적 ˙ 우분투(ubuntu) 리눅스(linux) 환경에서 kubectl 설치하는 방법을 알아보자. 3. 적용 ① kubernetes 사이트에서 설치 가이드를 제공한다. - U

languagestory.tistory.com

 

    ⑤ Remote PC에 AWS CLI를 설치한다.

        - 참고 : https://languagestory.tistory.com/249

 

우분투(Ubuntu) 환경에 AWS CLI 설치하기

1. 시험환경 ˙ Ubuntu(우분투) 리눅스 2. 목적 ˙ Ubuntu(우분투) 리눅스 환경에서 AWS CLI 최신 버전 설치하는 방법을 알아보자. 3. 적용 ① AWS 공식문서에 운영체제별 AWS CLI 설치방법이 소개되어 있다. -

languagestory.tistory.com

 

    ⑥ AWS 자격증명 인증을 한다.

        - 참고 : https://languagestory.tistory.com/269

 

AWS CLI 자격 증명 (aws configure)

1. 시험환경 ˙ 윈도우 ˙ aws cli 2. 목적 ˙ aws configure 명령어를 이용하여 IAM 사용자 자격증명하는 방법을 알아보자. ˙ 여러 개의 자격 증명을 등록하고 기본값을 설정하는 방법을 알아보자. 3. 적용

languagestory.tistory.com

 

    ⑦ Remote PC에서 EKS 접속을 위한 설정을 한다.

        - Kubectl 사용을 위한 Kubeconfig 설정 : aws eks update-kubeconfig --region [region-이름] --name [eks-cluster-이름]

        - 접속 서버 API 등 EKS 자원 호출을 위한 정보를 확인 : cat /home/ubuntu/.kube/config

 

4. 결과

    ˙ kubectl 명령어를 사용하여 EKS Cluster와 통신을 확인한다.

          - EKS Worker Node 목록 : kubectl get nodes

          - EKS 기동중인 pod 전체 목록 : kubectl get pod -A

반응형
반응형

1. 시험환경

    ˙ AWS EKS

    ˙ EKS NodeGroup

 

2. 목적

    ˙ EKS NodeGroup 생성시 발생한 Error 로그를 확인하고 문제점을 해결한다.

 

3. 적용

    ① EKS NodeGroup 생성 실패

        - EC2에 public IP를 할당 받기 위해서는 서브넷에서 "public IP Address 자동 할당"을 enabeld 하라고 명시

 

    ② 해결책) 안내에 따라 Subnet의 설정을 변경한다.


     에러 로그

 

     해결책)

VPC, Subnet 등 모든 인프라 삭제 후 다시 시작

반응형
반응형

1. 시험환경

    ˙ AWS EKS

    ˙ AWS Web Console

 

2. 목적

    ˙ AWS 웹 콘솔에 접속하여 EKS NodeGroup을 설치한다.

 

3. 적용

    ① EKS Cluster를 생성한다.

        - 참고 : 

 

 

    EKS Cluster "컴퓨팅" 탭에서 "노드 그룹 추가" 버튼을 클릭한다.

 

    EKS NodeGoup 이름 / 역할 등 구성정보를 입력한다.

 

    NodeGoup 컴퓨팅 구성 정보를 입력한다.

 

    NodeGroup Scale In/Out 구성 정보를 입력한다.

 

    EC2 인스턴스가 배치될 Subnect을 설정한다.

        - production에서는 보통 private Subnet으로 운영한다.
        - 여기서는, 테스트 목적이므로 public subnet 사용한다.

 

    현재까지 구성한 설정정보 검토 및 EKS NodeGroup을 생성한다.

 

    EKS NodeGroup을 활성화 하려면 시간이 소요된다.

 

4. 결과

    ˙ NodeGroup이 활성화된 것을 확인한다.

 

    ˙ AutoScaling그룹과 EC2가 생성된 것을 확인한다.

 

반응형
반응형

1. 시험환경

    ˙ AWS EKS

    ˙ AWS Web Console

 

2. 목적

    ˙ AWS EKS NodeGroup 설치를 위한 사전 작업을 준비한다.

    ˙ EKS Cluster의 NodeGroup이 사용할 Service Role 생성한다.

    ˙ 생성한 IAM Service Role에 정책(policy)을 부여한다.

         - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
         - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
         - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

 

3. 적용

    ① IAM 역할을 생성한다.

 

    ② 신뢰할 수 있는 엔터티 유형을 설정한다.

        - 방법 1) "AWS 서비스" → 사용 사례로 "EC2" 선택

 

        - 방법 2) "사용자 지정 신뢰 정책" → 직접 입력

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "Service":"ec2.amazonaws.com"
         },
         "Action":"sts:AssumeRole"
      }
   ]
}

 

    ③ Policy를 추가한다.

        - "eks" 키워드로 필터링해서 "AmazonEKSWorkerNodePolicy"와 "AmazonEKS_CNI_Policy" 추가

        - "ec2container" 키워드로 필터링해서 "AmazonEC2ContainerRegistryReadOnly" 추가

 

 

    ④ Role 이름을 부여한다.

 

    ⑤ 생성된 역할(Role)을 클릭한다.

 

 

 

4. 결과

    ˙ 역할에 부여된 정책(policy)을 확인한다.

        - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
        - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
        - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

반응형
반응형

1. 시험환경

    ˙ AWS EKS

    ˙ AWS Web Console

 

2. 목적

    ˙ AWS 웹 콘솔에 접속하여 EKS Cluster를 설치한다.

 

3. 적용

    ① EKS Control Plane에서 사용할 역할(Role)을 생성한다.

        - 참고 : https://languagestory.tistory.com/275

 

EKS Control Plane 사용을 위한 IAM Role 생성

1. 시험환경 ˙ AWS EKS ˙ AWS Web Console 2. 목적 ˙ AWS EKS Cluster 설치를 위한 사전 작업을 준비한다. ˙ EKS Cluster의 Control Plane이 사용할 Service Role 생성한다. ˙ 생성한 IAM Service Role에 정책(policy)을 부여한

languagestory.tistory.com

 

    ② EKS Control Plane에서 사용할 보안그룹(Security Group)을 생성한다.

        - 참고 : https://languagestory.tistory.com/277

 

EKS Cluster 사용을 위한 보안그룹(Security Group) 설정

1. 시험환경 ˙ AWS EKS ˙ AWS Web Console 2. 목적 ˙ EKS Cluster 설치를 위한 사전 준비 작업이다. ˙ EKS Cluster 생성시 Control Plane에서 사용할 보안그룹을 생성한다. 3. 적용 ① EKS Cluster에 적용할 보안 그룹을

languagestory.tistory.com

 

    ③ EKS Cluster 이름 / 버전 / 역할 등 구성정보를 입력한다.

 

    ④ EKS NodeGroup이 위치할 VPC / 서비스 / 보안그룹 등을 설정한다.

        - 서브넷은 반드시 2개의 이상의 Multi AZ로 구성해야 EKS Cluster가 생성된다.

        - production에서는 보통 private Subnet으로 운영한다.
        - 여기서는, 테스트 목적이므로 public subnet 사용한다.

 

    ⑤ EKS Cluster 엔드포인트를 설정한다.

        - EKS ControlPlane ENI를 "Public Subnet"으로 설정한 경우,

        - "퍼블릭 및 프라이빗"으로 허용하는 것이 NodeGroup과 통신할 때 원활하다.

 

    ⑥ 로깅을 구성한다.

        - ControlPlane의 로그를 CloudWatch로 전송 설정

        - EKS Cluster가 생성되면 Container를 배포하고 실행시키는 Data-Plane 뿐만 아니라,
        - EKS Cluster를 기동 및 운영하기 위한 요소들이 AWS에서 자체적으로 관리되어 사용자들에게는 접속 및 접근이 제한된

           Control-Plane 영역으로 분리 되어 있다.

        - Control-Plane에서 장애가 발생하면 AWS에서 자동적으로 조치되는 경우도 있지만,
           일반 사용자는 조치가 어렵기 때문에 AWS에 Case-Open 요청을 위해 로깅 부분을 활성화한다.

        - 여기서는 비용 문제로 비활성화 상태로 설정한다.

 

    ⑦ 추가 기능을 선택한다.

 

    ⑧ 선택한 추가기능의 버전을 선택한다.

 

    ⑨ 현재까지 구성한 설정정보 검토 및 EKS Cluster를 생성한다.

 

    ⑩ EKS Cluster 생성을 완료하려면 10분 이상 소요된다.

 

4. 결과

    ˙ EKS Cluster가 활성화된 것을 확인한다.

 

반응형

+ Recent posts