이 기사에서는 AWS CloudFormation이 클라우드 인프라 설정 및 관리를 단순화하는 방법을 살펴 보겠습니다. 서버 나 데이터베이스와 같은 리소스를 수동으로 작성하는 대신 파일에 요구 사항을 기록 할 수 있으며 CloudFormation은 무거운 리프팅을 수행합니다. IAC (Infrastructure)로 알려진이 접근법은 시간을 절약하고 오류를 줄이며 모든 것이 일관되게 보장합니다.
우리는 또한 Docker와 Github 동작이 프로세스에 어떻게 적합한 지 살펴볼 것입니다. Docker를 사용하면 응용 프로그램을 쉽게 패키지하고 실행할 수 있으며 Github Actions는 테스트 및 배포와 같은 작업을 자동화합니다. CloudFormation과 함께이 도구는 클라우드에 응용 프로그램을 구축하고 배포하기위한 강력한 워크 플로를 만듭니다.
학습 목표
인프라를 코드 (IAC)로 사용하여 AWS CloudFormation으로 클라우드 인프라 관리를 단순화하는 방법을 배우십시오.
Docker 및 Github 동작이 간소화 된 응용 프로그램 배포를 위해 AWS CloudFormation과 어떻게 통합되는지 이해합니다.
Langchain 및 GPT-4와 같은 AI 도구를 사용하여 Python 문서 생성을 자동화하는 샘플 프로젝트를 탐색합니다.
Docker를 사용하여 애플리케이션을 컨테이너화하고 GitHub 작업으로 배포를 자동화하고 AWS CloudFormation을 통해 배포하는 방법을 배우십시오.
CloudFormation 템플릿을 사용하여 EC2, ECR 및 보안 그룹과 같은 AWS 리소스를 설정하고 관리하는 방법을 이해합니다.
이 기사는 데이터 과학 블로그 톤의 - 의 일부로 출판되었습니다.
목차
-
AWS 클라우드 형식은 무엇입니까? 샘플 Project-Practical 구현 : 실습 프로젝트 예제 -
클라우드 형식 스택을위한 AWS 서비스 생성 및 비밀에 대한 AWS 서비스 생성 관리자 -
결론
자주 묻는 질문
aws 클라우드 형성이란 무엇입니까?
클라우드 컴퓨팅의 세계에서 인프라 관리를 효율적으로 관리하는 것이 중요합니다. 따라서 AWS CloudFormation이 그림으로 들어와 클라우드 리소스를 쉽게 설정하고 관리 할 수 있습니다. 간단한 파일로 서버, 스토리지 및 네트워킹과 같은 모든 것을 정의 할 수 있습니다.
프로젝트에 필요한 서버를 시작하십시오
ECR 스토리지 저장소에서 프로젝트의 컨테이너 이미지를 당기십시오. version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "5000:5000"
volumes:
- .:/app
environment:
- PYTHONDONTWRITEBYTECODE=1
- PYTHONUNBUFFERED=1
command: ["python", "app.py"]#import csv
프로젝트가 실행되는 데 필요한 다른 모든 종속성 및 구성을 설정합니다.
이 자동화 된 설정을 사용하면 프로젝트를 배포하거나 업데이트 할 때마다 동일한 단계를 반복 할 필요가 없습니다. 모두 AWS에 의해 자동으로 수행됩니다.
>
클라우드 형식 템플릿
AWS CloudFormation 템플릿은 AWS에서 인프라를 설정하는 데 필요한 리소스 및 구성을 설명하는 선언적 JSON 또는 YAML 스크립트입니다. 이를 통해 인프라를 코드로 자동화하고 관리하여 환경에서 일관성과 반복성을 보장 할 수 있습니다.
업데이트 된 템플릿을 단계별로 디코딩하겠습니다 :
우리는 단일 ECR 리소스를 정의하고 있습니다.이 자료는 Docker 이미지가 저장되는 저장소입니다.
다음, 우리는 EC2 인스턴스를 만듭니다. ECR 및 AWS 비밀 관리자와의 상호 작용을위한 필수 정책을 첨부 할 것입니다. 또한 네트워크 액세스를 제어하기 위해 보안 그룹을 첨부합니다. 이 설정을 위해서는 다음을 열 것입니다
SSH 액세스를위한 포트 22
HTTP 액세스 용 포트 80
백엔드 애플리케이션 액세스를위한 포트 5000
at2.microinstance가 사용될 것이며, 내부 Theuser 데이터는 인스턴스를 구성하도록 지침을 정의합니다.
Python, Boto3 및 Docker와 같은 필요한 종속성을 설치하십시오
AWS Secrets Manager에 저장된 비밀에 액세스하고 config.py 파일에 저장하십시오.
ECR에 로그인하고 Docker 이미지를 당기고 Docker를 사용하여 실행하십시오.
-
하나의 Docker 컨테이너 만 사용 되므로이 구성은 배포 프로세스를 단순화하면서 백엔드 서비스에 액세스 할 수 있고 올바르게 구성되도록합니다.
AWS 비밀 관리자에게 비밀을 업로드하고 저장합니다
지금까지 config.py 파일에서 Open AI 키와 같은 비밀을 저장했습니다. 그러나이 파일은 github로 푸시 할 수 없습니다. 따라서 AWS Secrets Manager를 사용하여 비밀을 저장 한 다음 CloudFormation 템플릿을 통해 검색합니다.
지금까지 config.py 파일에서 Open AI 키와 같은 비밀을 저장했습니다. 그러나이 파일은 github로 푸시 할 수 없습니다. 따라서 AWS Secrets Manager를 사용하여 비밀을 저장 한 다음 CloudFormation 템플릿을 통해 검색합니다.
-
-
github 동작 생성
GitHub 작업은 변경할 때마다 테스트 코드, 앱 구축 또는 프로젝트 배포와 같은 작업을 자동화하는 데 사용됩니다. 반복적 인 작업을 처리하기 위해 로봇을 설치하는 것과 같습니다!
우리의 주요 의도는 GitHub의 특정 지점으로 밀면 자동으로 AWS에 배포가 시작되어야한다는 것입니다. 이를 위해 우리는 '메인'브랜치를 선택합니다.
github에 비밀을 저장합니다
github에 로그인하고 아래 경로를 따르십시오.
저장소 & gt; 설정 & gt; 비밀과 변수 & gt; 행동
그런 다음 아래 이미지에서와 같이 AWS 계정에서 추출한 AWS의 비밀을 추가해야합니다.
워크 플로 시작
저장 후 .github 폴더와 그 안에 워크 플로우 폴더를 생성합니다. 워크 플로우 폴더 내부에서는 deploy.yaml 파일을 추가합니다.
다음은 흐름에 대한 단순화 된 설명입니다 :
우리는 저장소에서 코드를 가져 와서 Github에 저장된 비밀을 사용하여 AWS 자격 증명을 설정합니다.
<log log> 그런 다음 ECR에 로그인하고 응용 프로그램의 도커 이미지를 빌드/푸시합니다.
<there> 우리는 동일한 이름의 기존 클라우드 형식 스택이 있는지 확인합니다. 그렇다면 삭제하십시오. </there></log>
위 내용은 AWS CloudFormation : 클라우드 배포를 단순화합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!