# AWS ECS

10개의 포스트
post-thumbnail

[AWS ECS] No Container Instances were found in your cluster.

사전 배경 ECS 에서는 Fargate/EC2 타입의 서비스를 지원한다. 우리 팀은 지금까지 Fargate 형식의 서비스를 운영했는데 이번에 EC2 서비스를 시도하면서 기존 인프라와 배포-운영 면에서 장단점을 찾아보는 시도를 했다. 에러 발생 그렇게 팀에서 쓰고있던 ECS 클러스터에 EC2 서비스를 배포하다가 이런 에러를 만나게 되었다. 트러블 슈팅 일단 에러 지점을 찾으려 했다. 먼저 로컬 컨테이너 테스트를 진행하면서 이미지가 잘 실행되는 지 확인했으나 이상이 없었다. 두번 째로 기존에 하던대로 Fargate 형태의 서비스를 생성해보는데 결과는 health-check 까지 성공하였다. 서비스의 옵션은 EC2/Fargate 타입을 제외하곤

2023년 6월 1일
·
1개의 댓글
·

AWS ECS 배포 자동화

Issue 회사에서는 다양한 플랫폼을 운영하고 있어, 해당 플랫폼의 어드민 사이트도 여러 개 운영 중이다. 그 중 호텔 시스템을 관리하는 서비스는 Nuxt.js(vue)로 개발되어 있었는데, 선임 책임님께서 Next.js(react)로 마이그레이션하는 작업을 하던 중 퇴사하셨다. 작업 초기에 나가셔서 배포 프로세스가 구축되지 않은 상황이며, 기획, 디자인, 개발 등 추가 요청 사항이 생길 때마다 일일이 수동 배포를 해야하거나, 자리로 불러서 확인시켜 드려야 하는 불편한 상황이 발생했다. 따라서 이번에는 배포 자동화를 구축하여, 작업을 보다 원활하게 진행하고자 한다. Problem 회사 서비스들이 주로 AWS ECS 또는 EB로 구성 현재 쉘 스크립트를 사용해 ECR에 Docker 이미지 배포 이후 콘솔에서 ECS 클러스터 업데이트 및 태스크 재실행 ECS와 EB 중 어느 서비

2023년 5월 24일
·
0개의 댓글
·

maimovie 프로세스 정리

Issue maimovie 프로젝트를 담당하고 있는데, 기존에 구축되어 있던 환경, 빌드, 배포 등 전반적으로 복잡한 내용이 많아서 회사 내에서 공유할 목적으로 문서화 작업을 진행하고자 한다. Problem 마이무비 프로젝트는 총 3개의 리포지토리에서 관리되고 있음 마이무비 영문 1개(maimovie) 마이무비 국문 2개(monorepo-maimovie, maimovie-ko) 국문버전을 모노레포 방식으로 점진적으로 전환(nuxt.js > next.js)하고 있어 리포지토리가 2개 국문 중 main, notice, privacy, terms 페이지만 Next.js(monorepo-maimovie), 나머지 페이지는 Nuxt.js(maimovie-ko) 국문(Nuxt.js) 소스코드를 로컬에서 띄우면 나오는 첫페이지는 **에

2023년 5월 23일
·
0개의 댓글
·

Github Actions 배포시간 단축

Issue 디자인 디테일을 자주 확인해야 하는 경우, 빠른 테스트를 위해 수시로 개발 서버에 배포해야 할 때가 있다. 그러나 이 과정에서 배포 시간이 오래 걸리는 불편함이 있었다. 이에 따라, 배포 시간을 단축할 수 있는 방법을 알아보게 되었다. Problem 해당 프로젝트(staypia admin)는 Github Actions을 사용 워크플로우를 통해 ECS로 배포 배포 시간이 17분 가량 소요 Solution 워크플로우에서 배포시간을 단축할 수 있는 방법을 구글링 아래와 같이 작업 안정성 확인 비활성화(wait-for-service-stability: false) 테스트 해보니 staypia admin의 경우 30~40%(17분 -> 6분) 가량 시간 단축 배포를 하면 기존 서버에서 새 서버로 트래픽을 옮김 기본 설정인 `wait-for-service-stabili

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

ECS 를 여행하는 히치하이커를 위한 안내서 1.

안녕하세요! 저는 주로 개인 프로젝트 혹은 회사에서 ECS를 사용하고 있고 관심도 많은 회사원입니다. ECS를 사용하면서 주로 느꼈던 점이 뭔가 ECS Fargate 는 많은데 ECS EC2를 사용하는 글이 몇 개 안보여서 저는 EC2를 기준으로 글을 작성해보려고 합니다. 한달동안 작성을 해보려고 하는데 주로 ECS의 생성, 배포, 통신을 주제로 글을 작성해보려고 합니다. 왜 컨테이너를 사용해야 할까 많은 이유가 있겠지만 가장 큰 이유는 OS에 독립적인 애플리케이션을 컨테이너로 감싸서 구동시킬 수 있다는 것이 가장 큰 장점으로 생각됩니다. Spring 으로 구성된 애플리케이션의 경우 JAVA를 다운로드 받고 JAVA_HOME 같은 환경 변수를 설정해줘야 하지만 컨테이너를 사용하면 자바가 이미 다운로드 되어있는 이미지를 가져다 쓰기만 하면 됩니다. 또 하나의 장점은 컨테이너를 버저닝하여 신규 기능이 올라오거나, 에러가 있어서 롤백을 해야 할 때 빠른 대처가 가능하다

2023년 4월 16일
·
0개의 댓글
·
post-thumbnail

[AWS] ecs-cli로 ECS Fargate 생성

ecs-cli란? 로컬 개발 환경에서 클러스터 생성, 업데이트, 모니터링을 간편하게 해주는 cli install ecs-cli create Docker image (테스트는 python file로 진행합니다.) Docker를 생성합니다. Dockerfile을 생성합니다. Docker image를 생성합니다. Docker image가 생성되었는지 확인합니다. image를 컨테이너로 실행시킵니다. 컨테이너가 동작되고 있는지 확인합니다. ECR에 업로드합니다. ecs-cli로 ecs 구성 Access key와 Secret Key를 환경변수로 지정해줍니다. ecs-cli 명령어를 사용하여 profile을 구성해줍니다. ecs-cli 명령어를 사용하여 환경설정을 구성합니다. Cluster를 생성합니다. Compose 파일 생성 Docker

2023년 3월 24일
·
0개의 댓글
·
post-thumbnail

Gitlab CI/CD 설정 방법 (with. AWS ECS)

* docker, docker-compose 설치 필수 Gitlab은 CI/CD를 사용하려면 위해 Gitlab-runner를 필수로 등록해줘야함 아래 Gitlab-runner 설정 방법은 공유 러너, 그룹 러너, 특정 러너 중 특정 러너 설정 방법 중심으로 작성됨 Dockerfile이 배포할 프로젝트 하위에 작성되어있어야함(docker build시 필요) 필자의 개발 환경 Node.js + AWS ECS + Gitlab 1. Gitlab 웹에서 프로젝트 CI/CD 설정 CI/CD 조건 활성화 > Settings > General > Visibility, project features, permissions 섹션으로 이동 > CI/CD 조건 활성화 공유러너 비활성화

2023년 1월 24일
·
0개의 댓글
·
post-thumbnail

AWS에서 컨테이너를 운영한다면 꼭 봐야 하는 모범 사례 (세미나 내용 정리)

👍 이 글은 AWS 솔루션즈 아키텍트 김지민님의 강연 AWS에서 컨테이너를 운영한다면 꼭 봐야 하는 모범 사례 를 보고 정리한 내용입니다. 좋은 강연해주신 연사분께 감사드립니다. AWS 입사하면 커피 사겠습니다. > 📣 소제목을 누르면 해당 발표 시간의 영상으로 이동합니다. 내용을 보다가 이해가지 않는 부분이 있다면 편하게 찾아보세요. AWS Well Architected 원칙 운영 우수성: 모니터링, 자동화, 이벤트 응답, 표준화 등 프로세스 개선 보안: 데이터의 기밀성 및 무결성, 권한 제어 등 안정성: 서비스 가용성을 위한 분산 시스템 설계, 장애 회복력 등 성능 효율성: 리소스를 효율적으로 사용 비용 최적화: 불필요한 지출 제거 잘 설계된 워크로

2023년 1월 17일
·
0개의 댓글
·

AWS ECS, ECR

AWS ECS Amazon EC2 Container Service(ECS)는 도커 컨테이너를 지원하는 컨테이너 관리 서비스 입니다. EC2 인스턴스의 관리형 클러스터에서 어플리케이션을 간편하게 실행할 수 있습니다. 관리형 클러스터에서 실행되므로, 간단한 API 호출을 통해 도커를 사용하는 어플리케이션을 시작/중지 하고 클러스터 전체 상태 관리가 가능하며 Elastic Load Balancing, Amazon Elastic Block Store(Amazon EBS) 볼륨, AWS Identity and Access Management(IAM)역할 등 여러 가지 기능에 액세스 할 수 있습니다. AWS ECR Amazon EC2 Container Registry(ECR)는 개발자가 도커 컨테이너 이미지를 손쉽게 저장,관리 및 배포할 수 있도록 하는 완전관리형 도커 컨테이너 레지스트리입니다. Amazon ECR은 ECS 와 통합되어 개발에서 프로덕션까지의 워

2022년 8월 17일
·
0개의 댓글
·
post-thumbnail

[AWS] Amazon ECS

✔️ AWS Fargate란? Fargate는 AWS ECS와 EKS를 기반으로 작동하는 서비스로, 도커 컨테이너를 EC2 인스턴스 없이 독립적으로 실행할 수 있게 해준다. 컨테이너의 이동성, 서버리스의 탄력성, 사용 용이성 등의 장점을 갖는다. EC2보다 컴퓨팅 성능을 더 세세하게 선택할 수 있으며, 태스크 단위에서 IAM 롤이나 네트워크 인터페이스를 부여하는 것도 가능하다. Fargate를 사용하면 ECS를 기반으로 EC2와 같은 별도의 컴퓨팅 자원에 의존하지 않고 컨테이너를 독립적으로 실행할 수 있다. 즉, 컴퓨팅 자원에 대한 추가적인 관리 없이 애플리케이션을 실행하는 것이 가능하다. Fargate 서비스의 컴퓨팅 용량은 오토 스케일링 기능을 사용해 쉽게 확장이 가능하여 모든 배포 작업을 수행하는 데 시간에 적게 소요된다. 컨테이너를 기반으로 하기 때문에 람다에서 지원하는 언어들보다 훨씬 더 다양한 환경을 그대로 이식하는 것이 가능하다. &nbsp

2022년 3월 6일
·
0개의 댓글
·