devops

· devops/AWS
아래 글을 이어서 작업합니다.[AWS] CI/CD github에서 git push를 하면 github 액션이 이벤트로 작업 후 배포 이전 방식과 차이는 빌드의 위치다.이전은 빌드를 원격 접속해서 EC2 내부에서 진행했지만 github actions 안에서 빌드랑 테스트 과정을 다 할 수 있다. github actions도 로직을 실행시킬 수 있는 컴퓨터기 때문에 가능하다. 무중단 배포나 여러 EC2에 배포해야한다면 스크립트 작성이 복잡하다는 단점이 있다. 실습시작 전 서버 종료 및 프로젝트 폴더 삭제# 확인lsof -i:8080# 끄기sudo fuser -k -n tcp 8080# rm -rf {프로젝트파일} 이전파일name: Deploy To EC2on: push: branches: -..
· devops/AWS
S3란?파일 저장 서비스 이미지 업로드 기능을 구현할 때 저장하는 위치는EC2 내부 백엔드 프로젝트 폴더 자체에 저장할 수 도 있고EC2 위의 백엔드 서버 자체가 있는 컴퓨터 내부의 어떤 특정 폴더에 파일을 저장할 수도 있다.하지만 이렇게 했을 때 EC2가 지저분해지고 용량을 많이 차지할 수 있다. S3는 파일 저장에 특화된 서비스여서 파일 저장 뿐 아닌 다운로드 및 파일에 대한 부가 기능이 있다.이런 이유 때문에 S3를 사용한다. 아키텍처 이해하기이미지 파일 업로드 과정사용자가 파일을 담아서 이미지 업로드 API로 요청을 보낸다.사용자는 주로 웹페이지가 될 수 있고 다양한 루트가 있을 것이다.EC2에서 돌아가고 있는 백엔드 서버가 S3에 이미지를 전달해 업로드한다.S3에 파일이 저장되면 응답으로 이미지..
· devops/AWS
참고: 아래의  내용을  이어서 진행합니다.[AWS][EC2] 백엔드 API 서버를 배포하기 - EC2 인스턴스 생성 [AWS][EC2] 백엔드 API 서버를 배포하기 - 탄력적 IP 연결 출처: 인프런 비전공자도 이해할 수 있는 AWS 입문/실전 JSCODE 박재성1. 연결하기EC2 인스턴스에 들어간 후 연결 버튼을 누른다.2. Ubuntu 환경에서 JDK 설치JDK 17버전을 설치해보자$ sudo apt update && /sudo apt install openjdk-17-jdk -y설치 확인하기$ java -version 3. Github로 부터 Spring boot 프로젝트 clone$ git clone {프로젝트 github 주소}clone한 프로젝트 폴더에 접속$ cd {프로젝트명} 4. ap..
· devops/AWS
https://jepa.tistory.com/70 [AWS][EC2] 백엔드 API 서버를 배포하기 - EC2 인스턴스 생성배포(Deployment)란?다른 사용자들이 인테넛을 통해서 사용할 수 있게 만드는 것을 의미개발을 할 때는 localhost라는 주소로 테스트도 하고 개발을 하는데, 다른 컴퓨터에서는 접근이 불가능하다. jepa.tistory.com이어서 진행!탄력적 IP의 필요성EC2 인스턴스를 생성하면 IP를 할당받는다.이렇게 할당받은 IP는 임시적인 IP이다. EC2 인스턴스를 잠깐 중지시켰다가 다시 실행시켜보면 IP가 바뀌어있다.EC2 인스턴스를 중지시켰다가 다시 실행시킬 때마다 IP가 바뀌면 사용자가 굉장히 불편해진다. 때문에 중지시켰다가 다시 실행시켜도 바뀌지 않는 고정 IP가 필요한데..
· devops/AWS
배포(Deployment)란?다른 사용자들이 인테넛을 통해서 사용할 수 있게 만드는 것을 의미개발을 할 때는 localhost라는 주소로 테스트도 하고 개발을 하는데, 다른 컴퓨터에서는 접근이 불가능하다. 배포를 하게 되면 IP(ex. 124.16.2.1)나 도메인(ex. www.naver.com)과 같이 고유의 주소를 부여받게 되고, 다른 컴퓨터에서 그 주소로 접속할 수 있게 되는데 이것이 바로 배포(Deployment)다. EC2 (Elastic Compute Cloud) 란?컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스서버를 배포하기 위해서는 컴퓨터가 필요하다. 내 컴퓨터에서 서버를 배포했을 때 고려되는 문제점내 컴퓨터로 서버를 배포하면 24시간 동안 컴퓨터를 켜놔야 한다.인터넷을 통해 내 컴퓨터..
컨테이너 접속docker exec -i -t {컨테이너이름} bash Mysql 루트 접속bash-4.4# mysql -u root -p 데이터베이스 확인 후 생성데이터 베이스 확인show databases;데이터베이스 생성create database {database이름}; 유저 생성유저 확인mysql> use mysql;mysql> select host, user from user; 유저 생성mysql> create user '{유저이름}'@'localhost' identified by '{유저패스워드}';mysql> create user '{유저이름}'@'%' identified by '{유저패스워드}';유저 권한 부여권한 확인mysql> show grants for {유저이름}@'localhost..
내가 RabbitMQ를 사용하고자 하는 이유프로젝트에서 알림의 기능을 구현하고자 했다. 특정 시간마다 스케줄링으로 여러명에게 알림을 보낼 생각이기 때문에 여러명에서 순차적으로 알림을 보내기 보다는 비동기방식으로 보내는 것이 좋다고 생각했다. 비동기 방식을 적용하려 생각했을 때 대표적으로 kafka와 rabbitMQ를 고려할 수 있었다. 간단하게 찾아본 결과kafka는 대용량 메시지 전송과 실시간에 좀 더 적합하다고 이해를 했으며,rabbitMQ는 좀 더 안정성이 있다고 이해를 했다. 프로젝트에서 예약 타임슬롯을 1시간 간격으로 설정하고자 했으며, 예약 10분전에 알림을 보내고, 매일 오전 9시에 다음날에 예약이 있는 경우 해당 예약의 리마인드 알림을 보내고자 했다. 때문에 10분전 알림인 경우 스케줄링을..
je-pa
'devops' 카테고리의 글 목록