>기술 주변기기 >일체 포함 >AWS CloudFormation : 클라우드 배포를 단순화합니다

AWS CloudFormation : 클라우드 배포를 단순화합니다

Christopher Nolan
Christopher Nolan원래의
2025-03-10 11:32:09214검색

이 기사에서는 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이 그림으로 들어와 클라우드 리소스를 쉽게 설정하고 관리 할 수 ​​있습니다. 간단한 파일로 서버, 스토리지 및 네트워킹과 같은 모든 것을 정의 할 수 있습니다.

AWS CloudFormation은 YAML 또는 JSON으로 작성된 템플릿을 사용하여 클라우드 리소스를 정의하고 관리하는 데 도움이되는 서비스입니다. 그것을 당신의 인프라에 대한 청사진을 만드는 것으로 생각하십시오. 이 청사진을 넘겨 주면 CloudFormation은 설명한대로 모든 것을 단계별로 설정하는 것을 처리합니다. Code (IAC)로서의 인프라는 클라우드를 몇 줄의 코드로 만 빌드, 재건 및 개선 할 수있는 것으로 클라우드를 전환하는 것과 같습니다. 더 이상 수동 클릭을 클릭하지 않고 더 이상 추측 할 수 없습니다. 시간을 절약하고 오류를 줄이는 일관되고 신뢰할 수있는 배포. 샘플 프로젝트 실용적 구현 : 실습 프로젝트 예 AI를 사용하여 코드 문서를 간소화 : 문서 생성 프로젝트 :

클라우드 형성을 시작하려면 AWS에 배치하려면 하나의 샘플 프로젝트가 필요합니다. 나는 이미 Lang-chain과 ai gpt-4를 사용하여 프로젝트를 만들었습니다. 그 프로젝트에 대해 논의한 다음 클라우드 형성을 사용하여 AWS에 해당 프로젝트가 어떻게 배치되는지 살펴 보겠습니다. . Github 코드 링크 : 소프트웨어 개발의 세계에서, 문서는 코드베이스를 이해할 수 있고 유지 관리 할 수 ​​있도록하는 데 중요한 역할을합니다. 그러나 자세한 문서를 작성하는 것은 종종 시간이 많이 걸리고 지루한 작업입니다. 그러나 우리는 기술자이며 모든 것에 자동화를 원합니다. 따라서 CloudFormation을 사용하여 AWS에 프로젝트를 배포하기 위해 AI (Lang-chain 및 Open AI GPT-4)를 사용하여 자동화 프로젝트를 개발하여 문서 생성 프로젝트를 작성했습니다. AI를 사용하여 Python 코드의 문서 프로세스를 자동화하는 혁신적인 솔루션입니다. 다음은이 도구를 구축 한 방법과 그것이 가장 큰 영향을 미치는 영향에 대한 고장입니다. 이 프로젝트를 만들려면 몇 단계를 따릅니다.

새 프로젝트를 시작하기 전에 필요한 모든 패키지를 설치하려면 파이썬 환경을 만들어야합니다. 이것은 필요한 패키지를 유지하는 데 도움이 될 것입니다. 나는 입력 파일을 구문 분석하는 함수를 썼는데,이 파일은 일반적으로 Python 파일을 입력으로 가져 와서 모든 함수의 이름을 인쇄합니다. . 코드에서 문서를 생성합니다

기능 세부 사항이 추출되면 다음 단계는 OpenAI의 GPT-4 모델에 공급하여 자세한 문서를 생성하는 것입니다. Lang-chain을 사용하여 GPT-4가 수행하려는 작업을 설명하는 프롬프트를 구성합니다.

이 프롬프트의 도움으로 Doc Generator 함수는 구문 분석 된 세부 사항을 취하고 각 함수에 대해 완전히 읽을 수있는 완전한 설명을 생성합니다. 플라스크 API 통합 도구를 사용자 친화적으로 만들기 위해 사용자가 파이썬 파일을 업로드 할 수있는 플라스크 API를 구축했습니다. API는 파일을 구문 분석하고 GPT-4를 사용하여 문서를 생성하고 JSON 형식으로 반환합니다. 우리는 우편둥이를 사용 하여이 플라스크 API를 테스트하여 출력을 확인할 수 있습니다.

응용 프로그램을 도커 AWS에 배포하고 응용 프로그램을 사용하려면 Docker를 사용하여 응용 프로그램을 컨테이너화 한 다음 GitHub 작업을 사용하여 배포 프로세스를 자동화해야합니다. AWS의 자동화에 AWS CloudFormation을 사용할 것입니다. 서비스 측면에서는 탄성 컨테이너 레지스트리를 사용하여 컨테이너를 저장하고 응용 프로그램을 배포 할 예정입니다. 이 단계별로 보자.

Docker Compose의 생성 우리는 docker 파일을 생성합니다. Docker 파일은 각각의 컨테이너를 회전시킬 책임이 있습니다

prompt_template = PromptTemplate(
        input_variables=["function_name", "arguments", "docstring"],
        template=(
            "Generate detailed documentation for the following Python function:\n\n"
            "Function Name: {function_name}\n"
            "Arguments: {arguments}\n"
            "Docstring: {docstring}\n\n"
            "Provide a clear description of what the function does, its parameters, and the return value."
        )
    )#import csv
docker compose Docker 파일이 생성되면 컨테이너를 회전시키는 Docker Compose 파일을 만듭니다.

명령을 실행하여 이것을 테스트 할 수 있습니다

명령이 성공적으로 실행 된 후 코드는 이전과 같이 정확히 작동합니다. 클라우드 형성 스택을위한 AWS 서비스 생성

나는 ECR 저장소를 만듭니다. 그 외에도 우리는 나중에 다른 모든 필요한 서비스를 만들기 위해 Github 조치를 취할 것입니다.
# Use the official Python 3.11-slim image as the base image
FROM python:3.11-slim

# Set environment variables to prevent Python from writing .pyc files and buffering output
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set the working directory inside the container
WORKDIR /app

# Install system dependencies required for Python packages and clean up apt cache afterwards
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    libffi-dev \
    libpq-dev \
    python3-dev \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# Copy the requirements file to the working directory
COPY requirements.txt /app/

# Upgrade pip and install Python dependencies without cache
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

# Copy the entire application code to the working directory
COPY . /app/

# Expose port 5000 for the application
EXPOSE 5000

# Run the application using Python
CMD ["python", "app.py"]#import csv
리포지토리, 내가 만든 네임 스페이스 Cloud_formation Repo 이름 Asdemo가 있습니다. 그런 다음 필수 인스턴스를 회전시키는 데 도움이되는 YAML 파일 인 theCloudformationTemplate를 진행하여 ECR 및 기타 리소스에서 이미지를 가져옵니다. 서버를 수동으로 설정하고 모든 것을 연결하는 대신 AWS CloudFormation은 스크립트를 사용하여 클라우드 리소스 (서버 또는 데이터베이스와 같은)를 자동으로 설정하고 관리하는 데 사용됩니다. 수동으로 클라우드 물건을 구축하고 구성 할 수있는 청사진을 제공하는 것과 같습니다!

Cloudformation을 AWS가 따라야 할 간단한 지침 매뉴얼을 작성하는 것으로 생각하십시오. ‘템플릿’이라고 불리는이 설명서는 aws에게 다음을 알려줍니다

프로젝트에 필요한 서버를 시작하십시오 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 비밀 관리자와의 상호 작용을위한 필수 정책을 첨부 할 것입니다. 또한 네트워크 액세스를 제어하기 위해 보안 그룹을 첨부합니다. 이 설정을 위해서는 다음을 열 것입니다 AWS CloudFormation : 클라우드 배포를 단순화합니다 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>

마지막으로, 우리는 CloudFormation 템플릿을 사용하여 리소스를 시작하고 모든 것을 설정합니다.

AWS CloudFormation : 클라우드 배포를 단순화합니다 테스트 모든 것이 배포되면 인스턴스의 IP 주소를 기록한 다음 Postman을 사용하여 모든 것이 잘 작동하는지 확인하십시오.

.

AWS CloudFormation : 클라우드 배포를 단순화합니다

결론 이 기사에서는 AWS CloudFormation을 사용하여 클라우드 인프라 관리를 단순화하는 방법을 살펴 보았습니다. ECR 저장소를 작성하고 EC2 인스턴스에 Dockerized 응용 프로그램을 배포하고 CI/CD에 GitHub 작업을 사용하여 전체 프로세스를 자동화하는 방법을 배웠습니다. 이 접근 방식은 시간을 절약 할뿐만 아니라 배포의 일관성과 신뢰성을 보장합니다. 키 테이크 아웃

AWS CloudFormation은 인프라로 코드로 클라우드 리소스 관리를 단순화합니다. AWS 관리 인프라에서 Docker Containers를 간소화합니다 Github Actions는 원활한 통합을위한 빌드 및 배포 파이프 라인을 자동화합니다. Langchain 및 GPT-4 프로젝트에서 Python Documentation Automation을 향상시킵니다 IAC, Docker 및 CI/CD 결합은 확장 가능하고 효율적이며 현대적인 워크 플로를 만듭니다. 자주 묻는 질문

q1. AWS CloudFormation이란 무엇입니까?

a. AWS CloudFormation은 인프라를 코드 (IAC)로 사용하여 AWS 리소스를 모델링하고 프로비저닝 할 수있는 서비스입니다. Docker는 AWS CloudFormation과 어떻게 통합됩니까? Docker는 응용 프로그램을 컨테이너로 포장하여 CloudFormation에서 관리하는 AWS 리소스에 배치 할 수 있습니다. 이 워크 플로에서 Github Actions는 어떤 역할을합니까?

위 내용은 AWS CloudFormation : 클라우드 배포를 단순화합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.