분류 전체보기
-
[Travis CI] Travis CI가 작동하지 않을 때 Github hooks 수동 설정하기DevOps/Travis CI 2021. 4. 26. 23:26
Travis CI가 작동 안할 때 위와 같이.. 버튼을 활성화 시켰습니다! 근데 Github Repository로 push를 해도 Travis CI는 반응하지 않습니다.. 처음에는 왜그럴까?? 하고 계속 검색하고 삽질을 했는데.. 원하는 결과는 찾기 쉽지 않았습니다. ㅠ 혹시나 하는 마음에 Webhooks가 등록되지 않았나? 하고.. 들어가보니 등록되어 있지 않았습니다... (왜그런지 모르겠지만,, 나만 그런 현상 같은데 ㄷㄷ) 그래서 Github에 Webhooks를 등록하는 법에 대해서 정리해보겠습니다. Travis CI Webhooks 등록하기 Settings -> Webhooks를 눌러서 들어가겠습니다. https://notify.travis-ci.org 위의 URL을 Payload URL에 입력해..
-
[AWS] Spring Boot로 ElastiCache 간단한 실습해보기Cloud/AWS 2021. 4. 26. 17:50
AWS ElastiCache 시작하기 이번 글에서는 AWS ElastiCache를 생성하고 아주 간단한 실습을 하는 것을 정리해보겠습니다. 이번 실습에서는 Redis를 사용해서 할 것이기 때문에 Redis를 체크하겠습니다. 위의 노드 유형을 t2.micro(프리티어)로 해야 합니다! (Default로 되어 있는 거 쓰면 좋은 성능이라 요금 많이 나옵니다..) 보안그룹은 따로 생성해서 지정해주어도 되고 기존이 6379 포트가 열려있는 보안그룹이 있다면 그것을 사용해도 됩니다.(저도 열려있는 보안그룹이 있기 때문에 그것을 사용하겠습니다.) 그리고 나머지는 Default로 놓고 생성하겠습니다. 그러면 위와 같이 생성이 되는데 5분 정도 기다려야 생성이 완료됩니다. EC2 접속 후 redis-cli 설치하기 #..
-
[Docker] EC2에서 Docker로 Nginx Reverse Proxy 하는 법DevOps/Docker 2021. 4. 23. 21:53
EC2에서 Docker로 Nginx Reverse Proxy 하는 법 이번 글에서는 EC2에서 Docker-Compose를 이용해서 Nginx, Spring Boot 컨테이너 두 대를 실행시켜서 Reverse Proxy 하는 것을 해보겠습니다. 서버 아키텍쳐 이번 글의 아키텍쳐를 보면 위와 같습니다. 그럼 바로 실습을 해보겠습니다. EC2 Docker 설치 현재 저는 EC2 Linux2를 사용하고 있습니다. sudo yum update -y sudo amazon-linux-extras install -y docker sudo service docker start 도커가 잘 설치되었는지 docker --version으로 확인할 수 있습니다. 그리고 Docker-compose도 사용할 것이기 때문에 이것도 ..
-
[Docker] Docker Compose를 사용해야 하는 이유DevOps/Docker 2021. 4. 23. 16:05
Docker Compose를 사용하는 이유는? 먼저 Docker Compose를 사용하지 않고 NodeJS, Redis 컨테이너를 만들어서 컨테이너간 통신을 해보겠습니다. NodeJS 환경 세팅 npm init Enter (계속) npm init 명령을 치면 어떤 것들이 여러 개 뜨는데 Enter를 계속 치겠습니다. 그러면 위와 같이 package.json이 만들어집니다. { "name": "compose", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependenci..
-
[Docker] Docker 기본 명령어 Volume 이란?DevOps/Docker 2021. 4. 22. 15:58
들어가기 전에 일단 volume이 무엇인지 알기 전에 워드프레스, MySQL을 가지고 간단한 실습을 해보겠습니다. MySQL 실행하기 docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7 위의 명령어를 터미널에서 실행해보겠습니다. 그러면 위와 같이 Docker Image(MySQL)를 다운받고 컨테이너가 실행되는 것을 볼 수 있습니다. MySQL 접속하기 docker exec -it mysql mysql 위와 같이 exec 명령어를 통해서 mysql에 접속을 했습니다. create database wp CHARACTER SET utf8; grant all privileges on wp.* to wp@'%' ..
-
[AWS] Spring Boot,Travis CI, CodeDeploy, Nginx로 무중단 배포하기Cloud/AWS 2021. 4. 22. 13:08
들어가기 전에 이러한 구조로 자동화 배포를 진행한 적이 있습니다. Github에 push만 하면 자동으로 EC2에 새로운 버전의 jar가 배포되고 재 실행되어서 배포가 되었습니다. 하지만 위의 방식에는 단점이 존재합니다. 배포가 진행되는 도중에는 서버가 잠시 중단되야 한다는 점입니다. CodeDeploy가 EC2에 새로운 버전의 jar를 배포할 때, 기존의 실행 중인 jar를 kill 한 후에 새로운 버전의 jar를 실행시킬 것입니다. 이 과정에서 서버가 잠시 중단되어 사용자들은 서비스에 접속할 수 없게 됩니다. 현재 우리가 많이 사용하고 있는 서비스들을 보면 새로운 버전의 업데이트가 일어나더라도 서비스가 중단되거나 하지 않고 무중단으로 배포가 이루어집니다. 무중단 배포에는 인스턴스를 여러 개 만들어 현..
-
[Shell Script] 셸 스크립트(Shell Script) 기본 문법 정리Shell Script/Bash Script 2021. 4. 21. 15:50
Shell Script 및 리눅스 일부 문법 정리 RESPONSE_CODE=$(sudo curl -s -o /dev/null -w "%{http_code}" http://localhost:8080) /dev/null: 위의 명령어가 성공했다면 아무 것도 뜨지 않고 실패하면 에러 메세지가 출력됩니다. curl: 해당 URL로 요청을 보내는 명령어(-s, -o, -w은 더 찾아보기) "%{http_code}": URL 요청의 HTTP Status Code를 파싱하게 된다. 즉, RESPONSE_CODE에 해당 상태 값이 담깁니다. if-else문 if [ ${RESPONSE_CODE} -ge 400 ] # 400 보다 크면 (즉, 40x/50x 에러 모두 포함) then CURRENT_PROFILE=real..
-
[AWS] ELB(Elastic Load Balancer) 개념 정리Cloud/AWS 2021. 4. 20. 14:19
로드 밸런싱 개념 정리하기 이번 글에서는 로드 밸런싱을 공부하면서 헷갈렸던 부분을 정리해보겠습니다. (어쩌면 당연한 부분들인데 헷갈렸던 것들이 있습니다,,) 로드 밸런서를 왜 사용하는지는 다들 알고 있을 것입니다. 서버 한대로만 트래픽을 받으면 그 서버에 부하가 걸리기 때문에 로드 밸런서를 통해서 여러 서버로 트래픽을 분산시키기 위해서 사용합니다. 로드밸런서를 사용하면 아키텍쳐는 위와 같습니다. 즉, 클라이언트는 로드밸런서에 접속을 하고 로드밸런서는 해당 트래픽을 각각의 Target-Group 인스턴스들로 분산을 시켜주는 것입니다. 여기서 궁금증이 생겼습니다.(지금 생각해보면 당연한 것인데.. 그럼에도 정리를..) 타겟 그룹마다 인스턴스의 역할이 다른것인가? 예를들어, Target-Group A의 인스턴..