목록Devops (40)
코딩과로그

배포 자동화 실습 프로젝트 목표 설명: - 위의 그림과 같이 GitHub Actions 과 AWS 의 ECS 를 활용하여 백앤드 서버 배포 자동화를 진행해보았습니다. 프로젝트 제작의 메인 컴포넌트: - GitHub Action 과 ECS 입니다. GitHub Action으로 변경점을 확인하고 도커 이미지를 빌드하여 이미지를 올린 뒤 올린 이미지를 ECS 에 전달하면 ECS가 배포를 진행합니다. 프로젝트에 사용된 컴포넌트: - 프로젝트에 사용된 주요한 컴포넌트들입니다. GitHub Actions 깃헙 레포의 변경사항에 대해 트리거 발생 ECR 에 도커 이미지 업로드 ECS 내 서비스의 테스크 재정의 ECS Cluster 내 Service 사용할 Load Balancer 및 Task 선택 태스크 생명주기 관..

1. NAT Gateway 는 언제 사용이 될까? 보안이 필요한 인스턴스(i.g EC2)는 기본적으로 아래의 다이어그램과 같이 Private Subnet 하에 두어 인터넷과의 연결을 차단해놓는다. 그렇다면 Private Subnet 하에 있는 인스턴스(i.g EC2)가 외부에 접근하려면 어떻게 해야될까? 간단히 말하자면 NAT Gateway를 사용하면 된다. 위와 같이 NAT Gateway를 퍼블릭 서브넷에 두어 NAT Gateway가 인터넷 게이트웨이를 거치게 만든 뒤, Private 서브넷의 라우팅테이블에 NAT-gateway 를 연결하면 NAT-Gateway은 프라이빗 서브넷의 인스턴스와 인터넷과의 중간다리 역할을 하여 프라이빗 서브넷이 인터넷에 접속할 수 있게 해준다. ref: - https://..

위와 같이 실습을 구성하였다. 목표 - AWS 배포 파이프라인을 생성하여 깃허브에 올린 소스코드 (프론트, 백엔드) 들이 자동으로 배포되도록 설정 제작 순서는 다음과 같다. 제작 순서: 깃허브 코드 생성 생성 파일 (프론트엔드, 백엔드, 빌드 관련 yml, build script) S3 생성 정적 사이트 접근 권한 허용 추가 IAM 역할 생성 권한 부여: S3 접근, SSM 접근, CodeDeploy 접근 EC2 셋업 EC2 생성 및 태그 달기 (빌드 시 태그 참조를 하기 위함) Node.js 설치 RDS 생성 SSM에 RDS 환경변수 입력 CodeDeploy, CodeBuild 에 깃 연결하고 파이브라인 생성 이하는 실습 가이드입니다. 대시보드로 이동 후, 인스턴스로 이동 EC2 대시보드로 이동 후, ..

Fagate ECS 배포를 해보았다. 위의 그림과 같이 ECS를 사용하여 Fargate 를 만들고 로드밸런서를 연결해주어 배포를 진행했다. 만든 순서는 다음과 같다. 타겟 그룹 생성 로드 밸런서 생성 타겟 그룹 연결 ECS 작업 정의 생성 컨테이너 이미지 지정 ECS 클러스터 생성 클러스터 내 서비스 생성 최종 결과: 로드 밸런서를 통해 Fargate 접근이 됨을 확인했다. 1. 타겟 그룹 생성 2. 로드 밸런서 생성 2. ECS 에서 작업정의 (task)를 만든다. 2.1 파게이트 선택 2.2 다음처럼 진행 3. 클러스터 생성 4. 서비스 생성 서비스의 서브넷 작성 시, 로드밸런서가 지원하는 서브넷 안에 있어야 된다. -보안 그룹을 수정한다. 이후 다음을 누르고 완료를 진행한다. 여기까지 했으면 완료가..

나는 heroku 라는 클라우드 기업에 매달 6000원씩 지불하면서 개인 블로그를 배포, 운영중에 있었다. 이용자가 이제는 거의 없고 나도 새로운 블로그 사이트를 만듦으로써 더 이상 사용을 하지 않아서 매달 6000원이 매우 아까워졌다. 아예 없앨까 싶었지만 지우기는 아쉬워 나의 개인서버로 이전하기로 하였고 컴퓨터가 켜질 때마다 실행되도록 하였다. 아래는 현재 이전된 서버 URL이다. (노트북을 켰을 때만 운용되지만 항시 켜두려 하고 있음) http://www.enttolog.xyz:5000/ 내 서버용 컴퓨터가 켜질 때마다 서버를 실행하기 위해서 systemd 를 사용했다. # 서비스 실행 파일 생성 $ sudo nano /etc/systemd/system/touch-world.service # 아래와..

도커 컴포즈란? 도커 컴포즈는 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의해 컨테이너의 묶음으로 관리할 수 있는 작업 환경을 제공하는 관리 도구입니다. 도커 컴포즈를 사용하는 이유 여러 개의 컨테이너가 하나의 어플리케이션으로 동작할 때 도커 컴포즈를 사용하지 않는다면, 이를 테스트하려면 각 컨테이너를 하나씩 생성해야 합니다. 예를 들면, 웹 어플리케이션을 테스트하려면 웹 서버 컨테이너, 데이터베이스 컨테이너 두 개의 컨테이너를 각각 생성해야 합니다. 즉, 아래와 같이 두개의 run 명령어를 입력해야합니다. $ docker run --name wordpress_db -d mysql:8 $ docker run -d -p 8080:80 \ --link wordpress_db:mysql --name ..

이전 실습 (https://sororiri.tistory.com/101) 에서 가볍게 3 Tier 아키텍처를 만들어보았다. 여기서 더 나아가 HTTPS 인증 및 로드밸런서, Forward Proxy 를 추가로 적용해보았다. 이하는 실습 진행 내용이다. 도메인 연결과 CDN 및 HTTPS 적용 1. Certificate Manager를 통한 도메인 인증서 발급 구매한 도메인을 기준으로 인증서를 발급 받습니다. 인증서는 프론트엔드 Cloudfront 사용 리전인 us-east-1과 백엔드 Load Balancer 사용리전인 ap-northeast-2에서 발급 받아야 합니다. 발급 시, DNS 검증 가이드로 레퍼런스를 참고하세요. 이후에 DNS 공급자로 Route53을 이용합니다. Route53에 레코드 생성..

데브옵스 부트 캠프에서 실습한 내용을 정리한 글입니다. 실습내용은 S3, EC2, RDS를 생성, 연결하여 3 tier 아키텍쳐를 구성하여 배포해보는 것이었습니다. 실습했던 내용 기록용이므로 참고 부탁드립니다. 적용 대상 깃허브: https://github.com/SangYunLeee/sprint-aws 전반적인 진행 순서입니다. 프론트 초기 세팅 리액트를 빌드한다. S3 에 버킷을 생성 빌드 결과물을 버킷에 넣는다. 액세스 전부 허용, 정적 호스팅을 허용 정책을 설정하여 객체에 GET 이 가능하도록 한다. 프론트 사이트가 보여지는 지 확인한다. 백엔드 초기 세팅 보안 그룹을 생성한다. EC2를 생성한다. EC2에 노드 서버를 넣고 실행한다. 백엔드 서버에 접속이 되는 지 확인한다. 프론트엔드를 백엔드 ..