분류 전체보기 썸네일형 리스트형 REST API + Lambda + DynamoDB + Athena + QuickSight 연동하기 https://base.tistory.com/124 API 공공데이터 DB(AWS Aurora)에 삽입하기 API 데이터 활용을 위한 API 키 발급 DATA.GO.KR(공공데이터 포털)에 접속하여 원하는 데이터를 선택한 다음 "활용신청"을 클릭하여 API 서비스 키를 발급받는다 서비스 URL 확인 및 요청/응답 메세지 base.tistory.com 클라우드 아키텍처 아키텍처의 흐름은 다음과 같다 1. 마스크 착용 여부 및 체온 감지 데이터들을 REST API POST방식으로 값을 전달하면 API Gateway가 Lambda를 트리거하여 전달받은 값을 DynamoDB에 저장한다. 2. Athena를 활용하여 DynamoDB 데이터를 쿼리할 수 있도록 설정한다 3. Athena 데이터 커넥터를 사용하여 Q.. 더보기 쿠버네티스 컨피그맵 설정값을 포드에 전달하기 + 파일로부터 컨피그맵 생성 쿠버네티스는 YAML 파일과 설정값을 분리할 수 있는 컨피그맵과 시크릿이라는 오브젝트를 제공한다. 컨피그맵에는 일반적인 설정값을, 시크릿에는 노출되어서는 안되는 비밀값을 저장할 수 있다. 포드 생성을 위한 YAML 파일을 2개 만들지 않고 1개의 포드 YAML 파일을 사용하되 환경에 따라 다른 컨피그맵을 사용하면 된다 컨피그맵 생성 명령어 # kubectl create configmap 컨피그맵 생성(1개의 키-값) LOG_LEVEL 키의 값이 DEBUG인 컨피그맵을 생성해보자 # kubectl create configmap --from-literal LOG_LEVEL=DEBUG # kubectl describe configmap 컨피그맵 생성(여러 개의 키-값) --from-literal 옵션을 여러 .. 더보기 도커에 비트코인 서버 설치 + 블록 생성 + 계좌 간 이체 비트코인 도커이미지 가져오기 # docker pull pjt3591oo/bitcoin:0.17.01 컨테이너(bitcoin.test.com) 실행 # docker run -it --name bitcoin.test.com pjt3591oo/bitcoin:0.17.01 비트코인 노드 실행을 위한 설정 시작 쉘 스크립트 수정($HOME에 start.sh가 들어있음) root@:~# cd $HOME root@:~# vi start.sh 3번째줄 문장 마지막에 파란색 밑줄 부분을 추가한다 블록이 저장되는 위치 확인 시작 쉘 스크립트로 노드를 실행하면 생성된 블록이 .bitcoin 디렉터리 안에 있는 "blocks" 디렉터리에 보관된다 root@:~# ls .bitcoin 블록이 저장되는 위치 변경 블록이 저장되는.. 더보기 API 공공데이터 DB(AWS Aurora)에 삽입하기 API 데이터 활용을 위한 API 키 발급 DATA.GO.KR(공공데이터 포털)에 접속하여 원하는 데이터를 선택한 다음 "활용신청"을 클릭하여 API 서비스 키를 발급받는다 서비스 URL 확인 및 요청/응답 메세지 포맷 확인 참고문서를 클릭하여 "오픈 API 활용 가이드"를 살펴보자 서비스 URL 확인 요청 메세지 항목 요청 메세지를 보낼 때 서비스 URL 뒤에 포함해야할 항목들이다 응답 메세지 항목 요청 메세지를 보냈을 때 받을 수 있는 데이터들이다 요청 메세지 방식과 응답 메세지 상세내용 pageNo=1 numOfRows=10 CreateDT=20200310 endCreateDT=20200315 2020년 3월 10일 부터 2020년 3월 15일 까지의 데이터를 1페이지 당 10개의 결과가 나오도록 .. 더보기 쿠버네티스 인그레스(Ingress) 생성 + SSL/TLS 보안 연결 3개의 디플로이먼트에서 애플리케이션이 각각 생성되어 있다고 가정해보자 디플로이먼트들을 외부로 노출하려면 앞서배웠던 NodePort나 LoadBalancer타입의 서비스 3개를 생성해야 한다. 하지만 이 방법은 서비스마다 세부적인 설정(SSL/TLS 보안 연결, 접근 도메인 및 클라이언트 상태에 기반한 라우팅 등)을 할 때 추가적인 복잡성이 발생하게 되어 좋은 방법은 아니다. 인그레스 오브젝트를 사용하면 URL 엔드포인트를 단 하나만 생성함으로써 이러한 번거로움을 해결할 수 있다. 즉 3개의 서비스에 대해 3개의 URL이 각각 존재하는 것이 아닌, 인그레스에 접근하기 위한 단 하나의 URL만 존재한다. 따라서 클라이언트는 인그레스의 URI로만 접근하게 되며, 해당 요청은 인그레스에서 정의한 규칙에 따라 처.. 더보기 쿠버네티스 서비스(Service)를 이용해 포드를 외부에 노출 포드를 외부로 노출해 사용자들이 접근하거나, 다른 디플로이먼트의 포드들이 내부적으로 접근하려면 서비스(service)라고 부르는 별도의 쿠버네티스 오브젝트를 생성해야한다. 서비스의 핵심 기능으로는 여러 개의 포드에 쉽게 접근할 수 있도록 고유한 도메인 이름을 부여하고, 포드에 대한 요청을 분산하는 로드밸런서 기능을 하며 포드를 외부에 노출시킨다. 서비스를 종류별로 생성하여 포드와 연결하고 포드에 접근하는 과정을 살펴보자 사전 설정 1. 디플로이먼트 생성을 위한 YAML파일 작성 2. 디플로이먼트 생성 # kubectl apply -f ClusterIP 타입의 서비스 쿠버네티스 내부에서만 포드들에 접근할 때 사용하고 외부로 포드를 노출하지 않는다 YAML파일 작성 ClusterIP 타입의 서비스는 고유한 .. 더보기 kops를 이용해 AWS에 쿠버네티스 설치 kops는 클라우드 환경에서 쿠버네티스를 설치하도록 도와주는 도구이며 설치하는 방법은 다음 2가지 방법이 있다 - VMware에 Ubuntu를 설치하고 원격으로 AWS에서 K8s를 실행하는 방법(이번 실습 방법) - AWS에 Amazon Linux2를 설치하고 AWS에 K8s를 실행하는 방법 kops 실행 파일 내려받기 # wget -O kops https://github.com/kubernetes/kops/releases/download/v1.18.0/kops-linux-amd64 다운로드 받은 파일에 실행권한 추가 # chmod +x ./kops /usr/local/bin은 스스로 설치한 명령어를 사용할 수 있도록 하는 장소이다 (Linux 저장소에 있는 것 이외의 것을 설치했을 때) # mv ./k.. 더보기 쿠버네티스 디플로이먼트(Delpoyment) 사용하기 디플로이먼트는 레플리카셋의 상위 오브젝트이기 때문에 디플로이먼트를 생성하면 해당 디플로이먼트에 대응하는 레플리카셋과 포드도 함께 생성된다. 삭제 시에도 상위 오브젝트인 디플로이먼트를 먼저 삭제해야 레플리카셋과 포드도 삭제된다.(디플로이먼트가 있는 상태에서 레플리카셋이나 포드를 삭제해도 다시 생성됨) 디플로이먼트 YAML파일 작성(파일명: my-nginx-deployment) 레플리카셋과 다른 점은 "kind" 항목에 Delployment로 바뀐 것뿐이다 디플로이먼트 생성 # kubectl apply -f READY 항목에 3/3을 통해 3개의 포드가 정상적으로 준비되었음을 알 수 있다 사실 3개의 포드가 유지되도록 생성하는 것은 레플리카셋이기 때문에 디플로이먼트와 함께 레플리카셋도 생성되었을 것이다(빨간.. 더보기 이전 1 2 3 4 ··· 13 다음