[Rookies 개발 2기] AWS S3 버킷 정책 오류 설정
·
SK 루키즈/Cloud
문제점 발생Rookies 개발 2기의 두 번째 프로젝트를 진행하는 과정에서 문제가 발생하였다.우리의 프로젝트는 간단히 설명하자면 기업용 메신저 애플리케이션이다. 사진과 파일처리는 DB를 쓰지 않고 AWS에서 제공하는 S3를 통해 제공하고자 하였다.다만 이 과정에서 문제가 발생하였다. 이런 식으로 채팅창을 만들고 사진을 보내면 내 어플리케이션에는 이런식으로 사진이 뜨지만 상대방 화면에서는 뜨지 않는 게 확인되었다. 한 개의 계정으로만 개발하고 테스트하여 나중에 확인된 문제였다.  의심 과정첫 번째 의심: S3 업로드 오류먼저 사진이 정상적으로 업로드되지 않았나? 를 의심하며 접속하여 확인하게 되었다.  예시로 보낸 사진이며 해당 객체 URL을 받아 상대방의 애플리케이션에도 뿌려주게 되는 구조이다. 여기서 ..
[Rookies 개발 2기] AWS 서버리스 개념과 ECS와 Lambda
·
SK 루키즈/Cloud
AWS 서버리스란? AWS 서버리스는 MSA(Microservices Architecture)에서 특정 서비스를 서버리스로 구성하는 데 유용하다. 이 방식은 개발 주기를 단축시켜 주며, 독립적이고 신속하게 업무를 처리할 수 있게 해 준다. 또한, 서비스 수요에 따라 가용성을 적절히 조절할 수 있는 확장성을 제공한다. AWS에서 제공하는 서버리스 서비스 중 대표적인 서비스는 Lambda이다. Lambda는 서버리스 컴퓨팅 서비스로, 서버를 프로비저닝하거나 관리할 필요 없이 코드만 업로드하면 실행할 수 있다. 반면, ECS는 Docker 컨테이너 기반으로 애플리케이션을 실행할 수 있게 해주는 컨테이너 관리 서비스다. 이 두 서비스는 사용 방식과 장점이 다르기 때문에 살펴보도록 하자. ECS  ECS는 Doc..
[Rookies 개발 2기] AWS S3 에 Spring 업로드 처리
·
SK 루키즈/Cloud
시작프로젝트 생성먼저 IntelliJ에서 새 프로젝트를 생성한다. 프로젝트구성은 SpringBoot로 종속성은 아래와 같이 간단히 추가하겠다. build.gradle그리고 build.gradle 에 아래와 같은 내용을 추가해 준다. implementation platform('software.amazon.awssdk:bom:2.20.147') // AWS SDK BOMimplementation 'software.amazon.awssdk:s3' // S3 클라이언트implementation 'org.springframework.boot:spring-boot-starter-validation' // 파일 유효성 검증에 사용implementation 'org.springframework.cloud:spring..
[Rookies 개발 2기] S3 AWS KEY 발급
·
SK 루키즈/Cloud
먼저 IAM > 사용자에 들어가 자신의 계정을 클릭한다.  해당 화면이 보이면 액세스 키 만들기를 클릭한다.  여기서 우린 EC2와 같이 AWS컴퓨팅 서비스를 실행하기 위함이므로  해당사항을 체크한다. 액세스 키와 비밀키가 발급되고 해당 키는 다시 열람 할 수 없으므로,메모하거나. csv파일로 다운로드하여서 확인한다.  이렇게 키가 발급되고 들어가서 확인 할 수 있다.
[Rookies 개발 2기] React + SpringBoot + MySql CI/CD (2)
·
SK 루키즈/Cloud
백엔드 시작이번엔 백엔드 파트이다. 설정등 많은 부분이 프런트와 비슷한 결이므로 빠르게 진행하겠다.작업 순서는 아래와 같다. Spring의 보안 설정 후GitAction Security 설정EC2 업로드 및 배포SecuritySpring 설정먼저 `application.properties` 파일로 가서 맨 아래에 ip주소를 변수로 만들어 주자. #Custom settings (protocol, domain, port)app.release_ip=http://내 ip주소app.release_domain=http://www.example.comapp.dev_ip=http://localhost:3000 여기서 제일 중요한건 `release_ip`이며 나머지는 추후를 위해 생성해 둔 것이다. 그렇다면 이 변수를 ..
[Rookies 개발 2기] React + SpringBoot + MySql CI/CD (1)
·
SK 루키즈/Cloud
앞서지난 시간 배운 내용을 토대로 React와 SpringBoot 그리고 MySql까지 CI/CD로 배포해 보겠다.먼저 진행한 Github 주소이다.BackEnd: https://github.com/iseungho/project-cicd-backend GitHub - iseungho/project-cicd-backendContribute to iseungho/project-cicd-backend development by creating an account on GitHub.github.comFrontEnd: https://github.com/iseungho/project-cicd-frontend GitHub - iseungho/project-cicd-frontendContribute to iseungh..
[Rookies 개발 2기] 스프링부트 + GitAction + CI/CD (3)
·
SK 루키즈/Cloud
여기까지자 여기까지 우린 수동으로 AWS EC2에 업데이트해보는 과정부터GitAction을 통해 Push할 시 자동으로 build를 실행하고 EC2에 업로드하는 방법까지 진행했다. 다음으로 할 것은 EC2에서 GitAction으로부터 받은 .jar 파일을 실행하는 내용이다.다시 IntelliJ로 돌아가보자. 스크립트 수정 전체적인 순서는 아래와 같이 진행된다.기존 jar 파일 삭제 처리(업로드 위치 구동위치 구분)구동 위치: /home/${{ secrets.EC2_USER }}/server/webjar 파일 이동 (~/demo/*.jar -> ~/web/*. jar)기존 서버 중단 -> kill 8080 port서버 구동먼저 스크립트가 실행 중이면 멈추도록 설정한다. - name: SSH to..
[Rookies 개발 2기] 스프링부트 + GitAction + CI/CD (2)
·
SK 루키즈/Cloud
자 이번에는 1편의 수동에서 GitAction을 사용해서 자동화로 만들어 보겠다. Action 설정 이번에는 1편의 수동에서 GitAction을 사용해서 자동화로 만들어 보겠다.   Action 설정깃허브에서 레퍼지스토리를 들어가면 위에 Actions 탭을 확인할 수 있다.하지만 설정하기 전 워크플로우 구성을 먼저 해야 한다. 깃허브 변수를 추가해 주자. 사용자에 따라 옵션이지만 비용을 지불하고 사용하는 DB일수록 필수로 설정해주어야 한다.변수 설정  위 페이지에서 sb환경변수와 민간함 정보 등을 관리할 수 있다.특히 Spring boot의application.properties 와 yml 파일이나,EC2_HOST(설정) : ec2 접속 정보EC2_KEY(설정) : ec2 접속 정보EC2_USER(설정)..