묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비전공자도 이해할 수 있는 AWS 입문/실전
비용 조회하는 방법
안녕하세요 강의 너무 잘 듣고 있습니다!다름이 아니라 RDS 강의를 모두 듣고 지금까지 쓴 비용이 궁금해져서 '[보충강의] 혹시나 비용 나가지 않는 지 체크하는 방법'을 보며 '결제 및 비용 관리 > 청구서' 에 들어가봤습니다. 근데 권한이 없다고 관리자에게 권한을 추가하도록 요청하라는 빨간 글씨만 뜨더라구요. 검색해보니까 IAM 계정은 결제 정보 메뉴에 접근 권한이 존재 하지 않아서 root계정으로 들어와서 권한을 줘야 볼수있다는데, 그럼 그냥 간단하게 요금을 확인하려면 root 계정으로 로그인해서 조회하면 IAM계정에서 결제했던 도메인이나 사용했던 서비스 비용을 똑같이 볼 수 있는거나 마찬가지인거죠??
-
해결됨Flutter로 웹 서비스 개발하기 (1) - Responsive Web
안녕하세요. 소스 문의입니다~
강의를 들었는데... github소스라든지 그런게 안보이든데...결제했는 사람조차도 소스 제공이 안되나용?답변 부탁드립니당~
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
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 causejava.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도 한번 삭제 후 다시 실행했는데 같은 에러가 발생하네요.. 이유와 해결방법이 궁금합니다..!
-
해결됨스스로 구축하는 AWS 클라우드 네트워크 - 기본편
targetgroup
로드밸런스 타겟그룹을 만들때 이런 에러가 뜨는데 레퍼런스를 찾아봐도 잘 없네요.. 시간이 안맞는거 같은데이건 어느 부분을 봐야할까요??
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
인스턴스 타겟그룹 등록 언헬시
인스턴스 만들때 라우팅 테이블 어떻게 설정 되어 있나요 nat랑 연결되어있나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
도애체 어디에서 오류가 난건지 모르겠습니다.
다음과 같이 코드를 했는데 24강까지 애플리케이션에서 잘 삭제되고, 잘 저장되었는데 25강이후 코드는 실행되는데 '나이'가 입력을 해도 00세로 나오고, 목록에서 삭제하려고하면 '서버내부 오류입니다'라고 뜹니다.아래 질문에서 쉬운거는 편집된게 있다고 하는데배우는단계에 있는 사람으로써는 그렇게 편집되면 많이 당황스럽네요...ㅜㅜㅜㅜㅜ어디서 틀렸나요?ㅜㅜUserResponsepackage 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; } }Userpackage 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; } }UserRepositorypackage com.group.libraryapp.domain.user; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); } UserControllerpackage 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); } } UserServiceV2package 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); } } UserCreateRequestpackage 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; } }
-
해결됨스스로 구축하는 AWS 클라우드 네트워크 - 기본편
sg
안녕하세요 강의 잘 보고 있습니다 선생님이 실습하신것 처럼 sg 인바운드 80열고 아웃바운드는 디폴트 nacl도 디폴트 그대로 사용하고 있는데(all port range)웹으로 public ip를 접속하면 접속이 되지 않는데.. 체크해야될 부분이 또 있을까요??
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
역할과 정책에 관한 질문
IAM 설정을 처음해보면서 역할과 정책에 대한 개념이 아직 제대로 이해되지 않은거 같아 질문드립니다.'다른 AWS 리소스에 접근하기 위해선 역할이나 사용자를 생성해 그 안에서 정책을 연결해서 권한을 부여해야한다.' 이렇게 이해했는데 맞을까요?ec2에서는 역할을 만들때 정책을 생성했는데 CodeDeploy에서는 정책을 설정하지 않아도 되는 이유가 궁금합니다.EC2 인스턴스는 역할 연결을 통해, github actions는 엑세스 키를 통해 권한을 부여받는다고 이해했는데 맞을까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
도커 이미지 푸시까지는 성공하나, ssh에서 fail이 나옵니다.
강의 및 노션에 있는 부분을 최대한 응용해서, next.js app을 생성중입니다.ecr 저장소에서 도커 이미지가 확실히 푸시되었지만, ssh접속에서 에러가 발생했습니다.======CMD====== docker stop instagram-server || true docker rm instagram-server || true docker pull 767398114270.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest docker run -d --name instagram-server -p 3000:3000 767398114270.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest ======END====== err: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.44/containers/instagram-server/stop": dial unix /var/run/docker.sock: connect: permission denied err: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Delete "http://%2Fvar%2Frun%2Fdocker.sock/v1.44/containers/instagram-server": dial unix /var/run/docker.sock: connect: permission denied err: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.44/images/create?fromImage=767398114270.dkr.ecr.ap-northeast-2.amazonaws.com%2Finstagram-server&tag=latest": dial unix /var/run/docker.sock: connect: permission denied 2024/08/13 11:11:21 Process exited with status 1그래서 workflow를 수정했는데, 밑에 처럼 진행하니 정상처리가 되었습니다.- name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} # 인스턴스의 퍼블릭 IP 또는 DNS 이름 username: ${{ secrets.EC2_USERNAME }} # 일반적으로 'ubuntu' 또는 'ec2-user' key: ${{ secrets.EC2_PRIVATE_KEY }} # SSH 개인 키 script_stop: true script: | aws ecr get-login-password --region ap-northeast-2 | sudo docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }} sudo docker stop instagram-server || true sudo docker rm instagram-server || true sudo docker pull ${{ steps.login-ecr.outputs.registry }}/instagram-server:latest sudo docker run -d --name instagram-server -p 3000:3000 ${{ steps.login-ecr.outputs.registry }}/instagram-server:latest혹시 제가 실수하거나 놓친 부분이있을까요??
-
해결됨Flutter로 웹 서비스 개발하기 (1) - Responsive Web
그리고 또 다른 질문~
이후의 강의 일정은 언제쯤 잡고 계신가요?플러터에서의 SEO강의 너무 듣고 싶어요.. ㅎㅎㅎ
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강신청 연장부탁드립니다
안녕하세요 수강신청 연장이 가능할까요?감사합니다.
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
ECS Fargate 배포후 504 time-out
안녕하세요, 회사에서 GCP에서 AWS로 인프라를 이관 중에 있습니다. 강의를 들으면서 개발 서버를 이관했고 ECS에 서비스를 작동 중입니다. 하지만, Deploy는 Failed 하고 504 timeout-error가 발생하면서 ALB의 IP들도 모두 unhealthy 상태입니다. 이상한 점은 ECS에서 서비스 로그를 확인하면 스케줄러로 등록해뒀던 작업들이 실행되는 로그를 확인할 수 있습니다. 이로 미루어 볼때 서버는 실행이 되고 있는 상태이나 외부에서 접근이 안되는 것 같아 security-group 과 vpc 설정, 포트도 확인을 해봤었는데요. 그래도 해결을 못하고 있어서 이렇게 질문 남겨 둡니다. ㅠㅠALB Resource map2. ECS service 상태서비스 이벤트 로그 service has started 1 tasks: task ******* Amazon ECS replaced 1 tasks due to an unhealthy status.service registered 1 targets in target-group *****service port 3000 is unhealthy in target-group *** due to (reason Health checks failed).service deployment *** deployment failed: tasks failed to start.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 findAll듣던중에
다음 첨부파일처럼 공유자께(첨부1)서는 public UserResponse(long id, User user) { }가 있습니다.그런데 저는 지금까지 쓴 코드에서 첨부파일(첨부2)처럼 저 코드부분이 없습니다.몇강에서 놓친건가요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 질문있습니다.
저장기능 변경에서 save를 하게 되면 저장된 User객체가 반환되는데 이때 id를 사용할 수도 있다.라고 했는데반환되는것이 User객체의 ID인건가요?그리고 꼭 반환 안하고 처음에 작성했던 public void saveUser(UserCreateRequest request) { userRepository.save(new User(request.getName(), request.getAge())); }이렇게 써도 되는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
25강 질문있습니다
JpaRepository를 UserRepository가 상속받게 해줄때, 만든 테이블의 매핑 객체인 User 와 유저 테이블의 id인 Long 타입을 각각 적어주어야 한다고 하셨는데 user객체는 이해가 가는데 갑자기 id인 Long타입은 왜 적나요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
배포는 성공하지만, pm2 list를 확인해보면 에러가 발생이 되어있습니다.
해당 부분을 응용해서, aws linux / next.js를 진행하고 있었습니다. 앞선 강의는 잘 되었으나, 해당 강의해서 어려움을 겪게되어 질문을 남기게 되었습니다.우서 배포를 확인해보니 성공, s3버킷에는 압춗파일이 잘 올라갔습니다.ls를 통해서 디렉토리까지 생성이 되는것을 확인하였습니다.하지만 node_modules가 설치가 안되어 log를 확인해보니,아래와 같은 에러가 발생합니다. 혹시 설정에 문제가 있을까요? cd: /home/ec2-user/instantgram-server: No such file or directory 2024-08-12 15:00:19 [stderr]npm ERR! Tracker "idealTree" already exists 2024-08-12 15:00:19 [stderr] 2024-08-12 15:00:19 [stderr]npm ERR! A complete log of this run can be found in: /home/ec2-user/.npm/_logs/2024-08-12T15_00_19_547Z-debug-0.log 2024-08-12 15:00:20 [stdout][PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/.pm2 2024-08-12 15:00:20 [stdout][PM2] PM2 Successfully daemonized 2024-08-12 15:00:20 [stderr][PM2][WARN] No process found 2024-08-12 15:00:20 [stdout][PM2] [v] All Applications Stopped 2024-08-12 15:00:20 [stdout][PM2] [v] PM2 Daemon Stopped 2024-08-12 15:00:21 [stdout][PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/.pm2 2024-08-12 15:00:21 [stdout][PM2] PM2 Successfully daemonized 2024-08-12 15:00:21 [stdout][PM2] Starting /usr/bin/npm in fork_mode (1 instance) 2024-08-12 15:00:21 [stdout][PM2] Done.#appspec.yml version: 0.0 os: linux files: # S3에 저장한 파일들 중 destination(AWS EC2)으로 이동시킬 대상을 지정한다. # / 이라고 지정하면 S3에 저장한 전체 파일을 뜻한다. - source: / # EC2의 어떤 경로에 저장할 지 지정한다. destination: /home/ec2-user/instagram-server permissions: - object: / owner: ec2-user group: ec2-user hooks: ApplicationStart: - location: scripts/start-server.sh timeout: 60 runas: ec2-user#deploy.yml name: Deploy To EC2 on: push: branches: - master jobs: Deploy: runs-on: ubuntu-latest steps: - name: Github Repository 파일 불러오기 uses: actions/checkout@v4 # Github Repository의 파일을 가져오는 Action - name: Node.js 설치 uses: actions/setup-node@v4 # Node.js를 설치하는 Action with: node-version: 18.x # Node.js 버전 - name: 의존성(라이브러리) 설치 run: npm ci # npm ci는 package-lock.json에 있는 의존성을 설치하는 명령어 - name: .env 파일 만들기 run: | echo '${{ secrets.ENV }}' > .env - name: 테스트 코드 실행 run: npm run test - name: 빌드 run: npm run build # 빌드 - name: 압축하기 run: tar -zcvf $GITHUB_SHA.tar.gz appspec.yml scripts public .next .env package.json package-lock.json # 압축 - name: AWS Resource에 접근할 수 있게 AWS credentials 설정 uses: aws-actions/configure-aws-credentials@v4 with: aws-region: ap-northeast-2 aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCRESS_KEY }} - name: S3에 프로젝트 폴더 업로드하기 run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.tar.gz s3://instagram-server-s3/$GITHUB_SHA.tar.gz - name: Code Deploy를 활용해 EC2에 프로젝트 코드 배포 run: aws deploy create-deployment --application-name instagram-server --deployment-config-name CodeDeployDefault.AllAtOnce --deployment-group-name Production --s3-location bucket=instagram-server-s3,bundleType=tgz,key=$GITHUB_SHA.tar.gz #start-server.sh #!/bin/bash echo "-----------------서버 바로 배포 시작-----------------" cd /home/ec2-user/instantgram-server npm i pm2 kill pm2 start npm --name "my-next-app" -- start echo "-----------------서버 바로 배포 끝-----------------"
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장부탁드립니다.
강의를 보기도 전에 시험이 다가와 연기했네요...강의 수강기간 연장부탁드립니다. ㅠㅠ
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
14강. 유저 업데이트 API, 삭제 API 개발과 테스트 수정하기 안됨
코드대로 글을 잘 작성하고 POST,GET,DELETE도 전부 잘 동작하고 db에서도 확인이 되는데,수정하기만 동작하지 않습니다..어떻게 해야할까요..수정하기 버튼을 누를시 아무런 화면의 변화가 없습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
구글링해서 나온건 다따라해봤는데 ,...안돼네요 강사님 하신거랑 똑같이했는데 메시지는 키값을못찾는다고나오는거같은데...이거 방법이 없을까요
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
질문입니다.
비전공자도 이해할 수 있는 AWS 입문/실전 인강을 다 듣고 비전공자도 이해할 수 있는 CI/CD 입문·실전 을 들으려고 하는데 강의가 겹치는것 같아요? 어디서부터 들으면 될까요?