[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 (4)
·
SK 루키즈/Cloud
RDS란?AWS 클라우드 내 리소스(서비스들) 중 관계형 데이터 베이스이다.접속 정보를 시크릿으로 관리하여 GitAction 수행 중에 동적으로 pplication.properties|yml 등 파일을 생성하고 빌드하며 jar 구성한다. 민감한 정보들을 Github에 노출되지 않기 때문에 적용해 보겠다.(가장 과금사고가 많이 발생하므로 주의가 필요하다.) RDS 초기구성먼저 AWS에 접속하여 RDS를 검색한다. 데이터 베이스 생성을 누른다.  표준생성으로 MySQL을 선택하도록 하겠다. 아래의 필터에서는 AZ는 리전을 사용하기 때문에 비용이 발생할 수 있다. 전부 끄도록 한다.(빠른, 다중, 최적화 등 좋은 기능은 대부분 비용이 발생한다)  무료로 사용하기 때문에 프리티어를 생성한다.  아래는 데이터베이..
[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(설정)..
[Rookies 개발 2기] VPC 기본 개념 및 설정
·
SK 루키즈/Cloud
VPC란?AWS에서 VPC를 검색해 보자. Virtual  Private Cloud의 약자로 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있다. 자 그럼 생성버튼을 눌러보자. 생성  그다음 미리 보기를 보면  이런 식으로 보이는데 VPC는 서브넷으로 연결되고 서브넷은 라우팅 테이블로 연결되게 된다. 서브넷을 쓴다는 건 대역폭을 쓴다는 의미와 같다. 3 tier로 만들 예정이므로 퍼블릭은 1개 프라이빗은 2개로 설정한다. 이렇게 되면퍼블릭은 외부로아래 두 개의 프라이빗은 내부로 연결되게 된다. 그다음 생성을 누르면  생성되게 된다. 그다음 VPC를 다시 눌러보면처음 로그인할 때 만들어진 1번째와 방금 만든 tier-infra-vpc가 보인다. 이제 EC2로  이동하자. 그다음 인스턴스를 ..
[Rookies 개발 2기] 스프링부트 + GitAction + CI/CD (1)
·
SK 루키즈/Cloud
이번에는 AWS console에서 git clone과 build 해보는 과정을 하겠다. GitAction 이란?GitHub에서 제공하는 CI/CD(Continuous Integration and Continuous Deployment) 플랫폼이며 소프트웨어 개발 워크플로우를 자동화할 수 있는 도구이다.또한, 코드 테스트, 빌드, 배포, 린팅(linting), 패키징 등의 작업을 자동으로 실행 가능하다. 비슷한 제품으로는 Jenkins(젠킨스)가 있으며 더 많은 커스터마이징과 다양한 환경 지원 필요시 사용하기도 한다. 메모리를 증량해보자먼저 프리티어 EC2 메모리를 증량해 보겠다.EC2 연결후 진행한다.# 공간 확인$ free -h#swap 절차#1. dd 명령을 사용하여 루트 파일 시스템에 스왑 파일 생..
[Rookies 개발 2기] AWS에 Java Spring 프로젝트를 올려보자 (2)
·
SK 루키즈/Cloud
자 이제 초기 세팅이 끝이 났다. 먼저 AWS에 Spring을 올리기 위해서는 Jar 파일로 만들어서 내보내주어야 한다. Spring Jar 생성Gradle탭에 들어가 Build를 눌러준다.여기서 bootJar을 실행하면 된다. 이렇게 되면 아래와 같은 경로에 파일이 생성되게 된다.파일 명은 `프로젝트명-version값. jar` 로 생성되게 된다.여기서 jar은 뭐고 bootjar은 뭐지라는 궁금증이 생길 것인데, 아래 표에 설명하겠다. 특성 (*)bootJar→단독구동(주연)jar→단독구동 X(조연)용도실행 가능한 Spring Boot 애플리케이션 JAR 생성기본 Java 클래스 파일을 포함한 JAR 생성내장 WAS 서버 포함 여부포함 (예: Tomcat, Jetty)미포함의존성 포함 여부포함미포함실..
[Rookies 개발 2기] AWS에 Java Spring 프로젝트를 올려보자 (1)
·
SK 루키즈/Cloud
들어가기 앞서먼저 스프링 프로젝트를 만들어야 한다.JDK - openjdk 17.0.2IntelliJ IDEA Ultimate로 진행하겠다. 먼저 우리의 목적은 AWS의 작동원리와 jar을 올리는 법이므로 Spring 파트는 간단히 넘어가겠다. Spring 초기 세팅먼저 위 사진과 같이 새 프로젝트를 생성한다. 여기서 주의해야 할 점은 왼쪽에 있는 제너레이터는 Spring Boot로JDK와 Java는 17 버전, 패키지 생성은 Jar로 진행한다.(이름 같은 경우는 무관) 그 후 라이브러리 설치에Devtools, Lombok, Spring Web, Thymeleaf를 각각 추가해 준다. 작동방식을 확인하기 위해 `HomeController`를 생성할 차례다.먼저 `src/main/resources/temp..