리전(Region) 선택하기
·
Server&load/AWS
AWS 에서 리전 선택하기EC2 서비스로 이동하기.대시보드 - 리전 선택하기 - 서울 선택하기리전이란?인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다.EC2로 생각해봤을 때, 컴퓨터를 빌려서 원격으로 접속하여 사용하는 서비스이다.여기서 빌려서 쓸 수 있는 컴퓨터가 전세계적으로 다양하게 분포되어있다.이 컴퓨터가 위치한 위치를 AWS 에서 Region 이라고 한다.Region 의 특징전세계적으로 다양한 Region 을 가지고 있다.고유의 이름을 가지고 있다.Region 의 선택 기준애플리케이션을 사용할 때, 네트워크를 통해 통신하게 된다.사용자와 애플리케이션 실행 컴퓨터 위치가 멀수록 속도가 느려진다.전기선을 통해 데이터를 송수신하게 되는데, 멀수록 시간이 오래걸린다.즉, 애플리케이션 주 사..
배포와 EC2에 대해서
·
Server&load/AWS
배포다른 사용자들이 인터넷을 통해 사용할 수 있도록 만드는 것을 의미함.localhost 란 다른 컴퓨터에서는 접근이 불가능한 주소이다.배포를 하면 ip or domain(www.naver.com) 과 같은 고유 주소를 부여받고다른 컴퓨터에서 그 주소로 접속할 수 있게 된다.어떠한 서비스를 완성했따면 배포를 진행해야 한다.EC2EC2 란?컴퓨터를 빌려 원격으로 접속하여 사용하는 서비스를 의미한다. (하나의 컴퓨터를 의미함)EC2 를 배우는 이유컴퓨터에 서버를 배포해 다른 사용자들이 인터넷을 통해 접근할 수 있게 할 수 있지만24시간 컴퓨터를 켜놔야 하며, 보안적으로 위험할 수 있다.AWS EC2 라는 컴퓨터를 빌려서 사용하는 것이 통상적이다.로깅, 오토스케일링, 로드밸런싱 등의 부가 기능을 함께 사용한다..
백엔드(Spring boot) 서버에 환경변수 등록하여 사용하기
·
쿠버네티스/cka
이전 포스팅에서 1.2 까지 진행하기AppController.java 생성하기package com.example.demo;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class AppController { @Value("${MY_ACCOUNT:default}") // `:` 앞 공백 제거 private String myAccount; @Value("${MY_PASSWORD:..
Pod, deployment, service 개념 정리
·
쿠버네티스/cka
쿠버네티스에서의 핵심 개념컴퓨터 안에 kubernetses 환경을 구축한다.그 안에 Pod 단위의 프로그램을 띄운다.서비스를 실행할 때 pod를 직접 띄울 일이 거의 없다.deployement 를 사용하여 여러개의 pod를 띄운다.위 pod를 묶은 것을 `레플리카셋(replica set)` 이라고 한다.deployement 가 레플리카셋을 관리하고 레플리카셋은 pod 여러개를 관리한다.deployement 를 사용하여 여러개의 pod를 관리한다.서비스를 사용하여 외부에서 요청을 보내도록 한다.외부로부터 요청을 받아주는 역할도 하지만, 여러 파드로부터 트래픽을 균등하게 분배해주는 로드밸런서 역할을 한다.쿠버네티스에서는 service, depoloyment, pod 와 같은 리소스를 object 라고 부른다.
Deployement, service를 활용하여 서버 띄워보기 명령어 정리!
·
쿠버네티스/cka
Pod 관련 명령어파드 조회kubectl get pods 파드 내부로 접속kubectl exec -it {{pod명}} -- bash파드 포트 포워딩kubectl port-forward pod/{{pod명}} {{local port}}:{{pod-port}}파드 삭제kubectl delete pod {{pod명}}디플로이먼트 관련 명령어디플로이먼트 조회kubectl get delployment디플로이먼트 삭제kubectl delete deployement {{deployement명}}서비스(Service) 관련 명령어서비스 조회kubeclt get service서비스 삭제kubectl delete service {{service명}}공통 명령어매니페스트 파일에 적혀있는 리소스 생성kubectl apply..
디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기
·
쿠버네티스/cka
기존에 띄워놓은 네임스페이스 (pod, deployment, service ...) 삭제하기kubectl delete all --all : 기존의 모든 네임스페이스를 삭제한다.디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기요구사항디플로이먼트 : Pod 를 4개 띄운다서비스 : localhost:31000 에서도 통신할 수 있도록 한다.프로젝트 실행시켜보기npm 설치하기 : npm inpm 실행하기 : npm run start접속하기디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄우기Dockerfile 생성하기FROM nodeWORKDIR /appCOPY . .RUN npm installRUN npm run buildEXPOSE 3000ENTRYPOINT [ "node", ..
VS code 에서 새로운 버전의 서버로 업데이트 시키기
·
쿠버네티스/cka
소스코드 일부 변경src\main\java\com\example\demo\AppController.java 내용 수정return "Hello world!"; → return "Version 1.0";새 버전의 서버로 업데이트 하기빌드 진행 : gradlew clean build빌드를 하면 jar 파일이 생성됨해당 ar파일을 기반으로 이미지를 만든다.이미지 빌드하기매니페스트 파일을 수정하고 적용하기.demo\spring-deployment.yaml 내용 수정image: spring-server → image: spring-server:1.0매니페스트 파일 적용하기 : kubectl apply -f {{매니페스트 파일}}접속하기
서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)
·
쿠버네티스/cka
Self-healing 이란?서버가 죽었을 때 자동으로 복구하는 기능을 의미한다.즉, Pod 가 죽었을 때, Pod 가 스스로 복구해야 한다.pod안에 container 이 실행되고, container 안에 특정 프로그램이 실행되고 있다.즉, container 로 실행되고 있다는 것은 docker 도 실행되고 있다는 것을 의미한다.이때 docker kill {{docker-id}} 를 작성했을 때, Pod는 삭제되지 않는다.특정 환경에서 일부 Pod 의 컨테이너를 종료시켜보기docker kill {{docker-id}}kubectl get pods Pod가 사라지지 않은것을 확인할 수 있다.RESTARTS 가 1이 늘어난 것을 확인할 수 있다.이전에 container 이 죽었는데, 죽은 것을 Pod 가 ..