inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

cloudfront 과금 발생

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

맨 처음 17달러 과금이 발생한 것을 확인한 날, 강의를 따라하면서 배포한 사이트를 비활성화 처리했습니다. 하지만 다음날 25달러로 늘어나 있었고 SSL 인증서 문제인 것을 확인해, Certificate Manager들어가서 발급받았던 인증서 삭제하고, 배포했던 사이트에 적용햇던 인증서를 None처리했습니다. 그러고 다음날은 오늘 추가 0.81달러 과금이 발생해 25.81 이 되었습니다. cloudfront에서 과금이 발생할 수 있는 요소에 대해 설명해주실 수 있을까요. 어떤 처리들을 해야 아예 과금이 발생하지 않을 수 있을까요? 인증서 외에도 과금 발생할 요소들이 있을까요. 실습시에 구매했던 도메인네임을 적용하면서 하는 중이었습니다 .

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
  • cloudfront
sjgio0515 댓글 1 좋아요 0 조회수 318

AWS Private-Subnet, NAT Gateway Keep-Alive 질문

미해결

AWS 전 직원이 알려주는 AWS 아키텍처

안녕하세요. 우선 제가본 강의중에 제일 좋은강의를 만들어주셔서 감사합니다. private-subnet(ec2) >> NAT Gateway >> public-subnet(gateway) 경로를 통해 API를 호출하고 있습니다. 문제는 API 호출 시 첫 번째 요청은 느리지만, 이후의 요청은 빠르게 처리되며, 몇 분 후 다시 호출하면 같은 현상이 반복된다는 것입니다. AWS 문서를 확인해본 결과, NAT Gateway의 Keep-Alive 최대 시간이 360초라는 것을 알게 되었습니다. 이와 같이 첫 번째 API 호출이 느렸다가 이후 호출이 빨라지는 문제를 해결할 방법이 있을까요? 제가 생각해본 해결책은 private-subnet을 public-subnet으로 이동시켜 Keep-Alive 시간을 증가시키는 것이었지만, 다른 방법이 있을지 조언을 구하고자 합니다.

  • aws
김재현 댓글 1 좋아요 0 조회수 279

45강 배포후

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

jar명령어까지 하여 스프링부트를 실행해주었는데 다음과 같은 오류가 뜨고 웹에서도 서버 내부 오류라고 뜹니다. 무엇이 잘못된건지 모르겠네요. https://www.inflearn.com/community/questions/1199055/45%EA%B0%95-dev-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%AC 이거 참고해도 이해가 안가요

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 121

수강 기간 연장 부탁드립니다 !

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

강의를 다 못 봤습니다... 연장 부탁드립니다 ㅜ 감사합니다 !

  • 네트워크
  • aws
hmnicute1101 댓글 1 좋아요 0 조회수 124

환경변수 질문 있습니다

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

저는 application.yml을 통째로 git secret에 작성하지 않고 다음과 같이 각각을 환경변수로 잡아서 민감한 정보를 숨겼습니다. 그리고 build step 에서 env를 통해 환경변수 값들을 전달해서 사용하려 하였는데, 실제 docker를 통해 실행할 때 해당 환경변수 값들을 찾을수 없다는 에러가 발생하는 상황입니다. 저는 build 단계에서 해당 환경변수 값들이 모두 들어간 상태의 완전한 상태로 build가 된다고 생각했지만 실제로는 해당 환경변수들을 일단 빈값으로 놔두고 build하기 때문이라고 알게되었는데 저의 이러한 방식보다는 그냥 application.yml을 통째로 git secret에 넣는 방식이 좋은걸까요..? spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: {SQL_URL} username: {SQL_USERNAME} password: {SQL_PASSWORD} jpa: hibernate: ddl-auto: update properties: hibernate: format_sql: true data: redis: host: {REDIS_HOST:localhost} port: ${REDIS_PORT:6379} name : Deploy To EC2 on: push: branches: - main - feat/ci_cd jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: JDK 17 version install uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: test and build run: | chmod +x ./gradlew ./gradlew clean build working-directory: ./ env: SQL_URL: {{ secrets.DB_URL }} SQL_USERNAME: {{ secrets.DB_USERNAME }} SQL_PASSWORD: {{ secrets.DB_PASSWORD }} REDIS_HOST: {{ secrets.REDIS_HOST }} REDIS_PORT: {{ secrets.REDIS_PORT }} AWS_ACCESS_KEY: {{ secrets.AWS_ACCESS_KEY }} AWS_REGION: {{ secrets.AWS_REGION }} AWS_S3_BUCKET: {{ secrets.AWS_S3_BUCKET }} AWS_SECRET_KEY: {{ secrets.AWS_SECRET_KEY }} TOUR_INFO_KEY: {{ secrets.TOUR_INFO_KEY }} - name: AWS credential setup uses: aws-actions/configure-aws-credentials@v4 with: aws-region: {{ secrets.AWS_REGION }} aws-access-key-id: {{ secrets.AWS_ACCESS_KEY }} aws-secret-access-key: {{ secrets.AWS_SECRET_KEY }} - name: ECR login id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Docker image create run: docker build -t kkilogbu . - name: Docker tag run: docker tag kkilogbu {{ steps.login-ecr.outputs.registry }}/backend:latest - name: Docker image push to ECR run: docker push {{ steps.login-ecr.outputs.registry }}/backend:latest - name: EC2 connection with SSH uses: appleboy/ssh-action@v1.0.3 with: host: {{ secrets.EC2_HOST }} username: {{ secrets.EC2_USERNAME }} key: {{ secrets.EC2_PRIVATE_KEY }} script: | docker stop kkilogbu || true docker rm kkilogbu || true docker pull {{ steps.login-ecr.outputs.registry }}/backend:latest docker run -d --name kkilogbu -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/backend:latest

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
kyb1208tg 댓글 1 좋아요 0 조회수 210

38강 .yml

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

spring: config: activate: on-profile: local datasource: url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" username: "sa" password: "" driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.H2Dialect h2: console: enabled: true path: /h2-console --- spring: datasource: url : "jdbc:mysql://localhost/library" username : "root" password : "비번" driver-class-name : com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.MySQL8Dialect 2024-08-18 22:03:44.064 INFO 4232 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 11.0.23 on SeungWon with PID 4232 (C:\Users\Administrator\Desktop\library-app\library-app\build\classes\java\main started by Administrator in C:\Users\Administrator\Desktop\library-app) 2024-08-18 22:03:44.064 INFO 4232 --- [ main] c.g.libraryapp.LibraryAppApplication : The following 1 profile is active: "local" 제대로 다 작성을 한거같ㅌ은데 로그에 local이라고 나오는데 도서관리 웹으로 가면 이전에 넣어둔 데이터도 그대로 있고, H2WebConsol은 화이트레벨이 뜹니다ㅜ 현재 인텔리제이 무료버전이라 프로파일 바꾸는건 구글랑해서 햤는데 뭐가 문제인가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 2 좋아요 0 조회수 115

EKS말고 쿠버에서도 실습문제 없을까요?

미해결

CloudNet@ - Amazon EKS 기본 강의

안녕하세요. EKS로 해당 강의 학습했습니다. 헬름으로 배포하는 프로메테우스 스택을 가져오는 만큼 ec2혹은 vm으로 구성한 쿠버네티스에서도 문제가 없을것이라 예상되지만 여쭤봅니다. 쿠버네티스나 K3S등의 경량 쿠버로 마스터노드와 클러스터를 구성하고 나서 해당 강의의 프로메테우스 스택 그리고 그 이후 오토스캐일링까지 실습이 가능할까 궁금함니다

  • 네트워크
  • aws
  • kubernetes
  • amazon-eks
  • eks
꾸라 댓글 1 좋아요 0 조회수 135

수강 연장 요청 드립니다.

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

지난 번에 수강 연장해주셨는데 9월 내에 수강 완료하도록 추가 연장해주시면 감사하겠습니다.

  • 네트워크
  • aws
resonant7 댓글 2 좋아요 0 조회수 107

codedeploy 배포 관련 질문

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

현재 appspec.yml을 보면 S3에 저장한 모든 파일을 destination에 저장하도록 되어있습니다. files: # S3에 저장한 파일들 중 destination(AWS EC2)으로 이동시킬 대상을 지정한다. # / 이라고 지정하면 S3에 저장한 전체 파일을 뜻한다. - source: / # EC2의 어떤 경로에 저장할 지 지정한다. destination: /home/ubuntu/spring-gift-point 그런데 push를 여러개 진행하면 tar.gz파일도 여러개 생기게되는데 이러면 S3의 있는 모든 tar.gz파일을 가져오게되는건가요? deploy.yml에서 파일 압축을 할 때 yml 파일과 scripts폴더를 같이 압축하는 이유가 궁금합니다. 두 파일 모두 project.jar 파일에 들어있기 때문에 project.jar파일만 압축해도 상관없지않나요? - name: 압축하기 run: tar -czvf $GITHUB_SHA.tar.gz project.jar appspec.yml scripts codedeploy를 활용한 무중단 배포나 로드 밸런싱 강의를 할 수 있다고 하셨는데 따로 강의를 내실 예정이 있으신지 궁금합니다!

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
yso829612 댓글 1 좋아요 0 조회수 287

미니프로젝트

미해결

처음 만난 AWS

미니프로젝트 관련 질문인데 혹시 파일을 업로드하면 밑에란에 업로드가 되고있는 과정이 그림으로 보여줘야하는데 보여지지 않고 upload 파일에만 떠잇네요

  • aws
  • lambda
  • amazon-web-services
  • cloud-computing
  • ec2
이태민 댓글 1 좋아요 1 조회수 130

CloudFront https적용

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

안녕하세요 강의 잘 보고있습니다! Cloudfront 배포를 생성하고 배포도메인으로 들어가보면 s3 웹페이지에 https가 잘 적용되었는데 혹시 다음강의에서 추가적으로 도메인을 연결해서 https를 적용하는 이유가 있을까요?

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
djqwkfj43u 댓글 2 좋아요 0 조회수 221

실전 문제 풀이 3 - 5 질문

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

안녕하세요. 실전 문제풀이 3의 QUESTION 05번 질문이 있습니다. 해당 문제의 정답이 B인데 Redis용 Amazon ElastiCache가 문제의 "장바구니 데이터가 항상 보존되도록"을 만족할 수 있나요?? elastiCache가 메모리 기반이라 빠른 속도를 제공하지만 일시적인 데이터 저장용으로 알고 있어서 질문드립니다.

  • aws
kwonhd 댓글 1 좋아요 0 조회수 101

조언이 필요합니다 !

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

박재성강사님 안녕하세요 oz학생입니다 강사님이 그립습니다.. 질문 마음껏 할 수 있을 때 지금의 상황이었으면 좋았을텐데라는 생각이드네요! 저는 프론트 공부중인 학생인데, 이번 프로젝트를 next.js로 개발하게되었고, elastic beanstalk와 docker, github-action으로 자동배포를 하고싶어서 밤새시도하였지만, 자동배포하여 환경이 작동하는것까지는 확인하였는데 502error에 막힌 상태입니다. 아마 docker에 관한 서버관련 문제가 있는거같은데, docker에 대한 지식도 매우 부족한 상태라.. docker가 문제다라는 확신이 있는것도 아닙니다. 그래서 공부를 해야될거같은데 docker를 공부하면 좋을지, 아니면 박재성 강사님의 강의 중 next(백엔드) + CI+CD / EC2배포 강의가 있는것을 봐서 이 부분을 참고하면 좋을지 가늠이 안갑니다. 둘 다 공부하면 좋겠지만, 우선 순위로 알아가면 좋을 내용을 조언해주시면 감사하겠습니다.. 그리고 덕분에 개발에 흥미와 열정도 많이 불타고있습니다!

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
uplee114 댓글 1 좋아요 0 조회수 224

프로젝트 생성 오류

미해결

백엔드 개발을 위한 필수 강의 - 스프링 부트3

STS를 설치하고 sbb 프로젝트를 만들고 나면 아래와 같은 오류가 발생합니다. ToolchainDownloadFailedException: No locally installed toolchains match and toolchain download repositories have not been configured. java.lang.reflect.InvocationTargetException file - Properties에 들어가서 해결하려고 했는데 Java Build Path 항목이 없어서 해결하지 못했고, 구글링으로도 해결이 안되는 상황입니다... 어떻게 해결할 수 있을까요?

  • java
  • aws
  • spring-boot
jieunkim1117 댓글 1 좋아요 0 조회수 1648

비용 조회하는 방법

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

안녕하세요 강의 너무 잘 듣고 있습니다! 다름이 아니라 RDS 강의를 모두 듣고 지금까지 쓴 비용이 궁금해져서 '[보충강의] 혹시나 비용 나가지 않는 지 체크하는 방법'을 보며 '결제 및 비용 관리 > 청구서' 에 들어가봤습니다. 근데 권한이 없다고 관리자에게 권한을 추가하도록 요청하라는 빨간 글씨만 뜨더라구요. 검색해보니까 IAM 계정은 결제 정보 메뉴에 접근 권한이 존재 하지 않아서 root계정으로 들어와서 권한을 줘야 볼수있다는데, 그럼 그냥 간단하게 요금을 확인하려면 root 계정으로 로그인해서 조회하면 IAM계정에서 결제했던 도메인이나 사용했던 서비스 비용을 똑같이 볼 수 있는거나 마찬가지인거죠??

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
Cho 댓글 1 좋아요 0 조회수 194

안녕하세요. 소스 문의입니다~

해결됨

Flutter로 웹 서비스 개발하기 (1) - Responsive Web

강의를 들었는데... github소스라든지 그런게 안보이든데... 결제했는 사람조차도 소스 제공이 안되나용? 답변 부탁드립니당~

  • flutter
  • aws
  • 반응형-웹
  • dart
little face 댓글 2 좋아요 0 조회수 254

26강 update method 에러 발생합니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

선생님이 해주신것과 똑같이 코드를 작성했는데 도서관리에서 사용자 이름을 수정하려고 하니 updateUser에서 optional 관련 에러가 발생합니다. Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.name as name3_0_0_ from user user0_ where user0_.id=? 2024-08-14 18:42:17.084 ERROR 37216 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root cause java.lang.IllegalArgumentException: null at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.group.libraryapp.service.user.UserServiceV2.updateUser(UserServiceV2.java:34) ~[main/:na] at com.group.libraryapp.controller.user.UserController.updateUser(UserController.java:32) ~[main/:na] db도 한번 삭제 후 다시 실행했는데 같은 에러가 발생하네요.. 이유와 해결방법이 궁금합니다..!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
조하영 댓글 3 좋아요 0 조회수 218

targetgroup

해결됨

스스로 구축하는 AWS 클라우드 네트워크 - 기본편

로드밸런스 타겟그룹을 만들때 이런 에러가 뜨는데 레퍼런스를 찾아봐도 잘 없네요.. 시간이 안맞는거 같은데 이건 어느 부분을 봐야할까요??

  • 네트워크
  • aws
wnsqud70 댓글 2 좋아요 0 조회수 211

인스턴스 타겟그룹 등록 언헬시

미해결

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

인스턴스 만들때 라우팅 테이블 어떻게 설정 되어 있나요 nat랑 연결되어있나요?

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
댓글 2 좋아요 0 조회수 207

도애체 어디에서 오류가 난건지 모르겠습니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

다음과 같이 코드를 했는데 24강까지 애플리케이션에서 잘 삭제되고, 잘 저장되었는데 25강이후 코드는 실행되는데 '나이'가 입력을 해도 00세로 나오고, 목록에서 삭제하려고하면 '서버내부 오류입니다'라고 뜹니다. 아래 질문에서 쉬운거는 편집된게 있다고 하는데 배우는단계에 있는 사람으로써는 그렇게 편집되면 많이 당황스럽네요...ㅜㅜㅜㅜㅜ 어디서 틀렸나요?ㅜㅜ UserResponse package com.group.libraryapp.dto.user.response; import com.group.libraryapp.domain.user.User; public class UserResponse { private long id; private String name; private Integer age; public UserResponse(long id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public UserResponse(User user) { this.id = user.getId(); this.name = user.getName(); } public UserResponse(long id, User user) { this.id = id; this.name = user.getName(); this.age = user.getAge(); } public long getId() { return id; } public String getName() { return name; } public Integer getAge() { return age; } } User package com.group.libraryapp.domain.user; import javax.persistence.*; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(nullable = false, length = 20, name = "name") private String name; private Integer age; protected User() { } public User(String name, Integer age) { if (name == null || name.isBlank()) { throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다.",name)); } this.name = name; this.age = age; } public String getName() { return name; } public Integer getAge() { return age; } //User class public Long getId() { return id; } public void updateName(String name) { this.name = name; } } UserRepository package com.group.libraryapp.domain.user; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); } UserController package com.group.libraryapp.controller.user; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import com.group.libraryapp.service.user.UserServiceV2; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class UserController { private final UserServiceV2 userServiceV2; public UserController(UserServiceV2 UserServiceV2) { this.userServiceV2 = UserServiceV2; } @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request) { userServiceV2.saveUser(request); } @GetMapping("/user") public List<UserResponse> getUsers() { return userServiceV2.getUsers(); } @PutMapping("/user") public void updateUser (@RequestBody UserUpdateRequest request) { userServiceV2.updateUser(request); } @DeleteMapping("/user") public void deldteUser (@RequestParam String name) { userServiceV2.deleteUser(name); } } UserServiceV2 package com.group.libraryapp.service.user; import com.group.libraryapp.domain.user.User; import com.group.libraryapp.domain.user.UserRepository; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service public class UserServiceV2 { private final UserRepository userRepository; public UserServiceV2(UserRepository userRepository) { this.userRepository = userRepository; } public void saveUser(UserCreateRequest request) { User u = userRepository.save(new User(request.getName(), request.getAge())); //System.out.println(u.getId()); } public List<UserResponse> getUsers() { return userRepository.findAll().stream() .map(UserResponse::new) .collect(Collectors.toList()); } public void updateUser(UserUpdateRequest request) { User user = userRepository.findById(request.getId()) .orElseThrow(IllegalArgumentException::new); user.updateName((request.getName())); userRepository.save(user); } public void deleteUser(String name) { User user = userRepository.findByName(name); if (user == null) { throw new IllegalArgumentException(); } userRepository.delete(user); } } UserCreateRequest package com.group.libraryapp.dto.user.request; public class UserCreateRequest { private String name; private Integer age; public String getName() { return name; } public Integer getAge() { return age; } }

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 2 좋아요 0 조회수 295

인기 태그

인프런 TOP Writers

주간 인기글