묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
aws configure 초기화 이후 aws cli사용
aws configure 초기화 하신 후 s3 관련 권한을 주신 후 cli를 직접 사용하셨는데, 어떻게 사용하신지 궁금합니다. aws configure를 다시 설정해주셨는데 그 부분을 제가 못 본걸까요!
-
미해결[2024] [DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
Private Subnet과 Gitlab
안녕하세요. 이번에 public subnet 에 있는 bastion host를 통해서 private subnet에 있는 web server라는 ec2에 cli 명령어로 gitlab ee 버젼을 설치해서 도메인(a.test.com)으로 설정하였습니다. 그런데 sudo vi /etc/gitlab/gitlab.rb 파일에 bastion host의 public ip를 넣어야 도메인으로 gitlab server의 사이트로 접속이 되던데.. 이러면 public ip가 그대로 노출될 수도 있어서 도메인으로 바꾸면 사이트의 접속이 막히고 있습니다. 도메인으로 설정을 바꾸면 어떻게 해야하나 질문을 드립니다. CI/CD 과정은 리포지토리는 Gitlab, 빌드과정은 codebuild를 사용하려고 합니다. codebuild와 연결을 할때도 액세스 토큰이 필요해서 이부분은 어떻게 설정해야 하나요?
-
해결됨처음 시작하는 Infrastructure as Code: AWS & 테라폼
라우팅 테이블을 public이랑 private를 나눈 이유를 잘 모르겠습니다.
라우팅 테이블을 public이랑 private를 나눈 이유를 잘 모르겠습니다.라우팅 테이블 자체가 subnet - gateway의 mapping 용도라면 하나의 routing table에 모든 값들을 다 넣는 방식은 잘못됐을 까요?
-
해결됨아키텍처와 함께하는 Terraform (테라폼 모듈)
vscode
자바를 만져본 적은 없고 빌드가 처음인데 vscode에서 gradle extension 깔고 jdk17을 깔았는데 아이콘이 생기지 않아서요 어떻게 하면 될까요
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
sudo yum install -y zsh 명령어 입력 시
기존질문을보고 ami를 amzn2-ami-kernel-5.10-hvm-2.0.20241031.0-x86_64-gp2 이걸로했는데도 불구하고 Cannot find a valid baseurl for repo: amzn2-core/2/x86_64 이런 에러가나는데 구체적으로 어떤 Ami를 써야 강의와 호환되는지알려주실수있나요
-
해결됨실전 대비! DevOps인터뷰 완전 정복 - 기본편
고급편은 할인이 안되나요?
같이 듣고 싶은데요.언제쯤 할인 예정이실까요?
-
해결됨실전 대비! DevOps인터뷰 완전 정복 - 기본편
강의자료 어딨나요
수업자료가 잘못된것같은데요?? 첫강의 git commit 으로 시작하는 파일이없습니다. 질문1이 연속통합시스템의 주요구성요소는 무엇일까요입니다
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
Terraform 코드 동기화
안녕하십니까? 강의 잘 듣고 있습니다.초기 인프라 구성시 terraform 코드를 구성하고 apply하여 생성이 되었습니다. 이후 자원에 대한 추가.삭제를 terraform코드를 통해서 하지 않고, 클라우드 콘솔에서 직접 작업하여 현재 테라폼코드와 일치하지 않고 있는 상태입니다. 인프라 규모는 대규모가 아니고 소규모로 운영되고 있는 상태입니다.최초에 apply하신 분이 로컬에 별도 경로에 state파일은 생성하신것 같습니다. 현재 클라우드 콘솔에 있는 정보와 현재 테라폼코드(수정을 해야겠죠)를 효과적을 맞출 수 있는 팁이 있으시다면 부탁드립니다^^(참고로, GCP환경입니다)
-
미해결중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
SSM VPC Endpoint 관련 질문 드립니다
안녕하세요.Bastion Host 대신 SSM을 사용하여 private subnet, isolated private subnet(no nat)에 있는 EC2 instance에 SSH 대신 연결하기 위해 다음과 같이 코드를 작성했습니다. 그런데 다음과 같은 오류가 발생하였습니다.동일 AWS Service에 대한 VPC Endpoint가 AZ 당 반드시 하나만 존재하도록 강제하고 있는 것 같습니다.그래서 현재 vpc 디렉토리 내에 강사님이 구조를 모방하여 module, dev_apnortheast2, stag_apnortheast2, prod_apnortheast2 총 4개의 모듈이 존재하도록 작성했는데, 어떻게 해결할 지 간단하게 생각해봤습니다.shared_apnortheast2라는 새로운 디렉토리를 만들어서 SSM을 위한 리소스들을 전부 여기에 저장하고, data나 remote_state 같은 블록을 통해 각 모듈에서 가져다 쓰는 것-> 관리 포인트가 늘어나는 단점 + 다른 환경 끼리 같은 리소스를 써서 헷갈리는 단점, 여기다 전부 만들면 되서 env 마다 충돌 안 나게 할 필요 없는 장점dev, stag, prod에서 각각 하나의 az에만 SSM을 위한 리소스, VPC Endpoint를 만드는 것-> 각 모듈 내의 SSM, VPC Endpoint 만들 때 실수로 겹치지 않도록 az를 신경 써줘야 함 + 운 나쁘게 하나의 az가 다운되었는데 그것이 prod 환경의 SSM, VPC Endpoint면 수동 조치 필요 + 환경 별 불일치 발생3. ssm 자체를 VPC Endpoint가 아닌 다른 방법, 강사님이 언급하신 Transit Gateway 등을 사용하는 것대략 이 정도로 생각을 해보았습니다.아직 SSM, VPC Endpoint에 대한 개념이 완전히 정립되지 않아서 제가 생각한 방법 중 절대 사용해서는 안 되는 치명적인 함정이 있는지, 위 방법들 중 실제로 쓰이는 방법이 있는지, 강사님은 어떤 방법을 선호 하시는지가 궁금합니다.---앞 부분을 여러 번 돌려보고 직접 작성하면서 진행하느라 굉장히 느리게 진행하고 있는데 확실히 직접 몇 번 만들어 보고 다시 돌려보니 이해도가 늘어나는 것이 느껴집니다.테라폼을 처음 접했을 때 하위 디렉토리 무시하고 현재 디렉토리 단위로만 모듈이 되는 것과 책 등에서는 어떻게 구조화 하는지를 알려주지 않았는데, 강사님 강의를 통해 조금씩 어떻게 사용하는지 느낌을 잡아갈 수 있었습니다.(리뷰에 써야하는 내용인데 아직도 앞부분 돌려보고 있어서 다 듣고 다시 쓰겠습니다.ㅋㅋ)강의 반복해서 듣고 혼자 구조 짜고 실습을 해보니 이 사용자를 어떻게 관리하는지 부분이 상당히 방법이 많고 난해하더라구요.IAM User, Group, Role, Policy 여기까지는 그래도 엄청 어려운 개념은 없고 테라폼으로 리소스 생성도 가능한데이거를 수백명 단위라고 생각하면 어떻게 자동으로 생성하고 관리하고 권한을 조절하는지가 상상이 잘 안 되더라구요.그리고 요즘은 SSH->SSM으로 넘어갔듯 Organization과 SSO(이름이 Identity Center?로 바뀐 것 같습니다.)를 조합해서 사용하는 최신 방식도 많이 사용하고 있다는 것으로 알고 있는데,테라폼을 처음 접했을 때처럼 이 중에서 어떤 것을 골라서 쓰고, 어떤 것을 안 써야하는지, 어떻게 자동화, 권한 조절을 하는지... 함정은 무엇인지 등이 감이 잘 안오는 상태입니다.이런 부분을 실전 느낌으로 체계적으로 다루는 강의는 찾기 어려울 것 같아서 후속 강의를 계속 내시게 되면 IAM, Organization, SSO 등의 사용자 리소스 관리 및 자동화, 베스트 프랙티스도 꼭 보고 싶네요.아 그리고 지금까지 테라폼 구조화 방식을 workspace, module + softlink, terragrunt 3가지 정도를 접했는데workspace는 강사님과 Terraform 모듈 만드시는 분이 이미 겪어보고 module + softlink 방식이 낫다고 말씀해주셔서 깊게 보지 않았는데, terragrunt는 어떻게 생각하시는지, 어떤 단점이 있는지도 궁금합니다. 아래 예제 레포가 있는데 좀 방대해서 제대로 이해하고 해석하려면 시간이 걸리겠더라구요.https://github.com/cogini/multi-env-deploy언제나 강의 잘 듣고 있습니다.다음 강의들도 기대하겠습니다. 감사합니다.
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
생성한 유저로 로그인한 후, MFA 등을 등록하면 plan이 달라지네요
aws 유저를 코드로 생성했습니다.이후 해당 유저가 로그인하고, MFA 등의 보안 설정을 추가했습니다.설정 추가한 이후에는 아래처럼 기존 플랜과 다른점이 나오네요.콘솔에서 생성한 이런류의 변경 사항은 받아줘도 되겠죠..?# aws_iam_user.userX will be updated in-place ~ resource "aws_iam_user" "userX" { id = "userX" name = "userX" ~ tags = { - "AKIA3RPN5MFQJHDZCI6E" = "galaxy A34" -> null } ~ tags_all = { - "AKIA3RPN5MFQJHDZCI6E" = "galaxy A34" -> null } # (4 unchanged attributes hidden) }
-
해결됨[2024] 실무에서 사용중인 AWS 클라우드 IAM 이해와 보안
IRSA 의 토큰이 최대 24시간인데 만료되면 어떻게 되나요?
안녕하세요우선 좋은 강의 감사합니다. 강의 시청 중 IRSA 부분을 진행 중인데, 웬만한 것들은 이해가 되는데 한가지 궁금한 것이 있습니다.결국 파드가 AWS 리소스에 접근할 수 있는 토큰을 특정 마운트 경로에 가지고 있는 것인데, 임시 자격 증명은 영구적인 것이 아니고 최대 24시간까지만 유지가 되는데, 이 유효 시간이 지나면 어떻게 되나요? 예를 들어 파드 A 는 S3 에 접근을 해야 해서 IRSA 를 사용하고 있습니다. 최대 만료 시간인 24시간 지난 후에도 여전히 S3 에 접근이 가능한데, 이게 왜 가능한지가 궁금합니다. 무언가 토큰을 갱신해주는 쿠버네티스 컨트롤러나 오퍼레이터 같은 것이 있는 걸까요?(근데 암만 찾아봐도 mutatingwebhookconfigurations 의 pod-identity-webhook 외에는 관련된 것을 못찾겠네요 ㅜㅜ)
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
18강 Function 활용하기
18강의 vpc에 들어가서 backend의 s3 bucket을 제 bucket으로 고쳐도 계속 403 에러가 떠서 문의 드립니다 , key도 바꿔봤고, dynamo_db의 이름도 바꿨는데도 error message는 s3 bucket에 대한 error만 뜨네요
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
default tags , 리소스에 tags 중복 문의
안녕하세요영상에서 default_tags = resource tags가 중복되면 duplicated 에러가 발생한다고 해주셨는데, 제가 재현해보면 중복돼도 에러없이 배포가 됩니다.aws provider는 5.57, terraform은 1.9.1 버전 사용중입니다.해당 링크를 보면 5.0.0 버전부터 중복 가능하게 수정됐다는 내용이 있는 것 같은데 강의 촬영 당시와 현재 버전 차이로 배포가 되는걸까요??
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
테라폼으로 람다 형상 관리 방법
안녕하세요모든 리전 알람에 람다.tf 강의 버전으로 배포하면 람다 콘솔에서 코드를 수정하는 경우 테라폼으로 추적이 안되더라구요.변경점을 추적하는 방법을 찾아보니, 대충 테라폼에서 배포할 때 zip 형태로 말아 배포할때마다 hash값을 비교해서 변경을 감지한다는거 같은데 이도 사실 제가 정확히 이해했는진 모르겠네요.사실 저는 개인적으로 람다가 워낙 자주 수정되니 그냥 최초 배포할 때 이후로 따로 추적은 안하고 git 같은 곳에서 버전관리를 하면 되지 않을까라고 생각합니다.아니면, 람다 함수를 git, s3 등에서 버전을 관리하고 테라폼 모듈에서 source를 git or s3와 같이 지정해주면 될 것 같은데 실제 운영하실 땐 어떤 방식으로 테라폼으로 관리하는지 궁금합니다
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
강의 순서 문의
강의 추천을 받아 구매하게 되었습니다. 무료 강의 + 구매한 강의 총 4개가 있는데 4개 순서를 어떤식으로 들으면 좋을지 문의드립니다. 감사합니다.
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
iam 권한에 대한 질문
수업 잘 듣고 있습니다 궁금하게 있는데 , 처음에 aws ec2의 aws configure를 할때 , iam 계정을 사용해서 환경설정을 하고 뒤로 그 계정으로 putty로 접속해서 수업 실습을 따라하고 있는데, 궁금한게 ,저는 iam 계정에 VPC에 대한 권한을 준 적인 없는데 , iam 계정으로 configure한 CLI로 VPC 를 만들고 , Subnet을 만 들 수 있는게 신기하고 , 궁금합니다 , CLI로 접속하면 , iam 권한의 제한이 없어지나요 ? , iam 권한 젒속은 aws console에 한정되나요?
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
6강 import 존재에 대한 질문
수업 잘듣고 있습니다다름이 아니라 import를 하려면 , 내 local에 bucket에 대한 s3.tf파일이 있어야한다고 하는데 , 그럼 import를 하는 이유가 뭔지 궁금합니다 , 코드가 없으니까 , import 해서 받으려고 하는게 , 정상적인 사고 같은데 , 그럼 다시 내 local에서 s3.tf파일을 작성해서 import를 해야하고 , 그럼 import의 존재 이유는 내 local의 .tf코드와 만들어진 s3 bucket의 코드가 같은지 비교하는 용도인가요 ? 아니면 내 local의 s3.tf 파일이 aws의 s3 bucket의 코드와 완벽하게 일치하지 않아도 되는 건가요 ?, 만약 resource와 bucket의 이름만 같고 다름 옵션이 다를경우 import를 사용해서 가져오면 좋으니까? 이렇게 사용하는건가요? , 잘모르겠어요 ㅠㅠㅠ
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
람다 캐싱 질문
안녕하세요. 4-10 강의를 보고 질문드립니다.람다는 stateless 방식으로 실행된다고 알고 있었는데, 전역 변수가 캐싱이 된다고 설명해주신 이유는 해당 프로젝트 같은 경우 모든 알람이 발생할때마다 실행되니, coldstart가 발생하지 않는다라는걸 전제하에 말씀해주신걸까요? 아니면 람다 자체에서 내부적으로 어떠한 동작에 의해 캐싱이 이루어지는건가요?===이 프로젝트는 모든 알람이 발생할 때마다 람다가 실행되니 coldstart로 응답이 느려질거 같진 않은데요, 만약 5~10분마다 실행되는 람다 함수라면 coldstart에 대한 대책으로 3분정도 주기마다 eventbridge로 람다를 트리거해주는 것도 방법이 될까요?
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
webhook 단점
안녕하세요slack 부분 구성이 좀 궁금해서 일단 해당 부분 강의만 봤는데Webook 단점 영상 중에 강사님이 만드신 Alert이 왔을때 생기는 버튼 및 Log에 대한 쓰레드를 달 수있는 기능은 webhook으로 불가능하다 하셨는데요.그렇다면, 저 기능을 이용하려면 Webhook말고 어떤 기능을 이용해야하나요?감사합니다.
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
for_each 사용 시 key를 가져오는 기준
안녕하세요key로 리소스 유무를 판단하니 중복되면 안된다고 생각해 테스트해보려고 중복된 key를 넣어주고 for_each로 가져오니 상위 key를 가져오는거 같지 않아서 별도 기준이 있는지 그냥 랜덤인지 궁금하여 질문드립니다. # countvariable "user_count" { type = list(string) default = ["hb", "terraform", "aws"] } resource "aws_iam_user" "user" { count = length(var.user_count) name = "${var.user_count[count.index]}-${count.index}" }배포 시 hb-0, terraform-1, aws-2 생성 (리스트의 인덱스 순서대로 가져옴) # for_eachvariable "user_map" { type = map(string) default = { "hb" = "/good/" "terraform" = "/nice/" "hb" = "/bad/" } } resource "aws_iam_user" "users" { for_each = var.user_map name = each.key path = each.value }배포 시 아래와 같이 생성"hb" : "/good"이 아닌 "hb" : "/bad"가 생성 key가 중복되면 중복되는 key는 제외되어 loop는 실제로 2번만 도는걸까요?