4. SSH를 이용한 프로덕션 서버 배포

1. SSH(Secure Shell)

  • 네트워크상에서 원격 컴퓨터(AWS-EC2)에 안전하게 접속하여 명령을 실행할 수 있도록 해주는 프로토콜

  • SSH는 Public-key 암호화 방식을 통해 비밀번호 입력없이 안전하게 사용자를 인증합니다.

  • 젠킨스를 활용하여 자동화 배포를 진행할 때 보안을 최우선 하기 위해서는 일반적으로 SSH프로토콜을 이용하여 빌드 및 배포를 진행합니다.

SSH 작동방식

  1. 키 쌍 생성: 사용자의 PC에서 공개 키(public key)와 개인 키(private key)를 한 쌍으로 생성합니다.

    1. 공개키는 자물쇠(🔒), 개인키는 이 자물쇠를 열 수 있는 열쇠(🔑)로 생각하시면 되겠습니다.

  2. 공개 키 등록: 생성된 공개 키를 접속하려는 클라우드 서버에 등록합니다. 개인 키는 외부에 유출되지 않도록 사용자 PC에 안전하게 보관합니다.

  3. 개인 키 전송: 클라이언트가 서버에 접속을 시도할 때 개인 키를 서버로 전송합니다.

  4. 인증 확인: 서버는 클라이언트가 보낸 개인 키를 미리 등록된 공개 키와 대조하여 인증합니다.

  5. 접속 시작: 인증이 성공하면 SSH 세션이 안전하게 시작되어 원격 접속이 가능해집니다.


2. 젠킨스 설정

1) SSH Agent 플러그인 설치

2) SSH 접속을 위한 Credential생성

  • privatekey는 생성된 privatekey를 복사하여 붙여 넣을 것

  • 예시)

3) 파이프라인 수정

  • Staging-PrivateKey를 이용하여 접속

  • 배포 승인과정 추가

4) 빌드 테스트

  • 배포승인을 누르면 SSH를 통해 프로덕션 서버에 배포

5) 프로덕션 서버 접속 확인

6) CI/CD 파이프라인 요약도

  • 수정필요

Last updated