AWS ECS 사용 노트
다시 정리하면 다시 쓸 수도 있어요.
ECS 개요
ECS(Elastic Contaainer Service)는 AWS에서 Docker 컨테이너를 시작하고 서비스를 제공할 때 사용합니다.
컨테이너의 실행 환경으로는 EC2 인스턴스를 활용하는 방법과 AWS Fargate를 사용하는 방법이 있습니다.
안정적으로 움직이면 EC2 인스턴스를 사용하는 방법이 사용되므로 여기에는 EC2 인스턴스만 나열됩니다.
클러스터 생성
ECS의 실행 환경에 대한 EC2 인스턴스는 클러스터 단위로 관리됩니다.
여러 EC2 인스턴스에서 클러스터를 구성할 수 있으며 여러 구성에서 외부 액세스를 수락할 경우 클러스터를 ALB(Application Load Balancer)와 연관시키는 시스템 구성이 필요합니다.또 용기 간 통신과 관련해서는 여러 대의 구조에도 주의가 필요하다.
불필요한 필요와 자원이 부족하지 않으면 단일 실례에서 이동해도 문제없다.
빈 클러스터 작성
클러스터 제작 시 EC2 인스턴스를 만드는 방법도 있지만, 빈 클러스터를 먼저 만든다.
클러스터에 새 EC2 인스턴스 등록
기존 EC2 인스턴스를 등록하는 것은 ECS 에이전트 가입 등 다양한 난제이기 때문에 ECS용 AMI를 사용하여 인스턴스를 다시 시작합니다.
이 때, 실례를 만들 때 한 번만 실행하는 처리로서, 그룹에 가입하는 처리를 설명하는 것이 좋습니다.
임무 집행
ECS의 컨테이너는 작업과 서비스라는 두 단계의 관리를 수행합니다.
현재 docker run 명령에 해당하는 내용을 작업으로 등록하고 작업을 시작하면 서비스가 없어도 실행할 수 있습니다.
배달된 컨테이너 사용
예를 들어, Nginx의 컨테이너에 대한 작업 등록입니다.이 경우 docker 공식 창고의 Nginx 이미지를 직접 지정할 수 있습니다.
기본적으로 서버에서 실행되는 docker run 명령의 내용을 입력하면 되지만 메모리 제한을 기술해야 합니다.
좀 이해하기 어려운 것은 음량과 관련된 부분이다.미리 볼륨을 정의하고 용기의 설정을 통해 선택하십시오.
내 경우에는 EFS 디렉토리가 볼륨으로 사용되지만 이 경우 인스턴스에 수동으로 설치하지 않더라도 EFS를 볼륨으로 지정할 수 있습니다.보안 그룹은 인스턴스에서 EFS로의 액세스를 허용합니다.
독자 제작 용기 활용
독자적으로 개발한 응용 프로그램을 실행하려면 이미지를 AWS ECR로 이동합니다.
권한이 필요하기 때문에 ECR에 대한 접근권을 가진 IAM 계정을 개발용 EC2 실례와 연관시켜 실시한다.
컨테이너 인스턴스에서 ECR에 대한 액세스는 인스턴스와 연관된 IAM 스크롤에서 허용됩니다.
그런 다음 ECR의 이미지만 지정하면 위의 방정식 이미지와 동일한 작업을 등록할 수 있습니다.
임무 집행
군집된 관리 화면이나 임무의 관리 화면에서 임무를 수행할 수 있다.
집단에서 임무를 수행하고 성공하면 컨테이너가 정상적으로 작동한다.실제 실례에 들어가면 docker ps 명령으로 보아도 실행된 것을 알 수 있습니다.
TIPS
컨테이너 이미지를 ECR에 업로드
권한을 위해 docker login이 필요합니다.이 docker login에 사용되는 정보를 얻기 위해 AWS CLI를 미리 설치하고 사용합니다.
또 ECR은 라벨이 길고 답답해 통상 사용하는 이미지 라벨과 별도로 관리한다.일반적으로 버전 정보를 사용하지 않고 ECR을 누를 때만 버전 설정 ECR용 라벨을 붙이고 누르면 바로 라벨을 삭제합니다.나는 그것을 모든 응용 프로그램의 케이스 스크립트로 만들었다.
# docker login
aws ecr get-login-password --region ap-northeast-1 | docker login \
--username AWS --password-stdin ****.dkr.ecr.ap-northeast-1.amazonaws.com
# ECR-push.sh
cd $(dirname $0)
VERSION=$(<version)
IMAGE_ID=$(docker images --digests MYNAME:APPNAME --format "{{.ID}}")
docker tag ${IMAGE_ID} ****.dkr.ecr.ap-northeast-1.amazonaws.com/APPNAME:${VERSION}
docker push ****.dkr.ecr.ap-northeast-1.amazonaws.com/APPNAME:${VERSION}
docker rmi ****.dkr.ecr.ap-northeast-1.amazonaws.com/APPNAME:${VERSION}
Code Commiit에 소스 코드 저장
ECS나 컨테이너랑은 상관없지만
이것도 접근 권한을 잘 유지하고 SSH 키를 만들어서 IAM 사용자와 연결해서 사용해야 한다.
# 初期設定&リポジトリ設定
git init
git config user.name myname
git config user.email mymail
git remote add origin ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/APPNAME
git config -l
Reference
이 문제에 관하여(AWS ECS 사용 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/saiki_toshiki/articles/846cdab7807f47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)