공유해주신 API Gateway 아키텍처를 보면 Order 서비스가 Product 서비스에게 해당 상품 수량 어느정도인지 요청시 Order 서비스는 유레카에게 Product 서비스 위치를 질의 한다. 유레카에 등록된 Product 서비스 위치 정보를 Order 서비스에게 응답한다. Order 서비스는 Product 서비스에게 실질적으로 상품 수량 GET 요청 한다. 제가 알고 있는 일반적으로 (MAS X) 모놀리식 구조에서 Feign Client 를 사용시 유레카를 사용 하지 않는 상황에서 특정 서버에게 요청시 곧바로 해당 서버에게 요청을 했었는데요. (3 Way Handshake 생략) 그런데 @FeignClient(name = "product-service", url="http://product-service") public interface ProductFeign { } 이렇게 FeignClient 어노테이션에서 name 을 특정 서버 어플리케이션 이름으로 지정하게 된다면 알아서 유레카에게 질의하고 응답 받아서 Product 서비스에게 요청해서 총 HTTP 요청이 2번 일어 난다고 보면 되는건가요? 일단 비지니스 로직단에서는 HTTP 요청이 2번 일어난다(유레카 서버에게 호출 하고 그 다음 실질적은 요청하고자 하는 서버에게 다시 요청) 라고 로직상에서는 안보여서요. 이부분은 내부 로직(Feign client 라이브러리 내부 로직?? 이라고 해야 할까요?..)에서 처리된거라서 눈에 안보이는 부분인지 알고 싶습니다.
영상을 보면서 실습을 따라하던 도중 Cloudshell을 이용해서 토큰을 받은 후 Workbench를 이용하여 접속을 할 때 username : testuser, password에 부여받은 토큰을 붙여넣기 했습니다. 이후 Test connection을 하면 영상에서는 Connect가 되었지만, Access denied가 출력되면서 Connect가 실패하는 것을 확인할 수 있습니다. 이런 경우 어떤 부분을 봐야할까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요 3번 문제에서 2번 선지 -다른 AWS 계정의 두 VPC 간 통신 이것이 왜 정답인지 모르겠습니다. VPC Peering시, 다른 AWS 계정간 연결도 가능지 않나요 ?? 감사합니당
안녕하세요 올려주신 테라폼 강의 잘 듣고 있는 수강생입니다. 현재 jar파일을 ec2에 배포하여 애플리케이션 실행까지 완료한 상태입니다. 하지만 alb dns 이름을 주소창에 입력하면 아래와 같이 로그인 ui는 나오지만 Username과 Password를 입력하여도 유저 정보창이 나오지 않는 상황입니다. 질문 사항은 아래와 같습니다. 로그인 창에서 입력해야 할 Username과 Password는 user, password가 맞나요? user와 password를 입력하여도, 아래와 같이 Http error 500이 뜨는 상황입니다. 아무래도 서버쪽 설정이 잘못 된거 같습니다. 이런 경우 어떤 부분을 다시 확인해봐야 할까요? 감사합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
spring: datasource: # 데이터의 원천 spring이 어떤 데이터를 가르키냐 url: "jdbc:mysql://localhost/library" #스프링이 붙을(연결할) 데이터베이스의 주소 #jdbc- java database conenncter 말그대로 자바가 데이터베이스에 연결할수있게해주는 프로그램 #이때 데이터종류는 mysql이고 데이터베이스는 우리 컴퓨터 localhost에있다. 그리고 사용할데이터베이스는 library이다. username: "root" password: "비밀번호" driver-class-name: com.mysql.cj.jdbc.Driver #데이터베이스에 접근할 때 사용할 프로그램 위와 같이 코드를 작성했는데 인텔리제이 얼티메이트를 사용하고 있는데도 com.mysql.cj.jdbc.Driver클릭이 안돼서 뭔가 이상하다 싶었는데 다른 질문들 답변을 보니 잘될수도 있다해서 일단 인강 코드대로 따라 갔습니다. 그런데 api를 전부 수정하고 서버를 동작하려고하니 mysql연결이 안된다는 오류와 함꼐 서버 실행이안돼서 질문 남깁니다..! plugins { id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' runtimeOnly 'mysql:mysql-connector-java' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } 위처럼 그래들파일에도 runtimeOnly 'mysql:mysql-connector-java:8.0.42' 이코드가 잘 있는데 안되는것같습니다. 다른답변들 참고해서 위처럼 자바 버전을 붙이고 캐시지워서 리스타트한다음 다시 서버 켜봐도 안돼서 질문남깁니다..!
안녕하세요. 강의 잘 보고 있습니다. 제가 서비스하고 싶은 사이트는 지금 예시로 만든 mbti 서비스처럼 정적웹으로는 조금 운영이 어려운 사이트입니다. 그래서 db 연결이 필수인데, rdbms 든, noSQL 기반 db 이든 클라우드 db를 써서 연결을하자니 용량에 따라 과금이 돼서 사실 부담이 좀 됩니다. 코배투님도 결국 사이트를 키우시면서 db는 선택이 아니라 필수로 연결하셨을것 같은데 어떤걸 선택하셨나요? 만약 추천하신다면 어떤걸 추천하시나요?
리소스 로드 중 오류 발생 Amazon EKS is unable to communicate with your Kubernetes cluster API server. The cluster must be in an ACTIVE state for successful connection. Please try again in few minutes. 안녕하세요 선생님 고생 많으십니다 ^^ 질문 하나 하도록 하겠습니다! 이렇게 에러가 나오는데요! 분명 활성 상태인데 왜 이런 에러가 발생되는걸까요? IAM 도 분명 잘 설정 했는데도요 ㅠㅠ
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<UserLoanHistory> userLoanHistories = new ArrayList<>(); 이 코드를 봤을 때 User와 UserLoanHistory는 강한 연결관계를 가지고 있는 것 같습니다(이를 같은 aggregate라고 하는 것 맞나요?). 그래서 폴더 구조를 user 밑에 loanHistory를 넣으신 것 같은데, 일반적으로 이런식으로 폴더 구조를 잡나요? 아니면 domain 폴더 아래에 user와 같은 레벨로 loanHistory를 만들고, 대출 기능도 BookService에서 구현하는 게 아니라 UserLoanHistory용 컨트롤러/서비스/레포지토리를 따로 만들어 구현해도 되나요?
안녕하세요 강사님! Redis로 시작해 채팅 서비스를 거쳐 지금의 강의까지 도달한 학생입니다 :) 항상 유익한 강의를 제공해주셔서 정말 감사합니다. 이번 강의를 진행하기에 앞서 이전에 진행한 채팅 프로젝트를 적용해 배포해보려고 하는데요 혹시 강의를 진행하는데 있어 문제되는 부분이 생기지 않을까 싶어 미리 질문을 드렸습니다! 강의를 진행하는데 있어 프로젝트가 다르더라도 큰 문제가 없을까요?
terraform plan시 ch1/eks.tf 파일에서 오류가 발생합니다. ch1 git:(main) ✗ terraform plan ╷ │ Error: Unsupported block type │ │ on eks.tf line 23, in provider "helm": │ 23: kubernetes { │ │ Blocks of type "kubernetes" are not expected here. Did you mean to define argument "kubernetes"? If so, use the equals sign to assign it a value. ╵ 소스를 아래와 같이 변경하였습니다. kubernetes = { .... exe = { ... set = [ { name = "clusterName" value = var.ClusterBaseName }, { name = "serviceAccount.create" value = "true" }, { name = "serviceAccount.annotations.eks\\.amazonaws\\.com/role-arn" value = "arn:aws:iam::${ data.aws _caller_identity.current.account_id}:role/AmazonEKSTFLBControllerRole-${module.eks.cluster_name}" }, { name = "region" value = "ap-northeast-2" } ] 커서에서 바이브코딩으로 바꿔서 문법에러는 안나는데 여전히 버전문제인지 해결이 안되네요. ch1 git:(main) ✗ terraform plan ╷ │ Error: Unsupported block type │ │ on eks.tf line 23, in provider "helm": │ 23: kubernetes { │ │ Blocks of type "kubernetes" are not expected here. Did you mean to define argument "kubernetes"? If so, use the equals sign to assign it a value. ╵ ➜ ch1 git:(main) ✗ terraform init Initializing the backend... Initializing modules... Downloading registry.terraform.io/terraform-aws-modules/eks/aws 20.37.1 for eks... - eks in .terraform/modules/eks - eks.eks_managed_node_group in .terraform/modules/eks/modules/eks-managed-node-group - eks.eks_managed_node_group.user_data in .terraform/modules/eks/modules/_user_data - eks.fargate_profile in .terraform/modules/eks/modules/fargate-profile Downloading registry.terraform.io/terraform-aws-modules/kms/aws 2.1.0 for eks.kms... - eks.kms in .terraform/modules/eks.kms - eks.self_managed_node_group in .terraform/modules/eks/modules/self-managed-node-group - eks.self_managed_node_group.user_data in .terraform/modules/eks/modules/_user_data Downloading registry.terraform.io/lablabs/eks-external-dns/aws 1.2.0 for eks-external-dns... - eks-external-dns in .terraform/modules/eks-external-dns Downloading registry.terraform.io/terraform-aws-modules/iam/aws 5.39.0 for irsa-external-dns... - irsa-external-dns in .terraform/modules/irsa-external-dns/modules/iam-assumable-role-with-oidc Downloading registry.terraform.io/terraform-aws-modules/iam/aws 5.39.0 for irsa-lb-controller... - irsa-lb-controller in .terraform/modules/irsa-lb-controller/modules/iam-assumable-role-with-oidc Downloading registry.terraform.io/terraform-aws-modules/vpc/aws 5.21.0 for vpc... - vpc in .terraform/modules/vpc Initializing provider plugins... - Finding hashicorp/cloudinit versions matching ">= 2.0.0"... - Finding hashicorp/null versions matching ">= 3.0.0"... - Finding cloudposse/utils versions matching ">= 0.17.0"... - Finding hashicorp/aws versions matching ">= 4.0.0, >= 4.19.0, >= 4.33.0, >= 5.79.0, >= 5.95.0, < 6.0.0"... - Finding hashicorp/helm versions matching ">= 2.6.0"... - Finding hashicorp/kubernetes versions matching ">= 2.16.0"... - Finding hashicorp/time versions matching ">= 0.9.0"... - Finding hashicorp/tls versions matching ">= 3.0.0"... - Installing hashicorp/helm v3.0.2... - Installed hashicorp/helm v3.0.2 (signed by HashiCorp) - Installing hashicorp/kubernetes v2.37.1... - Installed hashicorp/kubernetes v2.37.1 (signed by HashiCorp) - Installing hashicorp/time v0.13.1... - Installed hashicorp/time v0.13.1 (signed by HashiCorp) - Installing hashicorp/tls v4.1.0... - Installed hashicorp/tls v4.1.0 (signed by HashiCorp) - Installing hashicorp/cloudinit v2.3.7... - Installed hashicorp/cloudinit v2.3.7 (signed by HashiCorp) - Installing hashicorp/null v3.2.4... - Installed hashicorp/null v3.2.4 (signed by HashiCorp) - Installing cloudposse/utils v1.30.0... - Installed cloudposse/utils v1.30.0 (self-signed, key ID ********) - Installing hashicorp/aws v5.100.0... - Installed hashicorp/aws v5.100.0 (signed by HashiCorp) Partner and community providers are signed by their developers. If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/cli/plugins/signing.html Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. ➜ ch1 git:(main) ✗ terraform plan ╷ │ Error: Unsupported block type │ │ on .terraform/modules/eks-external-dns/ helm.tf line 41, in resource "helm_release" "this": │ 41: dynamic "set" { │ │ Blocks of type "set" are not expected here. ╵ ╷ │ Error: Unsupported block type │ │ on .terraform/modules/eks-external-dns/ helm.tf line 49, in resource "helm_release" "this": │ 49: dynamic "set_sensitive" { │ │ Blocks of type "set_sensitive" are not expected here. ╵ ╷ │ Error: Unsupported block type │ │ on .terraform/modules/eks-external-dns/ helm.tf line 57, in resource "helm_release" "this": │ 57: dynamic "postrender" { │ │ Blocks of type "postrender" are not expected here. ╵ ➜ ch1 git:(main) ✗
web server와 로드밸런서에 대해 질문이 있습니다. 아키텍처는 구성하기 나름이겠지만, 보편적으로는 web server(reverse proxy)를 가장 앞단에 두고, aws alb를 그 뒷단에 두고, 그 alb 뒷단에 각 종류별 application server를 둔다고 생각하면 될까요?