[CI/CD] self-hosted runner 기반 EC2 자동화 배포 구축하기
·
백엔드 개발
[CI/CD] AWS EC2 자동화 배포 파이프라인 구축하기실무환경에선 소프트웨어 개발(Development)과 ""운영(Operation)""이 결합되어있다.쉽게말해, 효율적이고 "지속 가능한" 소프트웨어 제공을 목표로 한다.(기업이 시장에서 생존하기 위해선,실적을 높ceo-uk22.tistory.com여는글프로젝트 초기에는 빠른 개발과 배포에 집중하기 위해, CI/CD 파이프라인을 AWS CodeDeploy 기반으로 구성했었다.빌드된 애플리케이션을 Docker 이미지로 변환하고,ECR 업로드 후 S3에 저장된 배포 스크립트를 토대로 EC2에 배포하는 구조였다.아래는 deploy.yml 스크립트 동작 요약이다.1. Spring Boot 애플리케이션 빌드  2. Docker 이미지 변환  3. ECR 업..
[AWS] 서버 보안 : 팀원의 EC2 접근, 어떻게 열어줘야 할까?
·
백엔드 개발
AWS에서 프라이빗 서브넷에 EC2를 배포하고 Bastion Host를 통해 관리자가 SSH 접속하는 구조는 보안성과 실용성 면에서 굉장히 유리하다.하지만 실무에서는 혼자만 접속하는 게 아니라, 팀원 혹은 다른 개발자와도 EC2를 함께 사용해야 하는 상황이 생긴다."팀원이 내 EC2에 접속하려고 하는데, PEM 키는 공유해도 되는 걸까?"답은 절대 아니다. 이번 글에서는 개발자에게 받은 Public Key를 활용해 별도의 EC2 사용자 계정(backend-dev)을 만들고, Bastion Host를 통해 접속할 수 있도록 구성하는 과정을 소개한다.왜 PEM 키를 공유하면 안될까?PEM 키는 EC2 인스턴스의 루트 권한에 해당하는 키로, 이를 공유하는 건 비밀번호를 공유하는 것보다 더 위험하다.1. 접속자..
[AWS] 서버 보안 : Bastion Host 기반 Private EC2 구축하기
·
백엔드 개발
프라이빗 환경에서 AWS 클라우드 리소스를 관리하는 방법은실무/운영환경에서 ""필수""이다. 프라이빗 환경은 외부 인터넷과 분리되어, 특정 기업이나 사용자만 접근할 수 있는 독립된 클라우드 인프라 환경이다.외부 인터넷으로 프라이빗 환경 리소스에 접근이 불가능하여, 보안상 민감한 정보들을 주로 프라이빗 환경으로 관리한다. 이전 포스팅에서, VPC에 대한 기본 개념과 서버 보안을 위한 프라이빗 환경으로 리소스를 분리하여 관리하는 전략에 대한 여러 전략들을 소개했다. [AWS] VPC로 클라우드 리소스 보호하기클라우드 자원 (AWS, GCP, Microsoft Azure 등)을 활용해서,서비스 배포환경(웹/앱 서버 & 백엔드 서버)를 쉽고 간편하게 구성할 수 있다.이와 같은 서비스를 "클라우드 호스팅" 서비스..
[AWS] VPC로 클라우드 리소스 보호하기
·
백엔드 개발
클라우드 자원 (AWS, GCP, Microsoft Azure 등)을 활용해서,서비스 배포환경(웹/앱 서버 & 백엔드 서버)를 쉽고 간편하게 구성할 수 있다.이와 같은 서비스를 "클라우드 호스팅" 서비스라고 한다.대표적으로 AWS (아마존 웹 서비스) / Google Cloud Platform (GCP) / Microsoft Azure 가 있다.따라서, 클라우드 호스팅 서비스를 통해, 누구나 일정 금액을 지불하여""누구나 접근할 수 있는 서비스 환경""을 구축할 수 있다.그럼, 서비스 배포작업은 클라우드 호스팅?클라우드 호스팅을 토대로 서버환경을 구축하여누구나 접근할 수 있게 만들 수 있다. 하지만, 실제 운영 중인 서비스 (토스, 카카오, 쿠팡, 네이버 등등)는단순 클라우드 호스팅 서비스 구축 후, 서..