묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결중급, 활용편 #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번만 도는걸까요?
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
ModuleNotFoundError: No module named 'pprint' 에러
안녕하세요파이썬 사용 중 제목과 같은 에러가 발생하는데, 따로 건드린 설정 등은 없습니다. 에러는 pip --version, python -m pip install --upgrade pip 등을 사용할 때 발생하고 일반 파이썬 파일 실행 시엔 발생하지 않습니다. (ppirnt 라이브러리 사용시엔 실행x)에러가 발생하는 파이썬 디렉터리에 보니 pprint_1.py 로 되어 있어 pprint.py로 변경하니 에러는 해결되었습니다.혹시 이렇게 파이썬 기본 라이브러리명이 변경되는 경우가 있나요??
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
모듈 vs 리소스
안녕하세요콘솔에서 리소스를 생성하는건 익숙하지만, 테라폼은 이제 막 시작한 경우라면 1, 2번 중 어떤게 더 테라폼 동작 구조를 파악하면서 이해할 수 있는지 궁금합니다.모듈 사용없이 각각의 리소스.tf 을 생성하고 타 리소스에서 참조가 필요한 항목들만 output으로 출력하여 배포처음부터 모듈 형태로 작성하여 배포aws 콘솔로만 주로 작업을 했다보니 리소스들의 옵션은 문서를 보면 어느정도 이해할 수 있는 정도이고, 테라폼 사용 경험은 폴더 분리 없이 한 폴더 내의 resource.tf (ecs.tf, ecr.tf) 를 모두 생성하고 배포해본 정도만 있습니다. 모듈은 경험x
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
s3 bucket 생성 에러
안녕하세요 너무 질문을 자주 올리는거 같아 민망하네요 ㅎㅎ..강의 수강 중 궁금한 점이 있어 질문드립니다. s3 배포 시 제약조건?멀티 프로바이더 부분에서 s3 배포 시, 서울 리전에만 배포가 안됩니다. (still creating 무한루프)제가 배포하려는 코드는 아래와 같습니다.# provider.tf provider "aws" { region = "ap-northeast-2" } provider "aws" { alias = "apne3" region = "ap-northeast-3" } # main.tf resource "aws_s3_bucket" "apne2" { bucket = "tf-apne2-hb" } # 오사카 리전 resource "aws_s3_bucket" "apne3" { bucket = "tf-apne3-hb" provider = aws.apne3 }서울 리전에 배포할 때 해당 버킷명을 사용할 때만 배포가 안되며, 다른 버킷명이나 다른 리전에 배포하면 잘 배포가 됩니다. 콘솔에서 위와 동일하게 생성해보면 "the ap-northeast-2 location constraint is incompatible for the region specific endpoint this request was sent to." 와 같은 에러가 떨어지는데 처음보는 경우라 혹시 알고 계신게 있는지 궁금해서 질문 남깁니다. vpc 배포 후 provider 변경 resource "aws_vpc" "apne2" { cidr_block = "10.0.0.0/16" } resource "aws_vpc" "apne3" { cidr_block = "10.0.0.0/16" }위처럼 배포 시 서울 리전에 vpc가 2개 생성됐습니다.이후 apne3 vpc 리소스에 provider = aws.apne3을 추가한 후 plan 해보면 서울 리전에 vpc가 삭제되고 오사카 리전에 생기는게 아닌, 서울 리전에도 남고 오사카 리전에도 새로 추가가 됩니다.tfstate 파일에서도 provider와 속성값들이 변경은 되는데 기존 리소스는 왜 삭제되지 않는지 궁금합니다. 추가로 제가 질문을 거의 매일 남기는거 같아서 좀 죄송스럽습니다. 차라리 큰 챕터가 끝낼따마다 궁금한걸 정리한 후 한번에 질문드리면 더 나으실까요??
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
terraform import 관련 질문
안녕하세요콘솔에서 배포한 aws 리소스들을 테라폼으로 관리하려고 한다면, 배포된 모든 리소스들을 하나씩 import한 후 plan해보면서 변경점을 찾아 코드화시키는 방법밖에 없을까요?리소스가 많으면 이런 작업도 공수가 꽤나 들어갈 것 같은데 다른 방법이나 툴같은게 있는지 궁금합니다. 찾아보니 terraformer로 가져올 수 있는거 같은데, 얘를 사용해도 일부 커스텀이 좀 필요한 것 같아 보입니다.실제 업무에서는 어떤 식으로 해결하는지 궁금하여 질문드립니다.
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
generate expression 사용 예시
안녕하세요 1.14 generator expression 강의 내용 중에서 athena로 s3의 저장된 로그를 쿼리하여 로그를 긁어온다는 예시에서 2가지 궁금증이 있습니다. 아테나로 긁어온 로그의 용량이 큰 경우, 리스트 컴프랜션으로 올리면 메모리를 많이 차지한다고 말씀해주셨습니다.아테나 쿼리 결과는 보통 s3에 저장되는데, 람다를 예시로 들으신 이유는 어떤 워크플로우를 생각하시고 예시로 들으신건지 궁금합니다.(람다로 아테나 쿼리 결과를 읽고 특정 형태로 파싱하는 경우, 파일을 리스트 컴프랜션으로 읽으면 람다의 메모리를 오바하여 람다가 죽는 경우를 말씀해주신걸까요?)임시스토리지에 저장해서 generate expression을 통해 읽어온다는 부분에서 궁금한 점입니다.레디스로 예를 들면 아테나 쿼리 결과를 [{"key" : "value"}]와 같이 레디스에 저장해둔 후 필요 시 데이터를 generate expression을 사용해서 읽어 온다는 걸까요? 저같은 경우 아테나는 단순 로그 파일을 조회하는 용도로만 사용해 보았고, 람다와 연동해서 사용해 본 경험이 없어 예시로 들어주신 사례가 어떤 상황인지 명확하게 떠오르지가 않습니다.이런 부분은 검색을 통해 개인적으로 찾아봐야 되는게 맞는데, 어떤 키워드로 검색해야 하는지 감이 잘 안와서 질문드리게 됐습니다.
-
해결됨[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
boto3 라이브러리 사용 시 에러
안녕하세요 boto3 라이브러리를 처음 사용하는 강의에서 import한 라이브러리(boto3)와 실행하는 파이썬 파일(boto3.py)의 이름이 동일한데 어떻게 실행이 되는건가요 ?? 일반적으로 파이썬 사용할 때 라이브러리명과 파일명이 동일하면 AttributeError 에러가 발생하던데 강의에선 별 다른 제약 없이 실행이 되는거 같아 질문드립니다.
-
미해결중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
세팅 질문입니다.
안녕하세요, 강사님강의 복습중입니다.한 가지 궁굼한 점이 있습니다.강의 외적인 부분인데iterm 세팅을 어떻게 하고 계신가요?커서 옮길때 매우 빠른(?) 속도를 갖고 계시던데테마 등 정보 공유 부탁드리겠습니다!아참,5월에 테라폼 강의 준비해주신다고 하셨는데...테라폼이 아닌, aws강의를 준비하셔서 조금 섭섭하네요.. ㅋㅋ
-
해결됨중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
강의 자료 중 vpc를 module이 아닌 디렉토리의 복사 붙여넣기로 사용한 이유
안녕하세요.중급강의 영상을 시청하면서 실습을 진행하던 도중 궁금한 것이 생겨 질문을 드리려 합니다.vpc 구성 강의 중 artd_apnortheast2 디렉토리 복사 후 몇몇 내용만 바꿔서 vpc를 구성하는 부분이 있는데보면서 vpc는 모듈로 만들어놓고 사용해도 괜찮지 않을까라는 생각이 들었습니다.혹시 vpc를 모듈로 구성하지 않은 이유가 궁금합니다.답변 부탁드립니다. 감사합니다.