본문 바로가기
728x90
반응형

개발17

docker, k8s 네트워크 뜯기(0) - 소개 # 계속 작성될 글입니다! TODO: 소개 더 작성! docker와 k8s는 어떻게 외부와 연결되고 서로 통신할까. 뜬금없이 docker, k8s를 사용하다가 갑자기 궁금해졌습니다. docker를 이용하여 프로젝트의 CICD를 만들었지만 실제로 어떻게 통신을 하는건지 잘 확인하지는 못했습니다. 궁금했던 내용이지만 뒤로 밀려있던 부분이었는데 블로그에 정리해보면서 어떻게 docker와 k8s의 네트워크가 동작하는지 확인해보려 합니다. 책에서 잠깐 docker 네트워크까지 보기는 했었지만, 그저 이런 기능이 있구나 하고 넘어갔습니다. 이번에는 docker의 네트워크부터 출발해서 k8s의 통신까지 진행해보려고 합니다. 이 한 문장을 이해하기 위해, 눈으로 보기 위해 했던 과정을 소개해보려고 합니다. 네트워크를 .. 2023. 3. 5.
EC2 기반 ECS 서비스 이용해보기(3)-오류 관련 사항 (1)에서 ECS를 이용하기 위한 사전 준비, (2)에서 본격적인 ECS 서버 만들기를 진행해봤습니다. 이번에는 ECS를 이용하면서 만난 오류 관련 사항을 서술해보겠습니다. - ECS 환경변수 세팅을 S3 파일에 .env 파일을 이용해서 세팅을 진행하는 경우 ecsTaskExecutionRule만 수정하면 해결할 수 있습니다. ecsTaskExecutionRule에 s3 GetObject, GetBucketLocation, GetBucketLocation에 관한 정책을 JSON으로 추가해서 사용할 수 있습니다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketLocat.. 2022. 11. 18.
EC2 기반 ECS 서비스 이용해보기(2)-EC2 기반 ECS 구성 저번에는 ECS를 사용하기 위한 기본 설정을 진행했습니다. 이번에는 본격적으로 ECS를 사용해보도록 하겠습니다. 진행할 내용은 다음과 같습니다. VPC 구축 bastion, ECR 푸시용 EC2 인스턴스에 도커 설치 IAM 액세스 키 생성 & 설정 ECR에 flask이미지 푸시 EC2 로드 밸런서 구성 EC2기반 ECS 클러스터 구성 EC2 오토스케일링 / ECS 용량 공급자 설정 ECS 테스크 정의 ECS 서비스 정의 ECS 서비스 오토스케일링, EC2 오토스케일링 테스트 본격적으로 ECS를 사용하기 위한 설정을 구성해보겠습니다. 로드 밸런서부터 시작하겠습니다. 5. EC2 로드 밸런서 구성 트래픽을 처리할 로드 밸런서를 만들어보겠습니다. EC2 탭에서 로드 밸런싱 -> 로드 밸런서 -> 로드 밸런서 .. 2022. 11. 16.
EC2 기반 ECS 서비스 이용해보기(1)-사전작업 ECS기능이 좋아 보여 한 번 연습해볼까로 시작해서 프로젝트에 이용해 보게 되었습니다. 그렇게 지옥이 펼쳐졌습니다. 처음 해보니 쉽지 않았는데 자료가 많은 fargate에 비하여 난이도가 있었던 것 같습니다. 테스크 오토스케일링 개념이 어려웠고 고생길이었지만, 서비스를 이해하고 프로젝트에 적용돼서 굴러가니 짜릿함이 느껴졌네요. 그래서 한 번 ECS를 이용하는 실습을 포스팅으로 남겨보려 합니다. 다음 차례로 구성할 것 같습니다. 볼드체는 이번에 진행할 내용입니다. VPC 구축 bastion, ECR 푸쉬용 EC2 인스턴스에 도커 설치 IAM 엑세스 키 생성 & 설정 ECR에 flask이미지 푸시 EC2 로드 밸런서 구성 EC2기반 ECS 클러스터 구성 EC2 오토스케일링 / ECS 용량 공급자 설정 ECS.. 2022. 11. 13.
golang generic을 이용한 여러 타입 슬라이스로부터 구조체 슬라이스 생성하기 같은 크기, 다른 데이터 타입의 슬라이스가 여럿 존재할 때 interface와 tamplate를 이용하여 해당 슬라이스의 원소를 구조체 멤버로 포함하는 구조체를 만들 수 있습니다. callback함수에서 스프레드 연산자로 입력을 받아 구조체를 리턴하도록 하고 템플릿 슬라이스를 리턴하는 함수를 만들어 callback을 입력 파라미터로 선언해서 구현할 수 있습니다. package main import "fmt" type TmpType struct { Integer int String string SubStruct SubType } type SubType struct { String1 string String2 string } func main() { a := ConvertValueToInterface([]i.. 2022. 10. 10.
golang http request template golang으로 http request를 보내거나 개발형, 코딩 테스트(누가 근데 golang쓰긴 하겠냐마는...)를 준비할 때 쓸 수 있는 템플릿입니다. golang으로 리퀘스트를 보낼 때 json 직렬화, byte string 변환과 같은 과정이 번거로워서 간단하게 구현해보았습니다. CallAPI함수에 response 타입을 넣고 method, uri, header, body를 명시하면 결과를 리턴하도록 간단하게 net/http 기반으로 외부 라이브러리 없이 구현했습니다. package main import ( "bytes" "encoding/json" "io" "net/http" ) const ( GET = "GET" POST = "POST" PUT = "PUT" DELETE = "DELETE" ).. 2022. 10. 9.
컨테이너 환경에서 aws dynamo DB 구동 맥에서 dynamoDB를 컨테이너 환경에서 실행한다. aws cli도 컨테이너에서 테스트해볼 생각이었다. 1. dynamoDB 컨테이너 띄우기 docker pull amazon/dynamodb-local docker run -d -p 8000:8000 amazon/dynamodb-local 이러면 다이나모는 끝. 2. dynamoDB 접속할 ubuntu 도커 컨테이너 구성 우선 dynamoDB에 접속할 클라이언트 Dockerfile을 다음처럼 작성했다... 최적화같은거 안 하고 일단 테스트를 하기 위해 이렇게 진행했다. FROM ubuntu:20.04 RUN apt update RUN apt install -y sudo curl unzip less RUN curl "https://awscli.amazon.. 2022. 7. 25.
728x90
반응형