Infra
-
Jenkins CI/CD 구축 (With Docker + Github + Docker Hub)Infra/CI&CD 2024. 8. 14. 16:00
깃허브 특정 브랜치에 push하면 jenkins가 dockerfile을 통해 이미지를 빌드하고, 이를 docker hub에 올린다-> 이를 배포할 ec2에서 내려 받아 배포하는 과정을 다룬다. 작업을 크게 설명하면,젠킨스 다운로드배포할 EC2에 대한 Credential 등록 - ssh agentJenkins와 깃 허브 연동및 WebHook 등록 ( Credential 등록 ) Docker hub와 Jenkins 연동( Credential 등록)파이프라인 스크립트 작성 1. 사전 작업 - 배포할 EC2와 Jenkins가 다운로드 받아진 EC2에 Docker가 설치되어 있어야 한다.- docker 설치 후 아래 명령어를 통해 docker 그룹에 user를 추가해준다sudo usermod -aG doc..
-
EC2로 Spring 레거시 배포하고 HTTPS 인증받기 (Nginx + Tomcat 연동 With Docker)Infra/AWS 2024. 8. 13. 15:48
1. 사전작업 - Nginx와 Tomcat을 띄울 인스턴스 2개 - WAS 배포 인스턴스에 Docker가 다운받아져야함 - Tomcat을 띄운 인스턴스는 깃허브 연동 (깃에서 pull 받아올 것) 2. 인스턴스2에 war 배포하기 2.1 배포를 위한 Dockerfile 작성 (프로젝트의 루트에 이를 작성해서 저장한다 파일 이름은 Dockerfile이다) Dockerfile의 내용은 다음과 같다.# 1. Maven 빌드 단계FROM maven:3.9.8-eclipse-temurin-11 AS build# 2. 프로젝트 소스 복사COPY . /app# 3. 작업 디렉토리 설정WORKDIR /app# 4. Maven을 사용하여 프로젝트 빌드 (테스트 생략)RUN mvn clean package ..
-
EC2 배포를 위한 사전작업Infra/CI&CD 2024. 8. 13. 11:39
1. Docker 설치하기 1.1 우분투 시스템 패키지 업데이트 sudo apt-get update 1.2 필요판 패키지 설치 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 1.3 Docker 공식 GPG키 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 1.4 Docker 공식 apt 저장소 추가 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)..
-
EC2에 Spring 레거시 배포하기Infra/AWS 2024. 8. 12. 16:43
1. EC2설정 EC2를 설정하고, 고정 IP를 받자 이를 하기 위한 방법은 다음 글에 자세히 설명해두었다.https://j-d-i.tistory.com/264 가상화된 인프라 환경 IaaS EC2는 주로 백엔드 서버를 배포할 때 많이 사용한다.프론트엔드 서버도 EC2를 활용" data-og-host="j-d-i.tistory.com" data-og-source-url="https://j-d-i.tistory.com/264" data-og-url="https://j-d-i.tistory.com/264" data-og-image="https://scrap.kakaocdn.net/dn/fR76q/hyWKy7vbpa/M61eZsC8kP4KVIPN9ohIDk/img.png?width=1060&height=11..
-
Github Action으로 ecr 업로드 하기Infra/CI&CD 2024. 5. 16. 23:39
ECR이란?AWS에서 제공하는 관리형 컨테이너 이미지 레지스트리 서비스AWS IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리 지원지정된 사용자 혹은 EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 엑세스 가능하다. Docker hub와 같이 이미지를 저장할 수 있는 저장소와 같은 개념이다.GithubAction과 같이 사용하면, 워크플로우의 결과로 docker Image를 생성하고, ECR에 간단하게 업로드 할 수 있다.ECR 생성 아마존에서 Elastic Container Registry검색해서 시작하자Repository를 하나 만들어보자! 다음으로 IAM으로 넘어가서 User와 Policy를 생성하자정책 생성을 눌러서 새로운 정책을 생성하자 여기서 정책은 ECR에 접근하고, 이미지를 ..
-
Github Action 기본 사용법Infra/CI&CD 2024. 5. 16. 22:33
CI/CD란?소프트웨어 개발 과정에서 효율성과 신속성을 극대화하는 자동화된 프레임워크 개발부터 운영까지 소프트웨어 개발 라이프사이클의 모든 단계를 아우른다.크게 지속적 통합, 지속적 전달, 지속적 배포로 구분 된다. 지속적 통합 (CI)개발자들이 작업한 코드를 주기적으로 공유레퍼지토리에 병합, 코드 통합을 자동화하는 과정 모든 변경사항은 자동 빌드 및 테스트를 거쳐 메인 브랜치에 통합된다.코드 충돌을 최소화하며, 소프트웨어 품질을 유지하고, 배포 준비 상태를 지속적으로 유지할 수 있다.BUILD -> TEST -> MERGE 과정을 아우름 특히! TEST가 매우 매우 중요하다. 지속적 전달 (CD - Continuous Delivery)코드 변경사항이 자동으로 빌드 및 테스트를 거쳐 실제 운영 환경에 ..
-
AWS - S3,Cloudfront를 활용한 웹 페이지 배포Infra/AWS 2024. 5. 9. 16:33
CloudFront컨텐츠(파일, 동영상)을 빠르게 전송해주는 서비스이다.컨텐츠가 S3에 저장되어 있을 때 S3저장소가 한국에 있다고 가정하자이때 한국인이 한국에 S3를 활용하는 게, 외국인이 한국의 S3를 사용하는 것 보다 빠를 것이다.이는 물리적 거리가 멀기 때문이다. 이를 해결하기 위해 전세계 곳곳에 컨텐츠의 복사본을 저장해 둘 수 있는 임시 저장소를 구축하고, 가까운 저장소에서 복사본을 꺼내서 빠르게 볼 수 있도록 하는데이를 CDN이라한다. (Content Delivery Network) CloudFront는 이런 CDN서비스의 일종이다.기본적으로 S3만 사용해도 웹페이지를 배포할 수 있지만, 성능향상 및 HTTPS 적용을 위해 S3를 활용한 웹 페이지 배포시 CloudFront는 필수이다. 웹 ..
-
AWS - S3를 활용한 파일 및 이미지 업로드Infra/AWS 2024. 5. 9. 15:55
s3란?파일 저장 서비스이다. 사진이나 동영상 같은 파일을 구글 드라이브나 icloud에 업로드 하는 것과 비슷하다 백엔드 서버를 구현하다보면, 이미지 업로드를 구현할 때가 많다. 이 이미지를 EC2 내부에 저장할 수도 있지만, EC2에 쌓이는 파일이 너무 많아질 우려가 있다.따라서 파잃은 S3서비스를 이용해서 따로 관리하는 것이다.현업에서도 파일 업로드 기능을 구현할 때면 대부분 S3를 활용한다고 한다.1. S3 버킷 생성하기버킷이란? S3 서비스 내에 여러 Repositroy를 의미한다. 객체란? S3에 업로그한 파일을 파일이라 부르지 않고 객체라고 부른다. 버킷에 이미지나 파일을 올리기 위해 모든 퍼블릭 액세스를 일단 허용해두자2. 버킷 정책 추가하기 정책이란 권한을 정의하는 JSON..