전체 글 375

76.01_[Cloud] 배포 흐름도_22.12.08

>수동 배포 1. 완성된 앱을 github에 올리기 2. EC2 인스턴스에서 github repo를 클론 3. 해당 앱의 빌드 결과물을 실행 4. S3 버킷을 통해 웹 사이트 호스팅 >자동 배포-파이프라인 1. github repo에 작업물을 push 2. 특정 브랜치에서 push를 감지 3. buildspec.yml 을 통해 빌드 결과물을 생성하고 S3에 저장 4. S3에 저장된 빌드 결과물을 가져와서 appspec.yml 파일을 읽고 EC2 인스턴스에 배포하고 실행 명령 >자동 배포-Github Actions 1. Github push로 github actions 실행 2. Github actions 작업을 작성해놓은 .yml 파일을 통해 코드 빌드, S3로 전송, 배포 명령 실행 3. appspec..

75.01_[Cloud] 배포 자동화_22.12.07

>배포 자동화 : 한 번의 클릭 혹은 한 번의 명령어 입력으로 전체 배포 과정을 자동으로 진행하는 것을 뜻함. //배포 과정 흐름에 대한 공부 >배포 자동화의 이점 -시간 절약 -휴먼 에러 방지 >배포 자동화 관련 용어 -파이프라인(Pipeline) : 소스 코드 관리부터 서비스 배포까지 일련의 과정 전체를 의미함. : 배포 자동화는 곧 파이프라인의 재실행을 의미. -스테이지(Stages) : 파이프라인을 단계적으로 쪼갠 단위 : 배포 자동화가 이루어지기 위해 스테이지가 순차적으로 이루어짐. : 대표적인 스테이지의 예시로 (1)Source stage (2)Build stage (3)Deploy stage가 있음. : 스테이지는 필요에 따라 더 세분화되거나 간소화될 수 있음. /* - 파이프라인 예시 (1..

74.03_[Cloud] 배포 컨테이너_Docker 키워드_22.12.06

>컨테이너 : 애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않는 애플리케이션 상자. : Docker라는 기술 위에서 실행되도록 만들어짐. >이미지 : 애플리케이션과 애플리케이션 구성을 함께 담아놓은 템플릿. : 이미지라는 템플릿으로 컨테이너를 생성할 수 있다. : 같은 이미지로 여러 개의 컨테이너를 생성할 수 있다. 이게 곧 수평 확장이다. : 기본 이미지를 만들고, 기본 이미지에 필요한 부분을 수정하고 추가하여 새로운 이미지를 만들 수도 있다. : 예를 들면, 스프링부트 초기 세팅을 기본 이미지로 삼고, 내가 만든 애플리케이션을 추가/커밋하여 이미지화 시킬 수 있다. >레지스트리 : 이미지를 저장하는 공간을 레지스트리라고 한다. : Docker Hub, Amazon ECR이 대표적인 ..

74.02_[Cloud] 배포 컨테이너_컨테이너 방식의 장점_22.12.06

>컨테이너 방식의 장점 -의존성 충돌 문제 해결 1. 개발과 배포 환경을 일치시킨다. 2. 수평 확장을 쉽게 해준다. 3. 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다. (1) 개발과 배포 환경을 일치시킨다. -개발 문제 : 컨테이너 방식을 사용하지 않는다면, 애플리케이션을 개발하는 개발팀은 모두 같은 버전과 같은 개발 도구를 설치하여 개발 환경을 동일하게 구축해야한다. : 하지만 그럼에도 특정 변수에 의해 어떤 팀원의 개발 환경에서는 애플리케이션이 실행이 안될 확률이 있다. : 컨테이너를 사용하면 YAML 파일과 명령어로만 이러한 문제를 간단히 해결한다. -배포 문제 : 배포 문제 또한 개발 문제와 같이 사용자의 런타임 환경에 따라 문제가 발생할 수 있는 부분이다. : 하지만 이 또한 컨테이너 방..

74.01_[Cloud] 배포 컨테이너_Docker 개요_22.12.06

>컨테이너 :물자를 싣고 나르는데 획기적인 변화를 가져다줌. : 인력과 시간 단축이 가장 큰 이점. : 컴퓨터에서도 컨테이너라는 것은 같은 의미를 뜻함. >리눅스 컨테이너, lxc : 소프트웨어의 수송, 즉 배포에 컨테이너 개념을 적용한 기술 : 하지만 애플리케이션을 컨테이너화 시키는 방법에 대한 커뮤니티가 부족했음. >Docker : Docker Hub라는 소프트웨어 저장소와 함께 컨테이너 개념을 적용함. >`컨테이너 방식으로 애플리케이션을 실행한다.` : 다른 말로는 애플리케이션 실행이 실행 환경, 예를 들면 OS같은,에 구애받지 않는다는 의미이다. : 컨테이너 방식을 이용한 기술의 대표적인 장점. >컨테이너 방식의 장점 -의존성 충돌 문제를 해결해 준다. 1. 개발과 배포 환경을 일치시킨다. 2. ..

73.02_[Cloud] 운영 환경 구성_데이터베이스 연결_22.12.05

>JWS RDS 인스턴스 연결 1. JWS RDS 인스턴스 생성 2. MySQL(DB)에 연결 3. 서버 코드의 application.properties(혹은.yml)에 환경 변수 설정하기 ========================================== *application.properties(혹은.yml) spring.jpa.database=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect spring.datasource.url=jdbc:mysql://{AWS RDS Endpoint}/test?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC sprin..

73.01_[Cloud] 운영 환경 구성_정적 웹 사이트 호스팅_22.12.05

>클라이언트 배포 전 환경 설정 ========================================= >nvm 설치 : local PC에서 진행할 것. 1. bash 명령어로 nvm 설치 진행 : ubuntu 터미널을 실행하여 /mnt/c/User/Jungho/ 에서 진행 : 공식 문서(https://github.com/nvm-sh/nvm#install--update-script) 에서 최신 버전으로 설치할 것. 명령어 : wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash /* wget 이 없다면?(설치 방법) # Ubuntu sudo apt update sudo apt install wget */ 2. ..

72.06_[Cloud] AWS_백그라운드 실행_22.12.02

>백그라운드에서 서버 실행하기 : 서버를 구동하면서 다른 작업을 하기 위해 백그라운드에서 서버를 실행시킬 필요가 있음.(실행시킨 창을 계속 띄워놔야함) : .jar 실행 명령어 뒤에 ` &`를 붙이기 : 이외에도 다른 방법이 많은데, 많은데는 이유가 있겠지. 각각의 디테일을 파악해두자 >셀 스크립트 : 백그라운드에서 어플리케이션(서버)을 실행시키고, 애플리케이션이 잘 실행되고 있는지 확인할 수 있는 방법 : 셀 스크립트란, 운영체제를 위한 스크립트이다. : 한번 작성하면 재작성 할 일이 거의 없음. 따로 공부하지말고, 필요한 스크립트를 모아두어 적시에 사용하자.(대략적인 구조는 파악하자) >백그라운드 실행 명령어 상세 - `실행 명령어 + &` : 백그라운드에서 작업을 실행시키는 명령어 : 보통 작업이 ..

72.05_[Cloud] AWS_보안 그룹_22.12.02

>보안 그룹 : AWS EC2를 서비스를 이용할 때, AWS에서 빌려주는 가상 방화벽 : 인바운드와 아웃바운드로 구분하고 각각의 규칙을 설정할 수 있음. : 인스턴스 탭에서 해당 인스턴스가 어떤 보안그룹에 속해있는지 확인할 수 있음. >인바운드 : 인스턴스로 들어가는 트래픽 -인바운드 규칙 : EC2 인스턴스로 들어오는 트래픽에 대한 규칙을 설정 : 기본값으로 SSH 접속을 위한 규칙만 설정되어 있음. >아웃바운드 : 인스턴스에서 나가는 트래픽 -아웃바운드 규칙 : EC2 인스턴스에서 나가는 트래픽에 대한 규칙을 설정 : 기본값으로 인스턴스에서 나가는 모든 트래픽을 허용 >보안 그룹 규칙 설정하기 1. 네트워크 및 보안 - 보안 그룹 - 인스턴스 탭에서 확인한 보안 그룹 설정으로 들어가기 - 작업 -인바..