강의/AWS (10) 썸네일형 리스트형 Lambda 코드 수정하기 (github actions) 웹 콘솔에서 수정하기 Lambda 코드를 수정하고 Deploy를 눌러서 바꿔주는 방법을 배웠었습니다. .github/workflows/main.yaml name: deploy to lambda on: [push] jobs: deploy_source: name: deploy lambda from source runs-on: ubuntu-latest steps: - name: checkout source code uses: actions/checkout@v1 - name: default deploy uses: appleboy/lambda-action@master with: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: $.. API gateway http endpoint를 만들어 주는 것입니다. Lambda는 endpoint가 없었기 때문에 API gateway를 이용하여 endpoint를 지원해주었습니다. API gateway를 조금 더 자세히 알아보기 위해 API gateway를 직접 생성해 Lambda와 연결해보겠습니다. API gateway에 들어가면 이전시간에 Lambda와 연결한 API gateway를 확인할 수 있습니다. 실습을 위해 지우고 다시 시작해보겠습니다. Lambda에서 API gateway를 생성할 때는 두가지 만 존재했는데 API gateway 페이지에서는 4가지의 API gateway가 존재합니다. 그중에서 우리는 REST API를 생성해 보도록 하겠습니다. Public REST API 구축 버튼 클릭! API 이름을 .. Lambda + API gateway aws가 제공하는 serveless service이다. Lambda는 S3처럼 백엔드를 서버리스(Serverless)로 운영할 수 있는 서비스입니다. S3가 별도의 서버, 관리 없이도 프론트 페이지를 운영할 수 있는 것처럼, 백엔드도 인프라를 신경쓰지 않고 운영할 수 있는 서비스입니다. S3와 Lambda의 역할은 비슷하다고 생각하시면 됩니다. flask node spring 프레임 워크 컨트롤러나 flask url을 분배하는 방식을 적용하여 api를 안쪽으로 만들어 놓고 프레임워크로 감싸져 있는 소스뭉텅이를 ec2나 elb에 같은데에 업로드시키고 그 프레임워크가 로딩이 되고 그 API를 URL를 따라 API를 찌르면 API가 동작하는 방식이 되는 람다는 메서드 단위로 배포를 합니다. 대시보드에서 람다에.. elb (load balancing 설정) load balancing https://docs.aws.amazon.com/ec2/?id=docs_gateway https://docs.aws.amazon.com/ec2/?id=docs_gateway docs.aws.amazon.com ELB는 여러대의 EC2를 묶어서 사용하기 위한 서비스에요. 클라우드를 사용하지 않을때도 LB(로드발란서)를 구입해서 사용했어요. aws에서는 elb라는 제품의 형태로 제공하고 있습니다. 클라이언트들이 몰릴때 적절하게 서버로 분배할 수 있도록 도와줍니다. Target group 생성 elb를 생성하기 전에 먼저 target group을 만들어 놓도록 합시다. target group은 elb와 ec2 연결을 위한 작업을 진행하는 것이며 ec2가 연결이 가능한 상태인지 확인.. ec2 생성 및 접속 ec2 이름 설정 및 ubuntu 18.04 선택 새로운 key pair 생성 인스턴스 생성 완료 key pair 권한 재설정 chmod 400 aws-go.pem aws 접속 ssh -i 키페어 ubuntu@퍼브릭 IPv4 주소 권한 오류로 접속이 안되는 경우 // 암호화 된 key 생성 ssh-keygen -t rsa // filezila를 이용하여 aws에 id_rsa.pub 파일을 홈 폴더에 옮겨 놓기 쉽게 접속하는 방법 .ssh 폴더 안에 아래 내용을 담은 config 파일을 생성 Host springboot-webservice HostName IP주소 User ubuntu IdentityFile pem파일위치 ssh springboot-webservice로 접속가능 인바운드 규칙 편집 ja.. github action, Cloud front 연동 (CI/CD) Github Action GitHub Action은 간단하게는 서버에 소스를 배포하는 서비스 입니다. GitHub 소스 리파지토리에 .github/workflows/main.yml 파일만 추가하시면 되요 https://docs.github.com/en/actions IAM 권한 설정 index.html -> s3 cloudfront로 배포 하려면 github action에서 s3에 배포할 수 있는 권한이 필요합니다. IAM의 access id, secret key를 이용하여 s3와 github action 연동해주려 합니다. cloudfront에 캐싱돼 있는 것을 새롭게 캐싱 시켜줘야 함. 기존에 있는 것을 invalidation 시켜야 합니다. 이것도 github action에서 해야함. github .. S3 정적 호스팅 AWS S3 에 정적 파일을 업로드를 한 후, 이것으로 웹사이트를 구동하는 방법에 대해서 알아보도록 하겠습니다. 버킷의 속성 변경 1. s3 -> 버킷 -> 속성 정적 웹 사이트 호스팅 편집 비활성화 -> 활성화로 변경 인덱스 문서 index.html 오류 문서 index.html 설정 index.html을 s3에 올리고, 모든 사람 읽기 권한 설정해주기 엔드포인트에 접근 - 버킷 -> 속성 -> 정적 웹 사이트 호스팅 카테고리에서 엔드포인트가 나타나는 것을 확인할 수 있습니다. - 이 URL을 이용하여 우리가 만든 index.html에 접근할 수 있습니다. flask를 사용하여 s3 업로드 웹페이지 구현 cli s3 연동 sdk 를 다운로드 받아서 설정 파이썬에서 aws와 연동하려면 boto3를 받아야함 import boto3 from flask import Flask, render_template, request, jsonify app = Flask(__name__) @app.route('/') def main(): return render_template('index.html') @app.route('/fileupload', methods=['POST']) def file_upload(): file = request.files['file'] s3 = boto3.client('s3') s3.put_object( ACL="public-read", Bucket="{버킷이름}", Body=file, Key=.. 이전 1 2 다음