DevOps

CI란? 코드를 깃허브에 올리고, 통합(Merge), 빌드, 테스트하는 과정을 자동화! 일반적으로 일정시간마다, main 브랜치를 테스트, 빌드한다. ( Continuous Integration ) 필요성 빌드 테스트 코드를 따로 입력할 필요없이, push만 하면, 결과를 바로 알 수 있다! ( 빠른 수정 가능 = 안정적인 서비스 ) CI 주의사항 팀원들이 코드를 깃허브에 올리고, 합쳐(Merge)야 하므로 - 충돌 수정을 최소화 해야한다. - ( 최소한 작은 단위로 개발 ) CD란? 배포 자동화! ( Continuous Deployment ) 자동 배포 안함 ( Continuous Delivery ) 이럴거면 왜 줄여씀?
Ansible 이란? 원격 컴퓨터 자동 관리 툴 ( RedHat에서 만들었다 ) 필요성 원클릭 서버(Front, Back 등등) 배포 가능 구조 제어 컴퓨터 ( Control node ) - 다른 컴퓨터를 관리하는, 관리자 컴퓨터 - 내부에 관리할 내용( inventory )이 들어있다. 관리(당하는) 컴퓨터 ( Manage node ) - 호스트, 노드 라고 부른다. 설치 python3 -m pip install --user ansible # centos sudo yum install ansible # ec2 sudo amazon-linux-extras install ansible2 사용법 1. 기본 파일 사용하기 inventory 구조 및 설명 [hosts] - 관리용 컴퓨터 등록 파일을 넣는 곳 [..
AWS를 사용할때는, 과금에 주의해야한다. 특히 과금률이 높은 RDS는, 사용하지 않으면 바로바로 지워야 한다. 싯팔 AWS 과금 계산기 논리적으로 격리된 가상 네트워크 - Amazon VPC 요금 - Amazon Web Services NAT 게이트웨이 NAT 게이트웨이 요금 VPC에 NAT 게이트웨이를 생성하는 경우 게이트웨이를 프로비저닝하고 사용하는 각 ‘NAT 게이트웨이 시간’에 대한 요금이 부과됩니다. 데이터 처리 요금은 트 aws.amazon.com RDS 시간당 가격 SSD(IOPS 단위) 을 사용한 DB가 특히 더 높다 - 7일 기준 40달러 NAT Gateway - 7일 기준 6달러 EC2 [7일 기준] t2.micro - 1달러 t2.small - 6달러 t2.large - 10달러
젠킨스란? 여러 쉘 명령어를 적어놓고, 이를 웹 UI를 통해서 실행할 수 있는 프로그램 필요성 프론트엔드, 백엔드 서버를 재배포하는 코드(pipeline)를 작성하고 이 과정을 원클릭으로 실행할 수 있게 해줌! 작동방식 Jenkinsfile 파일 작성 Jenkinsfile 문법 pipeline # 하나의 큰 작업 agent # 젠킨스 스레드 ( 작업 스레드 지정 ) # 배포 단계 설정 stages # 단계들 stage # 단계 steps # 세부 과정 post # stage 종료 후 작업 설정 # clean workspace cleanWs() # use shell script script sh triggers # 반복 주기 설정 Jenkinsfile (pipeline) 작성 해당 파일은 이해를 위한 것으..
로드밸런서란? 서버에 들어오는 요청(트래픽)들을, 여러개의 서버로 나누어주는 컴퓨터 load balancer ( 부하의 균형을 맞춘다 ) 리스너 외부에서 들어오는 모든 요청을 감지하는 부분 리스너 규칙 만들기 규칙은 위에서, 아래로 우선순위가 결정된다. # 호스트 헤더 - uri에 따라, 다른 행동하기 api.도메인주소에서 받은 트래픽은, 8080 포트로 보낸다. # 기본 작업 - 해당 리스너의 기본 행동 요청이 들어오면, 80 포트로 보낸다. # 리디렉션 대상 - 다른 주소로 다시 요청 보내기 요청이 들어오면, https://www.naver.com 으로 요청 전달하기 (재요청) 대상 그룹이란? 로드밸런서를 사용해서 관리할 자원들을 묶은것
보안 규칙이란? 네트워크에서 통신(송수신) 할때 허용한 곳에서만, 데이터를 받을 수 있도록하는 규칙 인바운드 규칙 데이터를 받을곳(IN)을 지정 아웃바운드 규칙 데이터를 보낼곳(IN)을 지정 규칙 만들기 AWS 컴퓨터(EC2)가 들어있는 보안그룹 sg-1234 에서, HTTP 프로토콜의 80번 포트를 통해, 보낸 데이터만 받겠다! # 프로토콜 - https, ssh, tcp... http # 포트 - 8080, 443, 3000 .... 80 # ip 주소 - 내IP, 특정IP ... # 해당없음 # 보안 그룹에 속한 aws 컴퓨터 sg-1234
Terraform이란? IAC 중에 하나 ( Infra As Code ) 코드로 인프라를 만든다! IAC 관련 설명
nginx 설치 & 서비스 등록 & 시작 #!/bin/bash yum update -y amazon-linux-extras install nginx1 -y systemctl enable nginx systemctl start nginx # check install rpm -qa | grep nginx Nodejs 설치 & 확인 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash . ~/.nvm/nvm.sh nvm install 16 node -e "console.log('Running Node.js ' + process.version)" Java, Maven 설치 & 확인 # 기본 설치 yum install jav..
AWS-CLI란? AWS에 명령줄 프로그램에서 접근할 수 있도록해주는 프로그램 설치 curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / 설치 확인 aws --version 초기 설정 ( 액세스 키 필요 ) aws configure 또 다른 사용자 추가 aws configure --profile 사용자이름 로그인 사용자 확인 aws sts get-caller-identity 추가된 사용자 확인 aws sts get-caller-identity --profile 사용자이름 환경변수로 사용자 지정하기 export AWS_PROFILE=사용자이름 목록 조회 // aws..
MOONCO
'DevOps' 카테고리의 글 목록