본문 바로가기

전체 글

(190)
[Github Action] Application Load Balancer 상태 확인이 실패하는 문제를 수정 및 해결 방법(추가 배치를 사용한 롤링) Intro. 결론부터 이야기하면 해당 문제점은 에러가 아니고 정상적인 상황이다. EB 환경에서 상태 간 전환이 발생할 때 확장 상태 시스템은 이벤트를 생성한다. 1. 문제점 헬스 체크하는 과정에서 ELB가 헬시 하지 않다는 내용이다. 왜 이런 문제가 발생할까? 2. 상태파악 배포 방식을 "추가 배치를 사용한 롤링"을 선택한다면, 이 WARN은 에러가 아니다. 인스턴스가 새롭게 추가되고 기존 인스턴스가 종료되는 과정에서 뜨는 경고 메세지인 것이다. 그래서 이러한 과정을 거치면 아주 정상적으로 서비스가 잘 운영이 된다. 3. 진짜 문제점 github action으로 CI/CD를 EB에서 처리하는 경우 github action이 이러한 상태 변화가 몇 십초 or 몇 분 지속되었을 경우를 에러로 인식하는 것이 ..
.ebextensions + private S3 버킷 접근 설정 Intro. s3에 있는 파일을 eb instance에 넣고 싶을 때 설정하는 방법이다. AWS 보안의 핵심은 IAM user에 있다. IAM으로 접근 권한을 설정해서 특정 서비스만 접근하도록 설정할 수가 있다. 여기에서 사용할 내용은 s3, .ebextensions, iam user이다. 1. .ebextensions Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["example"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "I..
[CI/CD] Github Action for a test Intro. github action을 계속 실행하면서 test 해 볼 수는 없다. 그래서 workflow를 테스트 해볼 수 있는 tool을 사용하는 것이 좋다. 사실 테스트 tool을 사용한다고 해도 완벽하게 테스트해볼 수는 없지만 그래도 문법 오류 등 대부분의 오류는 해결할 수 있으므로 먼저 test 후에 action을 실행해보길 바란다. 1. test tool 설치 brew install act 2. workflow 확인 1) act -l workflow 리스트를 볼 수 있다. 2) act workflow_dispatch -l workflow_dispatch 옵션을 주는 경우 이 옵션을 붙여서 리스트를 확인한다. 3) act -j job_id --container-architecture linux/..
[CI/CD] Github Prod Repo + Github Action + ECR tag + Dockerrun.aws.json 설정 Intro. github repo를 repo-dev와 repo-prod로 나누어서 관리하는 것이 좋다. dev에서는 이미지 빌드를 한 후 ecr에 push 한 후 dev-eb 배포를 한다. 그 후 prod에서 이미지를 pull 받아 prod 환경에 배포한다. 1. prod 배포 상황 dev에 배포가 되었고 image가 ecr에 올려져 있다. prod에서는 이 이미지를 pull만 받으면 되는 상황 2. deploy.yaml name: main-prod deploy on: workflow_dispatch: inputs: image-tag: description: 'image tag name' required: true type: string jobs: build_deploy: runs-on: ubuntu-l..
[CI/CD] Github Dev Repo + Github Action + ECR tag + Dockerrun.aws.json 자동 할당 설정 이번 시간에는 Github action으로 ECR에 push할 때, unique한 tag를 자동으로 설정하는 방법에 대해 알아보겠다. 1. AWS ECR 공식 문서 tags are not automatically assigned to your resources 태그는 자동 할당이 안 되고 직접 입력해야 된다고 나와있다. 2. Github Action + ECR 공식문서 tag 추천 방법 1) github.sha 워크플로우를 트리거한 git commit의 해쉬값 즉, 이 값으로 접근하면 항상 git head 값이 접근을 한다. 3. deploy.yaml jobs: build_deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/check..
nginx 이해 1. nginx란? NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers.(공..
proxy server 이해 1. proxy란? 남의 일을 대신 처리해준다. 2. proxy server 란? 대리로 통신을 수행하는 server  3. proxy 전체 흐름도 client --- forward proxy --- internet --- reverse proxy --- servers 4. proxy server 특징 캐시, 보안, 트래픽 분산 등 여러 장점을 가질 수 있음 5. proxy 종류 1) forward proxy (1) forward proxy 특징 일반적인 proxy는 forward proxy [1]캐싱 클라이언트 요청 캐싱 [2]익명성 클라이언트 요청 감춤 (2) forward proxy 장점 인터넷 속도 향상 외국 접속 테스트 ip 추적 방지 2) reverse proxy (1) reverse pro..
cors 에러 1. cors(Cross-origin resource sharing)란? 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 즉, 다른 출처의 resource(url)를 공유할 수 있도록 설정하는 것을 의미 2. cors 에러 cors 설정을 해주지 않으면 cors 에러가 발생해 api 호출이 불가능하게 된다. 3. cors 에러 발생 이유 프론트와 back의 코드가 각각 다른 서버에서 운영되기 때문에 보통 발생한다. front와 back이 같은 domain에서 온다면 cors 에러 처리를 따로 하지 않아도 된다. 4. cors back-end 해결 import org.springframework...