DevOps

    [AWS] GitHub Actions로 AWS ECS 배포 자동화 하기

    이번 포스팅은 바로 저번 GitHub Actions를 이용한 ECR배포에서 이어지는 포스팅이므로 참고하면 되겠다 [AWS] GitHub Actions으로 private ECR에 이미지 push 자동화하기 이번 포스팅에서는 Docker Hub가 아닌 AWS의 ECR에 이미지를 push 하기 까지를 GitHub Actions로 자동화를 해보려한다 먼저 테스트를 하기위한 간단한 express를 만들고 시작해보겠다 Express 어플리케이션 생 john721.tistory.com fastify.js 애플리케이션 먼저 이번 코드와 다른 점은 express.js가 아닌 fastify.js로 만들어보겠다 $ npm i --global fastify-cli $ fastify generate my-ecs-test 위의 ..

    [AWS] GitHub Actions으로 private ECR에 이미지 push 자동화하기

    이번 포스팅에서는 Docker Hub가 아닌 AWS의 ECR에 이미지를 push 하기 까지를 GitHub Actions로 자동화를 해보려한다 먼저 테스트를 하기위한 간단한 express를 만들고 시작해보겠다 Express 어플리케이션 생성 간단한 Hellow World 어플리케이션이며 아래의 명령어로 초기화해주고 express를 설치해주자 $ npm init $ npm install express const express = require('express'); const app = express(); const port = 8080; app.get('/', (req, res) => { res.send('Hellow World'); }); app.listen(port, () => { console.log(..

    [Docker] GitHub Actions으로 docker CI (도커캐시)

    분명 로컬에서 도커를 빌드하고 다시 빌드를 하게 되면 처음 빌드를 했을 때보다 빌드하는 시간이 빠르다... 근데 GitHub Actions을 이용하면서 도커를 빌드하고 몇 번을 빌드해도 도커 캐시가 동작하지 않는다는 걸 알았다... 이번 포스팅에서는 GitHub Actions으로 간단한 express앱을 빌드하고 docker hub push 해보겠다 Express 앱 먼저 아무 폴더에서 $ npm init $ npm install express { "name": "docker-ci-prac", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node app.js" }, "dependencies": { "ex..

    [AWS] AWS ECS 개념

    K8s를 공부하고나서 ECS를 공부하려고 aws korea 웨비나를 봤는데 K8s와 비슷하면서도 달라서 정확하게 구분 하고 공부해야겠다 생각이 들어서 이글을 포스팅한다 ECR(Elastic Container Registry) Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스이다. Amazon ECR은 AWS IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리를 지원한다. 따라서 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있다. 원하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이..

    [AWS] Route53에 외부 도메인(가비아) 연결, SSL 인증서

    aws로 실제 서비스를 배포했을때 사용했었던 가비아 도메인을 Route53에 등록해서 HTTPS적용을 해보겠다 먼저 Route53에서 호스팅 영역 구성에 들어가 연결할 도메인을 입력해주자 생성했다면 레코드 유형에 NS,SOA로 생성된걸 확인할 수있다 이제 가비아에 네임서버 설정에서 각 NS를 1,2,3,4차에 입력해준다 입력이 완료되었다면 AWS Certificate Manager에 들어간다 여기서 ACM의 기능으론 인증서를 중앙에서 관리 AWS Certificate Manager(ACM)를 사용하면 AWS Management Console, AWS CLI 또는 ACM API를 통해 중앙에서 SSL/TLS 인증서를 손쉽게 관리할 수 있다. 또한 AWS CloudTrail 로그를 검토하여 각 인증서의 사용..

    [AWS] VPC구성하기(퍼블릭 서브넷, 프라이빗 서브넷)

    aws를 사용하면서 사실 VPC가 뭔지도 몰랐고 몰라도 사용하는데 문제가 없었다 그때는 그냥 서비스만 이용하느라 핵심만 빠르게 배우기 바빴다 이번에 제대로 다시 공부하려는 마음에 시작하려는데 처음이 VPC... 이 글을 쓰기 전 자료 찾아봐도 이해가 되지 않았다... CIDR인가... 아무튼 aws를 시작할 때 먼저 시작해볼 VPC에 대해 알아보자 VPC가 무엇인가 VPC는 프라이빗 클라우드를 만드는 데 가장 기본이 되는 리소스이다. VPC는 논리적인 독립 네트워크를 로 이름과 IPv4 CIDR 블록을 필수적으로 가지게 된다. CIDR 블록은 IP의 범위를 지정하는 방식인데. CIDR 블록은 IP 주소와 슬래시(/) 뒤에 따라오는 넷마스크 숫자로 구성되어 있다. 이 숫자는 IP 범위를 나타내며 이 숫자가..

    [Docker] ubuntu에서 docker & docker-compose 설치 방법

    이 글은 aws의 ubuntu 환경에서 진행된다는 점 참고하길 바란다 docker와 docker-compose 설치 방법은 도커 공식 독스에 설명되어있다 docker 설치 1. 기본적인 패키지들을 최신으로 업데이트를 하고 apt가 HTTPS를 통해 리포지토리를 사용하게 해주는 의존성 설치 $ sudo apt-get update && sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release 2. docker 공식 인증키 추가 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share..

    [K8s] 쿠버네티스 Service 개념

    Service란 무엇인가? Kubernetes 서비스는 파드의 논리적 집합과 파드에 액세스하기 위한 정책을 정의하는 추상화다. 서비스를 사용하면 응용프로그램의 다른 부분이나 외부 클라이언트에 응용프로그램의 기능을 노출할 수 있다. 서비스는 포드에 트래픽을 로드 밸런싱하는 데 사용할 수 있으며 포드에 안정적인 DNS 이름 및 네트워크 정책을 제공하는 데도 사용할 수 있다. Kubernetes에서 서비스는 서비스 유형, 서비스가 수신해야 하는 포트 및 서비스가 대상으로 해야 하는 포드를 지정하는 YAML 파일에 의해 정의된다. 그런 다음 서비스는 로드 밸런서를 생성하고 클러스터 내부 또는 외부에서 서비스에 액세스하는 데 사용할 수 있는 안정적인 IP 주소 및 DNS 이름을 할당한다. 예를 들어, 여러 포드로..