aws 6

Github Action으로 Spring 프로젝트를 Kubernetes에 배포하기

최근 서버 환경을 쿠버네틱스로 변경했기 때문에 지속적 배포 방법을 변경해야 합니다. 오늘은 Github Action으로 구현해 볼 것입니다. 쿠버네틱스에 배포하는 방법은 간단합니다. 원하는 배포사항을 YAML 파일로 작성해 kubectl로 등록해주면 됩니다. 이후에 Github Action에서 SSH로 접속해 YAML 파일을 전달하고 kubectl을 실행해줄 것입니다. 도커 빌드 및 레지스트리 저장 레포지토리명과 브랜치 이름을 바탕으로 이미지 이름을 정할 것입니다. Github Secret 에는 도커 허브 로그인에 사용할 DOCKER_USERNAME와 DOCKER_PASSWORD를 등록하면 됩니다. 스크립트는 다음과 같습니다. # This workflow uses actions that are not c..

Computer Science 2023.03.06

미니큐브에 ingress와 nginx를 이용해 외부 접속 라우팅 적용하기

이전 시간에는 미니큐브에서 스프링 프로젝트와 MySQL을 실행하고, 포트포워딩을 사용하여 외부에서 접속하는 방법을 배웠습니다. 그러나 이 방법으로는 하나의 서비스만 접속할 수 있습니다. 만약 여러 개의 서비스를 운영하고 있다면, 파이썬 기반의 플라스크나 장고, 자바 기반의 스프링, 그리고 자바스크립트 기반의 노드제이에스 등을 함께 사용하는 경우 라우팅이 필요합니다. 이번 시간에는 쿠버네티스에서 라우팅할 수 있는 방법을 배우겠습니다. domain.com/spring → spring project domain.com/flask → flask project 1. 샘플 프로젝트 만들기 스프링의 경우, 이전 시간에 만들었던 것을 그대로 활용할 예정입니다. 파이썬 프로젝트를 만들기 싫다면, 스킵하고 아래 flask..

카테고리 없음 2023.02.24

[AWS Lex] Intent 업로드 API 구현하기

들어가며 지난글 (https://beoks.tistory.com/86)에선 API를 이용해서 AWS Lex와 대화할 수 있는 기능을 구현해보았습니다. 이번에는 발화 의도(Intent)를 업로드할 수 있는 API를 개발해보려고 합니다. 지난 글과 상당히 유사한 부분이 많기 때문에 이전 글을 많이 인용할 예정입니다. 1. 역할 생성 AWS Lex API 를 관리하기 위한 역할과 정책을 정의합니다. 여러 서비스를 이용하는 경우 각 서비스 마다 목적에 따라서 권한을 나누어 관리하는 것이 좋습니다. 권한을 정의할 정책과 정책을 적용한 역할을 만들어봅시다. IAM Console(https://console.aws.amazon.com/iam/) 에 루트 사용자로 로그인합니다. 엑세스 관리 > 역할 부분에서 역할 만들..

카테고리 없음 2023.01.16

[React] AWS로 React 를 배포하고 자동화를 시스템을 구축해보자 - 1. S3 배포

들어가며 오늘은 회사에서 새로운 프로젝트를 시작하기 위해 리액트 프로젝트를 자동으로 AWS에 배포하는 과정을 진행했고 마주쳤던 이슈에 대해서 정리해보고자 합니다. 이 포스트는 아래와 같이 단계별로 구성되어 있습니다. 1. S3로 배포하기 2. CloudFront로 배포 강화하기 - 예정 3. Github Action으로 배포 자동화하기 - 예정 기존 배포 과정과 문제점 기존에는 AWS 서비스에 대해서 잘 몰라 Nginx를 이용해서 정적 파일을 제공하도록 설계하고 이를 EC2에 올려 배포했습니다. 여기서 문제점은 단순히 정적 파일을 제공하는데 EC2라는 자원은 상당히 비싸다는 것입니다. 웹 페이지의 경우 특정 시간에는 접속이 낮은 경우가 많은데 EC2로 배포를 진행하게 될 경우 시간당 과금이 발생하기 때문..

Web 2022.12.19

AWS Lex를 이용한 챗봇 REST API 서버 구현하기

AWS Lex를 Facebook, Slack 그리고 Twilio 같이 연결서비스를 제공하는 메시지 앱 이외의 서비스에 연결하고 싶은 경우 별도의 HTTP API 서버를 구현해야합니다. 여기에서는 그 과정에 대해서 서술하겠습니다. 1. 아키텍쳐 사용자는 메시징 앱을 통해서 텍스트를 입력합니다. 메시징 앱은 텍스트내용을 HTTP API 요청에 담아 AWS API Gateway에 전달합니다. AWS API Gateway는 요청 인증을 확인하고 이를 AWS Lambda에 전달합니다. AWS Lambda는 비즈니스 로직을 수행하고 Amazon Lex의 PostText API를 호출하여 통신을 수행합니다. 위 데이터 전달 과정을 역으로 수행하여 응답 결과를 사용자에게 전달합니다. 여기서는 MakeAppointmen..

카테고리 없음 2022.11.30

[Elastic Beanstalk] AWS에 Spring Boot 프로젝트 배포하기

1. Spring Boot 배포 방법 Spring Boot 공식문서를 보면 AWS에서 스프링부트를 배포할 수 있는 다양한 방법에 대해서 설명하고 있습니다. 그 중 Elastic Beanstalk을 가장 대표적으로 안내하고 있는데요, CLI를 통해서 배포하는 방법을 링크로 소개해주고 있지만 여기서는 GUI를 통해서 간단하게 배포해보고 또 그 과정에서 생긴 자잘한 버그에 대해서 공유해보고자 합니다. 2. Elastic Beanstalk을 이용한 배포 과정 2.1 AWS Management console에서 beanstalk을 검색합니다. 2.2 새 환경 생성을 클릭하고 환경 티어를 선택합니다. 우리는 Spring Boot를 이용한 웹 서버를 배포할 예정이므로 웹 서버 환경을 선택하도록 합니다. 2.3 웹 서..

카테고리 없음 2022.07.15