Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

고양이발일기

AWS SAM을 이용한 Hello World 애플리케이션 배포하기 본문

개발 일기

AWS SAM을 이용한 Hello World 애플리케이션 배포하기

sowish 2021. 7. 22. 11:02
반응형

 

배고파

육사시미

육사시미가 먹고싶다 ..

고소한 참기름장에 두껍게 썰린 육사시미 하나 집어서 촉촉하게 찍은 다음에 한입에 넣고 우물우물 질겅질겅하면서 최대한 고소함을 느끼고 싶다 엉엉 식감이 너무 그립다 아 배고파 ...

회사 사람들은 지금 내가 열심히 일하고 있는 줄 알겠지 .. 

암튼 오늘은 간단한 애플리케이션 다운로드, 빌드, 배포를 해보자

자 가보자 가보자

 

AWS SAM 기본 설정은 ===> 2021.07.22 - [개발 일기] - [2021.07.21-22] AWS 서버리스 애플리케이션 모델 (AWS SAM)

자습서: Hello World 애플리케이션 배포

[참고] - https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html

 

Tutorial: Deploying a Hello World application - AWS Serverless Application Model

Tutorial: Deploying a Hello World application In this guide, you download, build, and deploy a sample Hello World application using AWS SAM. You then test the application in the AWS Cloud, and optionally test it locally on your development host. This appli

docs.aws.amazon.com

 

최종 목표 : Amazon API Gateway 엔드포인트와 AWS Lambda 함수로 구성되며 API Gateway 엔드포인트에 GET 요청을 보내면 Lambda 함수가 호출됩니다. 이 함수가 hello world메시지를 반환하게 하는 것이 목표 ლ( ╹ ◡ ╹ ლ)

 

다이어그램으로 설명하자면 이런 구조당

전제 조건

  1. AWS 계정 생성.
  2. AWS Identity and Access Management(IAM) 권한 구성.
  3. 도커 설치. 참고: Docker는 애플리케이션을 로컬에서 테스트하기 위한 전제 조건입니다.
  4. 홈브류 설치. 참고: Homebrew는 Linux 및 macOS 전용 필수 구성 요소입니다.
  5. AWS SAM 명령줄 인터페이스(CLI) 설치. 참고: 버전이 1.13.0 이상인지 확인하십시오. sam --version명령 을 실행하여 버전을 확인하십시오 .
  6. Image패키지 유형 을 선택하는 경우 배포를 수행할 Amazon Elastic Container Registry(Amazon ECR) 리포지토리 URI가 있습니다.

라고한다. 

지금 내 상태는 ...

 

  1. AWS 계정 생성. ⭕️
  2. AWS Identity and Access Management(IAM) 권한 구성. ⭕️
  3. 도커 설치. 참고: Docker는 애플리케이션을 로컬에서 테스트하기 위한 전제 조건입니다. ⭕️
  4. 홈브류 설치. 참고: Homebrew는 Linux 및 macOS 전용 필수 구성 요소입니다. ⭕️
  5. AWS SAM 명령줄 인터페이스(CLI) 설치. 참고: 버전이 1.13.0 이상인지 확인하십시오. sam --version명령 을 실행하여 버전을 확인하십시오 . ⭕️
  6. Image패키지 유형 을 선택하는 경우 배포를 수행할 Amazon Elastic Container Registry(Amazon ECR) 리포지토리 URI가 있습니다. ❌

이므로 ... 어차피 최종 프로젝트는 ECR을 안쓰기도 하니 image 부분은 일단 빼놓고 진행을 해보자

나중에 안되면 여기로 다시 돌아오기 ㅋㅋ 막이래~

 

1단계: 샘플 AWS SAM 애플리케이션 다운로드

AWS SAM 애플리케이션을 생성하기 위해 아래의 명령어를 사용한다.

sam init

처음이므로 쉬운 길인 둘 다 1번을 선택해보자

나머지 질문들은 각자 상황에 맞게 해주면 되는데

우선 나는 자습서에 나온대로 진행하였다. 

나중에는 노드로 해서 진행해봐야게따.
잘 만들어 진 것을 확인할 수 있다

 

폴더 구조이다.

 

 sam-app/
   ├── README.md
   ├── events/
   │ └── event.json
   ├── hello_world/
   │ ├── __init__.py
   │ ├── app.py # AWS Lambda 핸들러 로직을 포함합니다.
   │ └── requirements.txt # sam 빌드에 사용되는 응용 프로그램에 필요한 모든 Python 종속성을 포함합니다.
   ├── template.yaml # 애플리케이션의 AWS 리소스를 정의하는 AWS SAM 템플릿을 포함합니다.
   └── tests/
       └── unit/
           ├── __init__.py
           └── test_handler.py

 

세 가지 특히 중요한 파일이 있다.

  • template.yaml: 애플리케이션의 AWS 리소스를 정의하는 AWS SAM 템플릿을 포함합니다.
  • hello_world/app.py: 실제 Lambda 핸들러 로직을 포함합니다.
  • hello_world/requirements.txt: 애플리케이션에 필요한 모든 Python 종속성을 포함하며 sam build.-> 우리가 알고있는 requirements.txt 파일인 것 같당

 

2단계: 애플리케이션 빌드

template.yaml 파일이 있는 곳에서 빌드 명령어를 실행해줍니다. 보통 sam-app 디렉토리 바로 하위에 존재합니당

sam build

빌드 성공쓰

3단계: AWS 클라우드에 애플리케이션 배포

 

sam deploy --guided

자습서에서 기본 옵션을 수락하려면 그냥 엔터만 눌러서 진행하라 했는데

갑분에;

뭔가 했드니 마지막 질문이 업데이트 되었을때 인증을 정의하지 않아도 괜찮은지 확인하는 것인데 아니요라고 하면 뜨는 에러다 크쿠...

느슨해진 터미널에 긴장감을 주네

아무튼 나머지는 기본설정으로 쭉 가고 저저 질문만 yes로 답을 해주자

 

뭔가 많이 실행되더니 성공했다고 뜬다 두둥 ^-^

 

AWS SAM이 하는 일:

이 명령은 애플리케이션을 AWS 클라우드에 배포합니다. sam build명령으로 빌드한 배포 아티팩트를 가져와 AWS SAM CLI가 생성하는 Amazon Simple Storage Service(Amazon S3) 버킷에 패키징 및 업로드하고 AWS CloudFormation을 사용하여 애플리케이션을 배포합니다. sam deploy명령 출력에서 AWS CloudFormation 스택에 대한 변경 사항을 볼 수 있습니다.

 

라고 한다. 

 

아무튼 배포는 완료했는데 확인을 해보려면 http 엔드포인트를 생성해봐야한다. 음...

이것은 어떻게 해야하는 일일까

 

옷 ㅋ AWS Lambda console에 들어가보니 생성된 것을 확인해 볼 수 있었다.

 

 

람다 함수 > 구성 > 트리거 > API Gateway를 보면 API endpoint가 나온다.

해당 좌표를 클릭해보면

두둥탁 ㅋ 잘 배포된 모습

 

curl 명령어로 get 함수를 불러오는 작업을 해봤다

역시 ㅋ 잘나온다 ㅋ

키야 오늘좀 뿌듯하네 

app.py 수정해서 리스폰스값을 좀 바꿔봄 배고프다

 

근데 생각해보니 웹페이지 배포에대한 부분을 진행해달라 했ㄴㄴ데 람다 배포 먼저 해벌였네?

암튼 그거슨 그묘일-주말에 해봐야겟스요/..

11시다 오늘 업무도 홧팅 땃쉬ㅋ~

반응형
Comments