무중단 배포를 위한 여정
·
DevOps/nginx
무중단 배포를 적용하기 위해 프록시 서버로 nginx를 사용했다.(nginx : https://kimdozzi.tistory.com/256) 배포 플로우  Blue-Green 방식가장 흔히 알려진 방식으로 롤링 배포 방식이 있다. 다른 배포 방식이 궁금하다면 https://hudi.blog/zero-downtime-deployment/ 를 참고하자. 해당 방식은 두 대의 서버를 사용한다. 하지만, 나는 EC2 한 대에 도커 컨테이너 두 개를 구축하고, 새 버전의 이미지가 올라올 때만 띄워서 교체하는 방식으로 선택했다. 이전에 선택한 방법은 AWS EC2에서 2개의 Springoot Jar 파일을 포트번호만 달리하여 띄우는 방식이었다. 하지만, 내부적으로 문제가 발생함과 동시에 해당 방식은 무중단 배포가 ..
Nginx? 무중단 배포?
·
DevOps/nginx
무중단 배포?서비스가 중단되지 않은 상태에서 새로운 버전을 배포하는 것 무중단 배포가 필요한 이유?실제 서비스에서 한 대의 서버를 운영한다고 가정하자. 현재 사용중인 서비스의 Version은 application-V1을 배포한 서비스이다. 그런데 기능이 업데이트 되어 application-V2를 배포하려 한다. 이 새로운 버전 V2를 배포하기 위해서는 V2 버전의 빌드 파일을 서버에 배포해야 한다. V1와 V2는 서로 같은 포트를 사용하기 때문에 V2를 배포하기 위해서는 V1버전을 통해 실행하고 있는 서비스를 종료해야만 한다. 이러한 경우, V1이 종료되고 V2 버전이 실행되는 사이 유저가 서비스를 이용할 수 없는 시간이 생기는데, 이를 “다운타임” 이라고 한다.  NginxNginx란 트래픽이 많은 웹..
Github Actions, Slack Webhook 설정
·
DevOps/Git, Github
1. slack api에서 설명하는 3번 과정까지 진행한다.  https://api.slack.com/messaging/webhooks 2. 생성된 slack webhook url을 Secrets 환경 변수에 등록한다.  3. .github/workflows/{파일명}.yml 파일에 아래 내용을 작성한다.  # Slack Webhook 설정 - name: action-slack uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} author_name: Backend fields: repo,commit,message,author mention..
AWS S3 403 에러 해결하기
·
DevOps/AWS
프로젝트를 배포하고, 운영환경에서 여러가지 통합 테스트를 진행하던 과정에서 아래와 같은 에러와 마주하였다. 자세히 살펴보니 AWS S3 burket 에서 문제가 발생한 것으로 보였다. 개발도 힘들지만, 운영 환경을 유지하는 것도 참 어렵다는 것을 깨닫고 있는 요즈음이다. 그래도 좋은 팀원들과 함께 성장하고 있어서 힘들지 않다. (아니 힘들어) ERROR : java.io.IOException: Server returned HTTP response code: 403 for URL; https://{AWS S3 bucket 주소}  해결 방법AWS 로그인 - AWS S3 - 사용중인 bucket 접속 - 권한  1. 버킷 정책 설정{ "Version": "2012-10-17", "Id": "Pol..
재부팅시 docker container를 자동으로 실행되도록 설정하는 방법
·
DevOps/docker
https://freesunny.tistory.com/24 재부팅시 docker 컨테이너를 자동으로 시작되도록 설정하는 방법만들때 --restart-always 옵션을 넣어주면 되는데, 빼고 컨테이너를 실행했을 때에는 아래의 명령으로 변경할 수 있다. # docker update --restart=always # 예) # docker update --restart=always d3af8191dca8freesunny.tistory.com
aws ec2에 올린 docker container DB에 DBeaver로 접속하기
·
DevOps/AWS
DB Connect 클릭상단 탭에서 SSH 클릭host/IP : EIP 또는 public IP 입력본인 EC2 기준 : ubuntuAuthentication Method : Public KeyPrivate Key : AWS EC2 생성하면서 받은 .pem 파일 등록상단 Main 클릭Database 이름 입력해당 DB username과 password 입력 후 Test Connection 클릭연결 성공
[docker] docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우
·
DevOps/docker
⇒ 해결방법 : https://github.com/occidere/TIL/issues/116#issue-509567575 docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우 · Issue #116 · occidere/TILdocker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우 상황 docker 설치 후 usermod로 사용자를 docker 그룹에 추가까지 완료 후 터미널 재접속까지 했으나 permission denied 발생 (설치 참고: https://bgithub.com
[docker] 컨테이너와 도커의 이해
·
DevOps/docker
왜 도커를 리눅스에서 돌려요 ?리눅스 커널의 기능들인 chroot, namespace, cgroup을 가지고 컨테이너를 생성하기 때문.chroot : 독립된 공간 형성namespace : isolate 기능 지원cgroup : 필요한만큼 HW 지원컨테이너 기반 기술 → 리눅스 커널리눅스 커널이 없으면 컨테이너를 돌릴 수 없다.window,mac os는요 ? → hypervisor를 활성화시켜서 그 위에 컨테이너를 돌리는 것 !!!  컨테이너? 컨테이너 이미지? 컨테이너컨테이너는 하나의 Application 프로세스 → 각 컨테이너는 독립적으로 운영된다. 간단히 말해서 컨테이너는 앱의 각 구성 요소에 대해 격리(Isolation)된 프로세스이다.각 컨테이너는 호스트 시스템에 사전 설치된 종속성에 의존하지 ..
mariadb build 시 트러블 슈팅 해결하기 (포트 변경 및 vim 설치하기)
·
DevOps/docker
bash에 vim을 설치하게 된 이유는 docker에 mariadb를 설치하고 datagrip으로 접속을 시도했다. db접속을 위해 Test Connetion을 시도하였으나, 아래와 같은 오류 발생 ! Could not connect to localhost:3307 : unexpected end of stream, read 0 bytes from 4 (socket was closed by server). 이를 해결하기 위해 default로 설정된 포트를 변경해주려 한다.(접근하려는 PORT와 설정된 PORT가 불일치하므로) 그러기 위해선 my.cnf 파일수정이 필요하다. ps 명령어를 통해 연결된 포트를 확인해본다. 3306은 mysql로 되어있기 때문에(다른 걸 써도 무방하다. 본인의 취향에 맞게 설정..
IAM 유저 생성과 MFA
·
DevOps/AWS
[IAM 유저 생성 실습] 1. services → IAM 2. Account management → Create User 3. Enter User detail 4. Set permissions 5. [Optional] Tags -> Add new tag 6. created User MFA 1. User -> Security credentials -> Assign MFA device 클릭 -> name 설정, Authenticaor app 클릭 후 Next 2. www.authy.com 접속 후 OS에 맞게 download 3. 설치 후 휴대폰 or 이메일 인증 및 key 입력 (Set up device 화면에서 show secret key 클릭 후 key를 authy에 입력) 3-1. 로그인된 auth..
Github 정적 웹사이트(블로그) 만들기 (edior + github page)
·
DevOps/Git, Github
1. 토스트 에디터로 뷰어 만들기 with codepen - vanilla js를 이용하지 않고, toast ui edior의 viewer를 사용해 마크다운 문법 적용(개발자 친화적) - Toast ui editor viewer는 에디터를 로딩하지 않고 마크다운 콘텐츠를 보여줄 수 있도록 뷰어를 제공한다. toast ui editor kor verson document : https://github.com/nhn/tui.editor/blob/master/docs/ko/getting-started.md ) ( .. viewer : https://github.com/nhn/tui.editor/blob/master/docs/ko/viewer.md ) 컨테이너 요소 추가 ... ... 브라우저 환경에서의 nam..
github-flow 전략 연습하기
·
DevOps/Git, Github
혼자서 github-flow 연습 프로젝트 매니저 1. Github 접속 2. Repository 생성 후 README.md 파일 추가 3. Settings : Branches : Branch protection rules : Require a pull request before merging 체크, Require approvals 체크 후 저장 4. Settings : Collaborator -> add people 5. Issue 생성 -> Title & Content 작성 -> Label 및 asignees 설정 -> Submit 개발자 1. git bash terminal 접속 후 git clone "레파지토리 주소" 2. git checkout -b "Label명/이슈번호" 로 브랜치 생성 3...