[코드스테이츠] S4.Unit10 회고

JinYoung Choi·2023년 6월 5일
0

배포 자동화!

이거 정말 편리한데? aws 파이프라인과 깃허브 액션 두 가지 방법에 대해 배웠는데,

나는 깃허브 액션이 조금 더 사용하기 편했다.

프로젝트에서 사용하기 편한 걸 택해서 골라 사용하라고 했다.

내가 만약 배포를 담당한다면 깃허브 액션으로 해야지~

배포 자동화란?

배포 자동화는 애플리케이션의 개발 과정에서 코드 변경 사항을 자동으로 빌드, 테스트, 배포하는 과정을 의미한다.
이를 통해 개발자는 반복적이고 번거로운 작업을 수동으로 수행하지 않아도 되며, 일관된 배포 과정을 통해 애플리케이션의 품질을 높일 수 있다.

배포 파이프라인

배포 파이프라인은 배포 자동화를 위한 과정들을 단계적으로 실행하는 자동화된 워크플로우.
이는 코드 변경 사항을 지속적으로 통합하고 테스트하여 안정적으로 배포하는데 사용된다.

파이프라인은 일반적으로 여러 개의 단계로 구성되며, 각 단계는 특정 작업을 수행한다.
예를 들면, 소스 코드를 가져와 빌드하는 단계, 빌드된 애플리케이션을 테스트하는 단계, 테스트가 통과된 애플리케이션을 배포하는 단계 등이 있을 수 있다. 각 단계는 작업(Action)으로 구성되며, 작업은 특정한 기능을 수행하는 스크립트 또는 명령어이다.

AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다.
AWS CodePipeline은 배포 파이프라인을 구성하고 실행하는 서비스로, 다양한 AWS 서비스와 통합하여 자동화된 배포를 구현할 수 있다.
CodePipeline을 사용하면 손쉽게 단계와 작업을 설정하고, 배포 과정을 모니터링하고, 필요에 따라 확장하거나 수정할 수 있다.

배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, 로그 파일과 공식 문서는 문제 해결에 큰 도움을 줄 수 있다.
로그 파일은 실행 중인 작업의 상세 정보와 오류 메시지를 제공하여 어떤 문제가 발생했는지 파악할 수 있다.
공식 문서는 AWS 서비스 및 기능에 대한 자세한 설명과 해결 방법을 제공하므로 문제 해결에 유용하다.

IAM

AWS에서 제공하는 IAM(Identity and Access Management) 서비스는 사용자, 그룹, 정책, 역할을 관리하여 AWS 리소스에 대한 접근 권한을 제어한다.
그룹은 여러 사용자를 묶어서 관리하고, 사용자는 AWS 리소스에 대한 액세스를 갖는 개별 계정이다.
정책은 특정 작업 또는 리소스에 대한 권한을 정의하는 규칙이다.
역할은 AWS 서비스 및 리소스에 액세스할 수 있는 권한을 가지는 임시 보안 자격증명이다.

IAM 정책은 특정 주체에게 어떤 작업을 수행할 수 있는 권한을 정의한다.
주체는 사용자, 그룹, 역할일 수 있으며, 정책은 해당 주체에게 특정 작업, 리소스 또는 서비스에 대한 권한을 부여한다.
IAM을 사용하여 필요한 권한을 정확하게 할당하고, 최소 권한 원칙을 준수하여 보안을 강화할 수 있다.

IAM 보안 모범 사례를 따르면 계정 보안을 강화할 수 있다. 예를 들어, 각 사용자에게 필요한 최소 권한만 부여하고, MFA(Multi-Factor Authentication)를 사용하여 추가적인 보안 요소를 적용하고, 주기적으로 암호를 갱신하거나 권한을 검토하여 계정의 안전성을 유지할 수 있다. AWS의 다양한 서비스와 기능을 이용하여 IAM을 구성하고, 보안 모범 사례를 적용하여 안전한 환경에서 서비스를 이용할 수 있다.

Github Action

Github Action을 통한 배포 자동화는 개발 및 배포 과정에서 지속적인 통합과 배포를 자동화하는 도구.
이를 통해 코드 변경이 발생하면 자동으로 빌드, 테스트, 배포 등의 작업을 수행할 수 있다.

자동화를 진행하는 파일은 .github/workflows 디렉토리에 작성된다.
이 디렉토리에는 Workflow 파일들이 위치하며, 각 파일은 특정 이벤트나 스케줄에 의해 실행되는 작업들을 정의한다.
Workflow 파일은 YAML 형식으로 작성되며, 여러 개의 단계(Steps)와 작업(Actions)으로 구성된다.

각 단계는 코드 빌드, 테스트, 패키징 등의 특정 작업을 수행하며, 여러 개의 작업으로 이루어질 수 있다.
작업은 사전에 정의된 액션(Action)들을 사용하여 구성된다.
액션은 특정 기능이나 작업을 수행하는 코드이며, Github Action Marketplace에서 다양한 액션들을 찾아 사용할 수 있다.

배포 자동화 Flow를 구성할 때, 일반적으로 코드 변경이 발생하면 빌드 및 테스트 단계가 실행되고, 성공한 경우 배포 단계가 진행된다. 이를 통해 코드 변경 내용을 자동으로 배포 환경에 적용할 수 있다. 각 단계는 필요한 환경 변수, 실행 조건 등을 설정하여 원하는 방식으로 동작하도록 구성할 수 있다.

Github Action을 사용하면 개발자는 코드 변경을 주시하고 수동으로 작업을 실행할 필요 없이, 지속적인 통합과 배포를 자동화할 수 있다. 이를 통해 개발 프로세스의 효율성을 높이고, 일관된 배포 품질을 유지할 수 있다.

profile
백엔드 취준생

0개의 댓글