현재 카카오뱅크에서 클라우드 엔지니어(SRE)로 근무하고 있습니다. 서비스를 위한 아키텍처를 설계/제공하고, 조직에서 필요한 다양한 도구들을 만들고 제공하거나 구축하는 등의 일을 하고 있습니다.
문의: 7424069@gmail.com
강의
수강평
- [DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
- 실무에서 사용중인 AWS 클라우드 IAM 이해와 보안
- Python을 활용한 AWS FinOps 어플리케이션 제작
- 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
게시글
질문&답변
PostgreSQL 실습시 아래 오류 발생합니다.
안녕하세요.파워쉘에서는 역슬래쉬가 아니라 백틱을 사용해야 합니다. 아래 링크 탐고 부탁드려요.https://hianna.tistory.com/691아니면, 명령을 한 줄로 만들어 사용해주시기 바랍니다.관련 내용은 강의 코드들에 주석으로 넣어두겠습니다.세심히 고려하지 못해 죄송합니다.천강민 드림.
- 1
- 1
- 13
질문&답변
도커를 실행하기 위해 무엇이 더 필요한가요?
안녕하세요!Windows의 경우 운영체제 버전, WSL 또는 Hyper-V 사용 여부 등에 따라 원인이 다를 수 있기에 확실치는 않지만 몇 가지 확인 가능한 방안 설명드릴게요! (도커 데스크탑 앱이 정상적으로 설치되고 떠있다고 가정합니다. 확인 방법은 작업 관리자에서 Docker Desktop이 정상 실행중인지 확인 가능합니다.)윈도우키 -> 시스템 환경 변수 편집 -> 고급 -> 환경 변수 -> 환경 변수 편집(Path) -> C:\Program Files\Docker\Docker\resources\bin 이 등록되어 있는지 확인해주세요.https://stackoverflow.com/a/73625821위 링크 참고하시면 사진이 있습니다.만약 1번이 잘 등록되어 있다면, 컴퓨터 재부팅을 한 번 수행해주세요.재부팅 후에도 안된다면, 1번의 C:\~ 경로에 docker가 있는지 확인해주세요.3번에 docker가 없다면 정상적으로 설치되지 않은 것이고, 만약 존재한다면 해당 경로에서 터미널을 열어서 직접 실행해보시기 바랍니다.만약 4번에서 직접 실행이 된다면 1번의 환경변수가 정상적으로 동작하지 않는 것일 수 있습니다. 순서를 변경하거나 등록한 환경변수가 올바른지 다시 한 번 확인 부탁드리겠습니다. 감사합니다.천강민 드림.
- 1
- 2
- 23
질문&답변
first before
안녕하세요. 아래와 같이 설정하면 가능하긴 합니다.default: before_script: - echo "default" override: before_script: - "" script: - echo "job1 실행"정확히 어떤 것을 하시려는건지는 몰라서 기능적으로만 소개 드립니다. 결과는 아래와 같습니다.(사진)참고 부탁드립니다.
- 1
- 1
- 24
질문&답변
Private Subnet과 Gitlab
안녕하세요.질문주신 내용은 제가 제공하는 강의와 관련 없는 내용으로 보입니다.또한, 해당 내용들은 전반적인 환경에 따라 구성이나 설정이 달라질 수 있을 것 같아 제공해주신 내용만으로는 답변드리기도 어려울 것으로 보입니다.강의 내용과 관련된 질문 부탁드리겠습니다.감사합니다.
- 0
- 2
- 76
질문&답변
docker compose watch가 없는 명령어로 출력됩니다.
안녕하세요!https://docs.docker.com/compose/how-tos/file-watch/위 링크 보면 버전이 2.22.0 이상이어야 되는 것으로 보입니다.https://docs.docker.com/compose/install/linux/#update-compose위 링크 참고하셔서 업데이트 해보시기 바랍니다!감사합니다.
- 1
- 1
- 101
질문&답변
Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)
안녕하세요!디렉토리를 파일에 마운트 하려 했거나, 파일을 디렉토리에 마운트 하려 했을 때 발생하는 오류로 보입니다.file index.html index.html: HTML document text, ASCII text file index.html index.html: directory위와 같이 file 명령을 통해서,로컬 경로에 존재하는 내용이 파일인지 디렉토리인지 확인 부탁드립니다.(오류로 봐서는 index.html이 디렉토리인 것 같아 보입니다.)감사합니다.
- 1
- 2
- 197
질문&답변
깃허브 액션에서 deploy가 실패해요
안녕하세요!26err: ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory 27err: Error response from daemon: No such container: 843371319 28err: Unable to find image 'cokeholic-kim/docker-cicd-test:latest' locally질문 주신 내용의 위 부분을 봤을 때 simple-cicd 스크립트 파일의 아래 부분이 누락되어 있는게 아닌지 의심되네요.(사진)정확히 어떤 셋팅을 하셨는지를 모르는 상황이라서 위 내용 올바르게 들어가 있는지 확인 부탁드리겠습니다.위 내용 외에도 뭔가 스크립트나 도커파일 부분에서 제공해드린 것과 다른 내용이 있는걸로 보입니다. 가능하시다면 활용중이 yaml파일과 도커 파일 내용도 공유해주시면 감사하겠습니다.
- 1
- 2
- 287
질문&답변
IRSA 의 토큰이 최대 24시간인데 만료되면 어떻게 되나요?
안녕하세요! 좋은 질문 주셔서 감사합니다.먼저 아셔야 하는건 토큰을 발급하고 주입하는 기능은 k8s의 기능이라는 것 입니다.k8s 1.12 버전부터 도입된 ProjectedServiceAccountToken 이라는 기능으로, 자세한 내용은 projected volume 이라는 키워드와 함께 찾아보시길 권장 드립니다. (말 그대로 k8s의 기능이기에...)위의 기능을 AWS의 Identity providers 기능과 연계해서 사용하는게 IRSA라고 보시면 됩니다. (그리고 AWS에 등록된 프로바이더를 통해 검증하기 위해 EKS OIDC 엔드포인트는 무조건 퍼블릭인겁니다.)결과적으로 토큰의 로테이션 또한 k8s의 kubelet이 수행(요청)합니다. 링크로 가셔서 조금 내리면 아래와 같은 문구가 있습니다.The kubelet will: request and store the token on behalf of the Pod; make the token available to the Pod at a configurable file path; and refresh the token as it approaches expiration. The kubelet proactively requests rotation for the token if it is older than 80% of its total time-to-live (TTL), or if the token is older than 24 hours. The application is responsible for reloading the token when it rotates. It's often good enough for the application to load the token on a schedule (for example: once every 5 minutes), without tracking the actual expiry time.대충 요약하면, "kubelet은 토큰의 수명이 80%보다 오래됐거나 24시간을 넘으면 로테이션을 수행한다." 겠죠?결국 중요한 일은 k8s가 모두 수행하는거고, aws-eks-pod-identity-webhook은 볼륨마운트와 환경변수 주입을 수행하는거라고 보시면 됩니다! (실제 적용될 yaml 수정)!꿀팁!을 하나 드리자면, k8s preStop hook 사용 시 토큰 로테이션이 정상적으로 되지 않는 이슈가 있으니 실제 실무에서 사용하실 때에는 안내도 같이 해주시면 같이 일하시는 분들도 좋아하실 것 같습니다! (장애 사전 예방 ㅎㅎ)-추가- 조금 더 정확한 내용은 링크 참고하시면 좋을 것 같네요!감사합니다!
- 1
- 1
- 307
질문&답변
logs 폴더가 없는 것 같습니다.
안녕하세요!.gitignore 파일에 해당 이름이 들어가있어서 푸쉬가 안됐었네요 ㅠ지금 조치했으니 다시 한 번 확인 부탁드립니다!
- 1
- 1
- 150
질문&답변
AWS API 동작 방식에서 type 질문
안녕하세요.답변 먼저 드리면, 정해진건 없습니다. 하지만! 모두 지정해주는게 좋은 것 같습니다.크게 두 가지 케이스로 살펴보면,mypy_boto3_ec2 같은 것들을 설치해서 활용하는 경우사실 굳이 타입을 명시하지 않아도 개발 과정에서는 쉽게 확인이 가능 합니다.그럼에도 명시적으로 작성해준 이유는 아래와 같은데요.강의 기준으로만 보면, 이후에 타입을 활용할것이기 때문이구요.실무 기준으로는,누군가는 mypy_boto3를 활용하지 않을 수도 있어 설치할 수 밖에 없게 만드는 역할을 할 수 있구요.굳이 직접 문서를 찾아보지 않아도, 타입을 쫓아가면 바로 어떤 값들이 있고 어떤 값들이 선택적인지 필수인지 등을 확인할 수 있는 장점이 있습니다.커스텀(?) 데이터를 만드는 경우타입이 없으면 코드를 만지기가 상당히 까다롭습니다.(다루는 데이터가 어떤 형태인지를 떠나서)그렇기에 명확히 정의를 해놓으면 당연히 여러 사람이 작업하는데는 큰 도움이 되겠죠.그리고 타입을 명시해주는 특정 경우나 범위 같은건 딱히 없습니다만, 정말 간단한게 아니면 어쨋든 명시해주는게 좋다고 생각하긴 합니다.(협업을 위해서이기도 하지만, 시간 조금만 지나면 스스로도 까먹기 때문에...)(사진)엄청 간단하고 당연히 추론해줘야 하는 것 같은 코드들도 이렇게 추론을 잘 못하는 경우가 있거든요.어찌됐건 강제성은 없기 때문에 프로그래밍 하는 사람 마음이긴 하지만, 링크의 코드를(잘했다 못했다의 문제는 아닙니다. 비하 의도 절대 없습니다.) 인수인계 받아서 업그레이드하거나 버그가 발생해서 유지보수 해야된다고 생각해보면 코드가 길지 않음에도 불구하고 저 개인적으론 상당히 만지기가 꺼려질 것 같긴합니다.(근데 500줄 1000줄 작성한게 타입이 없다고 생각하면 끔직하겠죠...?)결론은! 규칙도 없고 지정하던 말던 상관없지만, 다른 사람들 그리고 나를 위해서 모두 지정해주는게 좋은 것 같습니다.
- 1
- 1
- 96