소개
현재 카카오뱅크에서 클라우드 엔지니어(SRE)로 근무하고 있습니다. 서비스를 위한 아키텍처를 설계/제공하고, 조직에서 필요한 다양한 도구들을 만들고 제공하거나 구축하는 등의 일을 하고 있습니다.
문의: 7424069@gmail.com
강의
수강평
- [2024] [DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
- [2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
- [2024] 실무에서 사용중인 AWS 클라우드 IAM 이해와 보안
게시글
질문&답변
Private Subnet과 Gitlab
안녕하세요.질문주신 내용은 제가 제공하는 강의와 관련 없는 내용으로 보입니다.또한, 해당 내용들은 전반적인 환경에 따라 구성이나 설정이 달라질 수 있을 것 같아 제공해주신 내용만으로는 답변드리기도 어려울 것으로 보입니다.강의 내용과 관련된 질문 부탁드리겠습니다.감사합니다.
- 0
- 2
- 21
질문&답변
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
- 63
질문&답변
Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)
안녕하세요!디렉토리를 파일에 마운트 하려 했거나, 파일을 디렉토리에 마운트 하려 했을 때 발생하는 오류로 보입니다.file index.html index.html: HTML document text, ASCII text file index.html index.html: directory위와 같이 file 명령을 통해서,로컬 경로에 존재하는 내용이 파일인지 디렉토리인지 확인 부탁드립니다.(오류로 봐서는 index.html이 디렉토리인 것 같아 보입니다.)감사합니다.
- 1
- 2
- 135
질문&답변
깃허브 액션에서 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
- 204
질문&답변
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
- 259
질문&답변
logs 폴더가 없는 것 같습니다.
안녕하세요!.gitignore 파일에 해당 이름이 들어가있어서 푸쉬가 안됐었네요 ㅠ지금 조치했으니 다시 한 번 확인 부탁드립니다!
- 1
- 1
- 133
질문&답변
AWS API 동작 방식에서 type 질문
안녕하세요.답변 먼저 드리면, 정해진건 없습니다. 하지만! 모두 지정해주는게 좋은 것 같습니다.크게 두 가지 케이스로 살펴보면,mypy_boto3_ec2 같은 것들을 설치해서 활용하는 경우사실 굳이 타입을 명시하지 않아도 개발 과정에서는 쉽게 확인이 가능 합니다.그럼에도 명시적으로 작성해준 이유는 아래와 같은데요.강의 기준으로만 보면, 이후에 타입을 활용할것이기 때문이구요.실무 기준으로는,누군가는 mypy_boto3를 활용하지 않을 수도 있어 설치할 수 밖에 없게 만드는 역할을 할 수 있구요.굳이 직접 문서를 찾아보지 않아도, 타입을 쫓아가면 바로 어떤 값들이 있고 어떤 값들이 선택적인지 필수인지 등을 확인할 수 있는 장점이 있습니다.커스텀(?) 데이터를 만드는 경우타입이 없으면 코드를 만지기가 상당히 까다롭습니다.(다루는 데이터가 어떤 형태인지를 떠나서)그렇기에 명확히 정의를 해놓으면 당연히 여러 사람이 작업하는데는 큰 도움이 되겠죠.그리고 타입을 명시해주는 특정 경우나 범위 같은건 딱히 없습니다만, 정말 간단한게 아니면 어쨋든 명시해주는게 좋다고 생각하긴 합니다.(협업을 위해서이기도 하지만, 시간 조금만 지나면 스스로도 까먹기 때문에...)(사진)엄청 간단하고 당연히 추론해줘야 하는 것 같은 코드들도 이렇게 추론을 잘 못하는 경우가 있거든요.어찌됐건 강제성은 없기 때문에 프로그래밍 하는 사람 마음이긴 하지만, 링크의 코드를(잘했다 못했다의 문제는 아닙니다. 비하 의도 절대 없습니다.) 인수인계 받아서 업그레이드하거나 버그가 발생해서 유지보수 해야된다고 생각해보면 코드가 길지 않음에도 불구하고 저 개인적으론 상당히 만지기가 꺼려질 것 같긴합니다.(근데 500줄 1000줄 작성한게 타입이 없다고 생각하면 끔직하겠죠...?)결론은! 규칙도 없고 지정하던 말던 상관없지만, 다른 사람들 그리고 나를 위해서 모두 지정해주는게 좋은 것 같습니다.
- 1
- 1
- 75
질문&답변
default tags , 리소스에 tags 중복 문의
안녕하세요!먼저 답변부터 드리면, 맞습니다!정확한 변경 내용은 링크에서 확인 가능합니다.사실 저도 해당 내용에 대해선 추적하지 못하고 있었는데, 질문주셔서 알게 됐네요.감사합니다! (_ _)
- 1
- 1
- 109
질문&답변
테라폼으로 람다 형상 관리 방법
안녕하세요!(사진)일단 질문 주신 내용에 대해서 저도 해당 코드로 다시 테스트 해보니, 콘솔에서 변경하는 경우에도 해쉬가 변경된다고 나오긴 하더라구요.(모듈 사용하는 프로젝트 코드)그리고 실제로 lambda 모듈이 zip파일로 압축해서 배포하는 것도 맞습니다.람다 함수 관리 관련해서는 크리티컬한 경우 serverless라는 오픈소스를 사용하기도 하구요(git과 함께 또는 조금 더 자유로운 곳은 로컬에서 하실 수도 있겠네요.)저 같은 경우 AWS(인프라) 레벨과 관련이 있는건 그냥 Terraform으로 코드 작성하고 배포하고 있습니다.(이것도 업계나 회사마다 환경이 다르겠지만 보통 PC에서 바로 배포안하는 곳은 어차피 git을 거치거든요.)감사합니다.
- 1
- 1
- 152
질문&답변
강의 순서 문의
안녕하세요.일단 제가 질문 해주신 분에 대한 배경 지식이 없어서 "이렇게 보세요!"라고 말씀드리긴 어렵지만,보편적으로 아래와 같이 들으시면 좋을 것 같습니다.실무에서 사용하는 클라우드 프로그래밍Python을 활용한 AWS FinOps 어플리케이션 제작실무에서 사용중인 AWS 클라우드 IAM 이해와 보안빠르고 안전한 어플리케이션 배포 파이프라인 만들기3, 4번은 동시에 들으셔도 무방합니다.질문 주신 김에 조금 더 집중 하셨으면 하는 부분은,외우려고 하지 마세요. 도중에 포기하게 될 확률이 높습니다.외우려고 해서 외우는게 아니라, 많이 연습하고 익숙해지고 이해함으로써 자연스럽게 떠올리고 말이 나오는게 가장 좋다고 생각합니다.그리고 조금이라도 의심되면 '그냥 그런가보다~' 하지 말고, AI의 도움을 받던 검색을 하던 찾아보세요. 가지 치는 공부가 가장 효율이 좋다고 생각합니다.강의 내용을 "나"의 환경에서 어떻게 응용할지? 뭘 더 할 수 있을지? 고민해보세요.실력이 훨씬 빠르게 좋아지실 겁니다.결국 기술은 비즈니스(또는 사람)와 결합이 돼야 그 가치를 발휘합니다.원리를 이해하려고 노력하시면 좋습니다.제 강의 자체가 원리에 대해서 언급을 많이 하지만 그냥 넘어가는 것 보단 그 원리에 대한 고민과 내가 고민하는 또는 알고 싶은 것들을 실습하면서 현상을 보고, 의심하고 찾아보면 정말 빠르게 실력이 향상 됩니다.당장 필요하다 생각하는 것을 만들어 보세요.도구가 제공하는 기능에 익숙해지기 위한 노력은 결국 오래가기가 힘듭니다.(라고 생각합니다.)만들다 보면 결국 이해하게 되고, 어떤걸 접하더라도 '~~ 하게 동작 하겠구나.' 와 같이 훨씬 접근이 쉬워집니다.재밌는건 이게 더 빨리 익숙해지는 길이기도 합니다.클라우드 그리고 IaC(Infrastructure as Code)를 최대한 많이 활용하세요.남들보다 훨씬 빠르게 접근 가능하고, 코드로 인프라(뿐만 아니라 다양한 다른 것들도)를 만들어 보면 다양한 옵션들을 보면서 빠르게 익숙해지고 빠르게 배울 수 있습니다.조금 두서 없는 것 같긴 합니다만, 결국 순서의 문제라기 보단 어떤 생각을 갖고 공부하냐의 문제라고 생각합니다.감사합니다. 힘내세요!
- 1
- 1
- 103