분류 전체보기
-
[docker] docker volume으로 mysql 서버띄우기docker 2024. 12. 6. 19:10
docker volume으로 mysql 서버띄우기 볼륨- 도커 컨테이너에서 데이터를 영속적으로 저장하기위한 방법- 볼륨은 컨테이너 자체의 저장공간을 쓰지않고 호스트 자체의 저장공간을 공유해서 사용한다- 도커 컨테이너는 삭제하면 데이터가 삭제된다. 볼륨을 쓰는 이유- 기존에는 도커를 써서 특정 프로그램을 컨테이너로 띄웠다. 여기서 프로그램의 새로운 버전이 나오면 새로운 이미지를 통해 새로운 컨테이너를 만들게 된다. 이때 만약 이 컨테이너가 mysql 이었다면 mysql내 데이터들도 함께 삭제된다.- 그래서 데이터의 영속성을 위해서 볼륨을 이용해야한다.- 이를 통해 새로운 컨테이너를 쓰더라도 기존의 데이터를 유지할 수 있다.- 볼륨을 이용하면 호스트와 컨테이너에서 연결된 각각의 주소가 공간을 공유한다. 따라..
-
[docker] 도커, 도커 CLI 알아보기docker 2024. 12. 6. 15:00
도커 알아보기 도커를 쓰는이유 - 이식성특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행, 배포할 수 있다.도커를 쓰면 어떤 컴퓨터든 특정 프로그램을 에러 없이 설치하고 실행할 수 있다.그외장점)매번 귀찮은 설치과정을 일일이 거치지않아도된다.항상 일관되게 프로그램을 설치할 수 있다(버전, 환경 설정, 옵션, 운영체제와 상관없이)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램간 충돌이 일어나지 않는다. Docker컨테이너를 사용하여 각각의 프로그램을 분리된환경에서 실행 및 관리할 수 있는 툴이다 컨테이너- 하나의 컴퓨터 환경내에서 독립적인 컴퓨터 환경을 구성해서 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념. - 하나의 컴퓨터 환경에서 여러개의 미니 컴퓨터 환경을 구성.- 여기서 미..
-
[CI/CD] github-actions를 이용한 CI/CD구축-3 (+AWS code deploy)CICD 2024. 12. 4. 20:13
github-actions를 이용한 CI/CD구축-3 (+AWS code deploy) code deploy를 사용하는이유 (장점)code deploy는 여러대의 ec2 서버에 자동 배포를 쉽게 구축할 수 있다쉽게 무중단 배포를 적용할 수 있다.그외 장점(둘다 github-actions의 단점을 커버하는 것) code deploy 단점code deploy를 이용함으로써 인프라 구조가 복잡해진다. 복잡해질수록 관리비용, 유지보수 비용, 난이도, 트러블슈팅, 복잡도가 증가한다 code deploy 는 언제써야 좋을까?서버가 여러대이거나무중단 배포가 중요한 서비스일때이용한다. 소규모 프로젝트일때는 오버엔지니어링이 될 수 있기때문에 사용을 지양한다. github-actions를 이용한 CI/CD..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-2 개선CICD 2024. 12. 4. 20:02
Github-Actions로 CI/CD 구축하기-2Github-Actions CI/CD 흐름 개선하기 기존 Github-Actions의 방식 기존 방식의 문제점인스턴스에서 git pull을 통해 코드를 다운받고 직접 빌드를 했다. 하지만 빌드를 하는 작업은 무겁기때문에 이는 서버의 성능에 영향을 미친다. 새로 개선된 방식 Github-Actions는 컴퓨터이기 때문에 빌드와 테스트를 여기서 해주고 빌드된 파일을 인스턴스로 전달할 수 있다.빌드된 파일을 전달할때 압축을 해놓기 때문에 인스턴스에서 압축을 풀고 이를 갖고 서버 재실행. 개선한 방식의 장점빌드를 인스턴스가 아닌 github-actions에서 하기때문에 배포서버의 성능에 영향을 미치지 않는다. 개선한 방식의 단점무중단 배포를 구현하거나..
-
[Linux] tar 압축 명령어 알아보기카테고리 없음 2024. 12. 4. 19:56
tar 압축 명령어 알아보기 리눅스에서는 사실 파일을 묶는 것과 압축하는 개념이 분리되어있다. 아카이빙(파일을 묶는것): 하나의 파일에 파일들과 디렉토리들을 묶는 것(용량변화없이)압축: 파일이 차지하는 용량을 줄이는것 아카이브: 하나로 묶인 파일 tar 명령어여러개의 파일을 하나로 묶거나 풀때 사용하는 명령어 tar [OPTION] [아카이브FILE명] [FILE|PATH] -f 대상파일을 tar 아카이브 지정 (기본 옵션)-c tar 아카이브 생성. 기존 아카이브 덮어 쓰기 (파일 묶을 때 사용)-x tar 아카이브에서 파일 추출(파일 풀 때 사용)-v 처리되는 과정(파일 정보)을 자세하게 나열-z gzip 압축 적용 옵션-t tar 아카이브에 포함된 내용 확인 참고: https://i..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-1CICD 2024. 12. 4. 17:05
Github-Actions로 CI/CD 구축하기-1프로젝트 적용해보기 1. Nest JS 프로젝스 세팅nest new [프로젝트명]nest new github-practice-server 2. Github에 프로젝트 올리기 2-1) 깃허브 프라이빗 레포지토리 생성 2-2) 레포지토리에 프로젝트 올리기cd github-action-practicegit initgit add .git commit -m "first commit"git branch -M maingit remote add origin [레포지토리 URI]git push -u origin main 3. EC2 세팅 3-1) EC2 보안그룹 3000포트열기 NestJS는 기본적으로 3000포트에서 실행된다. 3-2) node 설치sudo apt..
-
[Github-Actions] Github-Actions와 CI/CD 알아보기CICD 2024. 12. 4. 12:28
Github-Actions와 CI/CD 알아보기 CI/CD (Continuous Integration Continuous Deployment)테스트->통합->배포의 과정을 자동화하는것 왜 CI/CD를 써야할까서비스 운영시에 코드를 수정해야할일이 굉장히 많이 일어난다.(디버깅, 새로운 기능추가)그럴때마다 새로운 코드 배포시에 ec2에 접속해서 새로운 코드를 다운받고 재실행해야한다.이러한 과정은 매우 반복적이고 번거로운일이기 때문에 자동화하고자하는 목적.CI/CD의 과정개발-커밋-빌드-테스트-배포(테스트 성공시) CI/CD를 구축시 사용되는 툴Github ActionsJenkinsCircle CITravis CI 현업에서는 Jenkins를 활용하는가?현업에서는 Github Actions 뿐만아니라 Je..
-
[AWS] EC2 알아보기카테고리 없음 2024. 12. 3. 22:55
EC2 알아보기 배포사용자들이 인터넷을 통해 서비스를 이용할 수 있게 만드는 것.개발 시에는 localhost 주소를 이용하지만 다른 사용자들은 이 주소로 접근이 불가능하다. 때문에 IP와 도메인을 통해 고유한 주소를 받게되고 이를 통해 접근할 수 있다.서비스를 완성하고 그 다음단계로 해야하는 것 EC2:하나의 컴퓨터를 원격으로 빌려서 사용하는 서비스ec2를 사용하는 이유:서비스 배포를 위해서는 서버 컴퓨터가 필요하다. 하지만 내 컴퓨터로 배포하려면 24시간 컴퓨터를 켜놔야한다. 그리고 남들이 내 컴퓨터에 접근하게될 경우 다른 부분에도 접근할 위험이 생긴다.그리고 이렇게 서버를 호스팅할 경우 고정비용에 대한 부담이 줄어든다그외에도 확장과 축소가 유리하고 많은 기능들이 있다(로깅, 오토스케일링, 로드배런..