Github Actions의 장점무료 사용빌드용 서버가 따로 필요 없음Github Actions 이란 일종에 로직을 실행시킬 수 있는 컴퓨터이다 CI/CD 과정코드 작성 후 COMMITGithub에 PUSHPUSH 감지해서 Github Actions에 작성한 로직 실행빌드테스트(생략하기도 함)서버로 배포서버에서 배포된 최신 코드로 서버를 재 실행 Github Actions 사용방법새로운 프로젝트 만들기spring boot로 CI/CD 파이프라인을 구축할 것임 . github/workflows/deploy.yml 만들기 .github 폴더 생성 (프로젝트 최 상단에 위치)workflows 폴더 생성 (여기까지는 스펠링도 틀리면 안 됨 , 주의하기). yml 파일생성 ( 이름은 자유롭게)# Workflo..
jjuya
포트포워딩 오류포드 포워딩 방법 [AWS] Spring boot AWS 배포 - 포트포워딩 & nohup적용포트포워딩포트 번호 없애기지금은 8080 포트에서 웹 서비스가 실행되고 있습니다. 그래서 매번 :8080이라고 뒤에 붙여 줘야 합니다. 뒤에 붙이는 포트 번호를 없애볼 겁니다.HTTP요청에서는 80 포jjuya.tistory.com 해당방법으로 포드 포워딩을 실행했는데 80 포트로 포워딩이 되지 않았다 처음 실행한 명령어sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080이 명령어는 포트 80으로 들어오는 TCP 트래픽 포트 8080으로 리다이렉트 하도록 iptables에 규칙을 추가하는 명령어이..
⭐용어 정리배포다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 방법 EC2컴퓨터 대여의 개념원격으로 접속해서 사용하는 서비스주로 백엔드 서버를 배포할때 사용(로깅, 오토스케일링, 로드밸런싱기능) 리전물리적인 컴퓨터를 가지고 있는 위치리전마다 EC2를 따로 관리 하고 있음리전 선택 기준애플리케이션을 사용하는 사용자들이 있는 지리적 위치와 가까운 리전 선택!WHY? 거리가 멀면 멀수록 늦어지기 때문에 인스턴스 시작OS란?window나 mac과 같은 우리에게 친근한 os 말고 왜 ubunto를 설정해야 할까?window나 mac은 사용자가 사용하기 편하도록 여러 가지 배포와는 상관없는 기능들이 많이 들어가 있음반면에 ubunto - 배표시 필요한 기능만 들어가 있고, 가볍고 성능이 좋음 인스턴스란?E..
Docker Compose란?여러 개의 Docker 컨테이너들을 하나의 서비스로 정의, 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴 Docker compose를 사용해야하는 이유여러 개의 컨테이너를 관리하는데 용이복잡한 명령어로 실행시키던걸 간소화시킬 수 있음$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql위와 같이 복잡하게 실행시키던걸 docker compose를 사용하면 " docker compose up" 명령어만 실행시키면된다! Docker Compose CLI💡아래 명령어는 c..
Dockerfile이란?Docker이미지는 DockerHub에서 다운로드하여 사용할 수 있다.이 이미지는 누군가 만들어서 올려놓은것이다. 그렇다면 이 이미지는 어떻게 만드는 것일까? Dockerfile이라는 걸 활용해서 Docker이미지를 만들 수 있다! 정리하자면, Dockerfile이란 Docker 이미지를 만들게 해주는 파일이다. FROM : 베이스 이미지 생성FROM 란?베이스 이미지를 생성하는 역할Docker 컨테이너를 특정 초기 이미지(베이스 이미지)를 기반으로 추가적인 세팅을 할 수 있다사용법태그명을 사용하지 않으면 latest 버전을 사용# 문법FROM [이미지명]FROM [이미지명]:[태그명] COPY : 파일 복사(이동)COPY란?호스트 컴퓨터에 있는 파일을 복사해 컨테이너로 전달사..
컨테이너 생성이미지를 바탕으로 컨테이너 생성실행시키지는 않음생성만 하고 생성하고 실행시키지 않는 경우는 없으므로 잘 사용하지 않는다다운로드한 이미지가 없을 경우 ( 다운로드하여서 컨테이너 생성함 )# docker create 이미지명[:태그명]$ docker create nginx$ docker ps -a # 모든 컨테이너 조회 컨테이너 실행정지되어있는 컨테이너 실행# docker start 컨테이너명[또는 컨테이너 ID]$ docker start 컨테이너명[또는 컨테이너 ID]$ docker ps # 실행중인 컨테이너 조회# Nginx 컨테이너 중단 후 삭제하기$ docker ps # 실행 중인 컨테이너 조회$ docker stop {nginx를 실행시킨 Contnainer ID} # 컨테이너 중단$ ..
이미지(image) 다운로드이미지 다운로드# docker pull 이미지명$ docker pull mysql # docker pull mysql:latest와 동일하게 작동이미지에는 태그라는 것이 있는데 이게 이미지의 버전을 의미한다!이미지의 버전은 Dockerhub 사이트의 tag를 확인하면 알 수 있다.Dockerhub은 Github처럼 이미지를 저장 및 다운받을 수 있는 저장소 역할을 하고 있다. tag이미지의 버전 / 특정 버전을 나타내는 것 이미지 특정 버전(Tag) 다운로드 방법# docker pull 이미지명:태그명$ docker pull nginx:stable-perl 이미지(image) 조회 / 삭제이미지 조회$ docker image lsls : list의 약자REPOSITORY : ..
Docker를 사용하는 이유이식성특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 -> 예를 들자면 이사를 편하게 할 수 있다!Docker를 사용하면 명령어 한 줄로 어떤 컴퓨터든 MySQL을 에러 없이 설치, 실행이 가능하다.설치과정을 거치지 않아도 됨항상 일관되게 프로그램 설치 가능( 버전, 환경설정, 옵션, 운영체제 등)독립적인 환경에서 실행되기 때문에 프로그램간 충돌이 일어나지 않음 💡 IP란?- 특정 컴퓨터를 가리키는 주소💡Port란?- 한 컴푸터 내에 실행되고 있는 특정 프로그램의 주소💡브라우저의 기본 포트 :80- 기본적으로 80 포트 번호를 가지고 있기 때문에 주소에 :80을 입력하지 않아도 실행된다!💡well-known port란?포트번호는 0 ~ 65,53..
CI/CD란?간단하게 말하자면어플리케이션 개발 단계부터 배포까지 모든 단계를 자동화를 통해 효율적이고 빠르게, 사용자에게 빈번히 배포할 수 있도록 만드는 것 CI( Continuous Intergration ) - 지속적인 통합버그 수정이나 새로운 기능 들을 메인 repository에 지속적으로 build 되고 test가 되어 merge 되는 것 1. 개발자들은 코드 변경 사항을 주기 적으로 빈번하게 머지해야 한다.나중에 merge 하려고 하면 그 소스코드들을 충돌 없이 merge 하려고 하는데 시간이 들기 때문에이 기능을 어떻게 작은 단위로 나누어서 개발하고 통합해 나가는 지가 중요! 2. 통합을 위한 단계 (빌드, 테스트, 머지)의 자동merge 된 코드를 + CI스크립트를 통해 build / uni..
AWS 도메인 연결AWS 설정 - Route 53해당 서비스 요금 부과 될 수 있음! 꼭 확인하기!(참고 링크)나도 요금이 부과 됬다^^프리티어여도 Route 53 사용시 요금 부과 될수 있다청구서에 보면 Virtual Private Cloud 라는 항목도 있는데 퍼블릭 ip에 대한 사용 요금이라고 한다 😞(참고 링크) 1.Route 53 검색 후 호스팅 영역 생성대시보드 > 호스팅 영역 > 호스팅영역 생성https://us-east-1.console.aws.amazon.com/route53/v2/home?region=ap-northeast-2#Dashboard 2. 호스팅 영역 생성 설정도메인 이름에 구매할/한 도메인 이름 적기 3. 생성한 호스팅 레코드 생성 4. 레코드 생성 설정 5. 레코드 생성..