본문 바로가기

ChatGPT/AWS Serverless

[AWS][SERVERLESS] 개발 환경 구축하기 - 1

반응형

이 글에서는 AWS 서버리스 개발 환경 구축에 대한 ChatGPT 3.5와 4.0의 답에 대해서 비교해보겠습니다.

 

 

먼저 저는 AWS 서버리스 개발하는데, 윈도우 호스트에다가 우분투 VM을 만들고 제 AWS 계정에 접근해서 AWS 서버리스 개발할 수 있는 환경을 포함하는 도커 이미지를 container로 만들고 개발합니다.

 

이 이미지에는 Serverless framework 라이브러리가 포함되어 있습니다. 이는 제가 개발하는 방법이고 ChatGPT는 어떻게 답하는 지 보겠습니다

 

중간 중간 이미지는 제가 대충 무료이미지 검색해서 넣어 보았으며, 더불어 제가 추가한 내용은 기울음꼴 + 굵게 스타일을 이용해서 표시했으며, 스타일 편집이 있을 수 있습니다.


ChatGPT 3.5

 

AWS 서버리스 개발 환경 구축은 다양한 방법으로 가능합니다. 

 

이번에는 AWS Cloud9을 이용한 방법을 중심으로 자세히 알아보겠습니다.

AWS Cloud9은 AWS에서 제공하는 클라우드 기반의 통합 개발 환경입니다. 

 

서버리스 애플리케이션을 개발하고, 디버깅하며, 배포할 수 있는 환경을 제공합니다. 

 

AWS Cloud9은 이미 AWS CLI와 Serverless Framework이 설치되어 있기 때문에, 서버리스 애플리케이션을 더 쉽게 개발할 수 있습니다.

AWS Cloud9으로 서버리스 개발 환경을 구축하는 방법은 다음과 같습니다.


1. AWS Cloud9 생성

 

AWS Management Console에 로그인하고, AWS Cloud9을 생성합니다. 생성 시 Region, 이름, 설명 등을 설정합니다.



2. IAM 권한 설정

 

AWS Cloud9에서 AWS 서비스를 사용하기 위해, IAM 사용자를 생성하고, 해당 사용자에게 필요한 권한을 부여합니다. 

 

IAM 권한 설정은 AWS Management Console의 IAM 콘솔에서 가능합니다.



3. AWS CLI 및 Serverless Framework 설치

 

AWS Cloud9에서는 이미 AWS CLI 및 Serverless Framework이 설치되어 있습니다. 다만, 버전이 최신이 아닐 수 있으므로, 최신 버전으로 업데이트를 진행합니다.

 

sudo pip install --upgrade awscli
sudo npm install -g serverless

4. 서버리스 애플리케이션 개발

 

AWS Cloud9에서는 서버리스 애플리케이션 개발을 위한 통합 개발 환경을 제공합니다.

 

다양한 언어 및 프레임워크를 지원하며, 통합 개발 환경을 제공하여 개발을 더욱 편리하게 할 수 있습니다.

예를 들어, Node.js와 Express를 이용하여 API Gateway와 Lambda 함수를 개발하는 방법은 다음과 같습니다.



1. Express 프레임워크 설치

npm install express

 

2. API Gateway 및 Lambda 함수 생성


Serverless Framework을 이용하여 API Gateway와 Lambda 함수를 생성합니다.

 

serverless create --template aws-nodejs --path my-service
cd my-service

 

반응형

 

3. Express로 API Gateway 및 Lambda 함수 개발


Express로 API Gateway와 Lambda 함수를 개발합니다.

 

const express = require('express');
const app = express();

app.get('/', function(req, res) {
  res.send('Hello World!');
});

module.exports.handler = serverless(app);

 

4. 베포

serverless deploy

 

5. 애플리케이션 테스트

 

AWS Cloud9에서는 로컬 테스트를 위한 통합 테스트 환경을 제공합니다. 

 

이를 통해 개발한 서버리스 애플리케이션을 로컬에서 미리 테스트할 수 있습니다.



예를 들어, 앞서 개발한 Express 기반의 API Gateway와 Lambda 함수를 테스트하는 방법은 다음과 같습니다.



1. 테스트용 이벤트 작성

 

테스트용 이벤트를 작성합니다. 이벤트는 Lambda 함수를 트리거하기 위한 인자를 전달하는 JSON 형태의 객체입니다.

 

{
  "httpMethod": "GET",
  "queryStringParameters": {
    "name": "John"
  }
}

 

2. 로컬에서 함수 실행


AWS CLI를 이용하여 로컬에서 Lambda 함수를 실행합니다.

 

aws lambda invoke --function-name my-function --payload file://event.json output.json

 

3. 로컬에서 API Gateway 실행


AWS CLI를 이용하여 로컬에서 API Gateway를 실행합니다.

 

aws apigateway test-invoke-method --rest-api-id my-api --resource-id my-resource --http-method GET --path-with-query-string "" --body "" --headers "Content-Type=application/json"

 


 

AWS Cloud9을 이용하여 서버리스 개발 환경을 구축하면, 통합 개발 환경에서 서버리스 애플리케이션을 개발하고, 배포하고, 테스트할 수 있습니다. 

 

또한, AWS CLI와 Serverless Framework이 미리 설치되어 있기 때문에, 서버리스 애플리케이션을 더 쉽게 개발할 수 있습니다.


여기까지 GPT-3.5가 답한 내용입니다.

 

실제로 수행해보지 않았지만, 중간 코드들을 보시면 살짝 미흡한 부분이 보이고, 큰 흐름에서 매끄럽지 않은 부분도 보입니다.

 

하지만 전체적으로 짧은 시간에 훌륭한 답을 내고 있습니다.

 

그럼 다음 GPT 4.0은 어떻게 답을 내는지 보도록 하겠습니다.


ChatGPT 4.0

 

서버리스 아키텍처는 개발자가 서버 관리와 운영에 대한 부담을 줄이고, 애플리케이션에만 집중할 수 있는 환경을 제공합니다. 

 

이 글에서는 AWS에서 서버리스 개발 환경을 구축하는 방법을 소개합니다.



필요한 도구 및 서비스

 

  • AWS Lambda: 서버리스 컴퓨팅 서비스로, 함수를 실행하고 관리하는 데 필요한 서버 인프라를 자동으로 관리해줍니다.
  • AWS API Gateway: API를 만들고 게시하여 AWS Lambda와 같은 백엔드 서비스와 연결할 수 있습니다.
  • AWS S3: 정적 웹 사이트 호스팅을 위한 객체 스토리지 서비스입니다.
  • AWS CloudFormation: AWS 리소스를 생성하고 관리하기 위한 템플릿 기반 서비스입니다.
  • AWS IAM: AWS 리소스에 대한 액세스를 관리하고 보안을 유지할 수 있는 서비스입니다.
  • Serverless Framework: 서버리스 애플리케이션을 쉽게 구축하고 배포할 수 있는 오픈 소스 프레임워크입니다.

 

서버리스 개발 환경 구축 방법


1. AWS 계정 생성 및 설정


먼저, AWS 웹사이트에서 계정을 생성하세요: https://aws.amazon.com/

그 다음, AWS Management Console에 로그인하여 필요한 서비스에 액세스하세요.

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

 

aws.amazon.com



2. AWS CLI 설치 및 설정

AWS CLI를 사용하면 커맨드 라인에서 AWS 서비스를 관리할 수 있습니다. 설치 방법은 다음과 같습니다.

 

pip install awscli --upgrade --user

 

설치가 완료되면, aws configure 명령어를 사용하여 AWS CLI를 설정하세요.

 

aws configure

 

3. Serverless Framework 설치


Node.js와 NPM을 설치한 후에 Serverless Framework를 설치합니다.

 

npm install -g serverless

 

4. 서버리스 프로젝트 생성


Serverless Framework를 사용하여 새로운 서버리스 프로젝트를 생성합니다.

 

serverless create --template aws-nodejs --path my-serverless-project
cd my-serverless-project
npm init -y

 

5. 서버리스 애플리케이션 구성


serverless.yml 파일을 열어 AWS Lambda, API Gateway 등과 같은 서비스를 구성하세요.



예시:

service: my-serverless-project
provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-1

functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: get

 

6. 필요한 라이브러리 설치


프로젝트에 필요한 라이브러리를 설치하세요.



예시:

npm install axios

 

7. 함수 작성 및 배포


handler.js와 같은 파일에 AWS Lambda 함수를 작성하세요.



예시:

module.exports.hello = async (event) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Hello, Serverless!',
    }),
  };
};

 

함수를 작성한 후, Serverless Framework를 사용하여 배포하세요.

 

serverless deploy

 

8. 애플리케이션 테스트


배포가 완료되면, API Gateway 엔드포인트를 사용하여 애플리케이션을 테스트하세요.

 

curl https://your-api-gateway-endpoint.execute-api.us-east-1.amazonaws.com/dev/hello

 

9. 리소스 제거


프로젝트가 끝나면, Serverless Framework를 사용하여 배포한 리소스를 제거하세요.

 

serverless remove

 

이제 AWS 서버리스 개발 환경이 구축되었습니다. 

 

이를 통해 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. 

 

관리 및 운영 부담이 줄어들어, 개발에 집중할 수 있는 환경을 만들어 줍니다.


 

여기까지 ChatGPT 4.0으로 답한 것을 조금 편집해봤습니다.

 

비교해보시면 차이가 느껴지시나요? 물론 3.5도 엄청 훌륭하지만 확실히 4.0은 그 클래스가 달라보이네요.

 

쿼타만 해결되면 계속 4.0을 쓰고 싶지만...

 

이상 환경 설정에 대한 글을 마치겠습니다.

반응형