서버리스 및 컨테이너
5170 단어 dockerserverlessaws
ECS or Fargate
Docker Swarm 또는 도커 데몬
이들은 배포에 가장 일반적으로 사용되는 기술이지만 소규모 상태 비저장 응용 프로그램 집합의 경우 많은 관리가 무시됩니다.
이 시점에서 AWS는 Lambda에서 컨테이너 이미지를 배포 및 구축하고 간단한 애플리케이션으로 실행할 수 있는 영향력을 제공했습니다.
serverless을 사용하여 DOCKER 응용 프로그램을 빌드하고 배포하는 방법을 살펴보겠습니다.
사전 요청:
Serverless 유틸리티
서버리스 유틸리티 설치
npm install -g serverless
설치가 완료되면 노드 애플리케이션용 서버리스 유틸리티를 사용하여 구조를 생성할 수 있습니다.
애플리케이션을 실행하기 위한 Dockerfile 생성
faisalnizam@Muhammads-MBP sample % serverless create --template aws-nodejs-docker --path aws-nodejs-docker-demo
✔ Project successfully created in "aws-nodejs-docker-demo" from "aws-nodejs-docker" template (3s)
일단 구성되면 다음과 같은 구조를 가져야 합니다.
faisalnizam@Muhammads-MBP aws-nodejs-docker-demo % tree
.
├── Dockerfile
├── README.md
├── app.js
└── serverless.yml
0 directories, 4 files
serverless.yml에서 cat을 수행하면 terraform과 같은 공급자 섹션이 표시됩니다.
provider:
name: aws
ecr:
# In this section you can define images that will be built locally and uploaded to ECR
images:
appimage:
path: ./
이것은 docker 빌드가 하는 것처럼 정확한 마법을 수행하고 응용 프로그램을 빌드하고 도커 이미지의 콘텐츠를 가져올 위치와 이미지를 가져올 위치(이 경우 ECR)를 알려줍니다.
이제 서버리스 유틸리티를 사용하여 serverless.yml에 프로필을 추가하고 간단한 명령을 실행하여 컨테이너를 쉽게 빌드하고 배포할 수 있습니다.
faisalnizam@Muhammads-MBP aws-nodejs-docker-demo % serverless
Onboarding "aws-nodejs-docker-demo" to the Serverless Dashboard
? Do you want to login/register to Serverless Dashboard? No
? Do you want to deploy now? Yes
Deploying aws-nodejs-docker-demo to stage dev (us-east-1)
✔ Service deployed to stack aws-nodejs-docker-demo-dev (237s)
functions:
hello: aws-nodejs-docker-demo-dev-hello
위에서 볼 수 있듯이 이것은 이미지를 빌드하고 업로드합니다. API 게이트웨이와 같은 리소스를 람다에 연결하여 serverless.yml에서 다음 줄의 주석을 제거하여 서비스를 시작할 수 있습니다.
events:
- httpApi:
path: /users/create
method: get
서버리스 배포 실행
faisalnizam@Muhammads-MBP aws-nodejs-docker-demo % serverless deploy
Deploying aws-nodejs-docker-demo to stage dev (us-east-1)
✔ Service deployed to stack aws-nodejs-docker-demo-dev (56s)
endpoint: GET - https://lkvr0lkbf6.execute-api.us-east-1.amazonaws.com/users/create
functions:
hello: aws-nodejs-docker-demo-dev-hello
이제 API 게이트웨이를 사용하여 람다에 대한 프록시 GET이 있는 도커 컨테이너에 대해 엔드포인트를 구성했습니다.
끝점: GET - https://lkvr0lkbf6.execute-api.us-east-1.amazonaws.com/users/create
이제 우리는 모든 자동화된 방법을 보았습니다. 해독하고 모든 것을 수동으로 빌드해 보겠습니다.
Lambda용 도커 컨테이너 수동 구축
이제 애플리케이션의 작은 구조가 있으므로 빌드 및 배포를 시도할 수 있습니다.
ECR 저장소에 로그인
aws --region=me-south-1 --profile=aws-test ecr get-login-password --region | docker login --username AWS --password-stdin .dkr.ecr..amazonaws.com
필요에 따라 올바른 지역 및 계정 ID를 프로필로 대체하면 "로그인 성공"메시지가 표시됩니다.
lambda 준비된 Docker 이미지 설정
docker pull public.ecr.aws/lambda/nodejs:12
docker cli를 사용하여 docker를 빌드해 보겠습니다.
docker build -t
이미지를 푸시할 ECR 저장소 생성
aws ecr create-repository --repository-name --image-scanning-configuration scanOnPush=true
태그 및 푸시 도커
docker tag :latest .dkr.ecr..amazonaws.com/:latest
docker push .dkr.ecr..amazonaws.com/:latest
이제 serverless.yml에 정보를 추가하여 서버리스가 올바른 도커 레지스트리를 가리키도록 합니다.
functions:
someFunction:
image: .dkr.ecr..amazonaws.com/@
이 부분이 완료되면 서버리스 배포를 실행하여 람다에 도커 컨테이너를 배포합니다.
Reference
이 문제에 관하여(서버리스 및 컨테이너), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/serverless-and-containers-274h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)