본문 바로가기

개발/인프라6

Azure Pipeline node.js 람다 배포 템플릿 만들기 구축하려는 Pipeline 과정은 다음과 같다. 1. Azure Repo의 특정 branch에 변경사항이 반영되면 Pipeline이 트리거된다. 2. ubuntu vm환경에서 작동하도록 한다. 3. Node와 Npm을 설치한다. (npm install을 위해) 4. 모듈 설치를 위해 npm install 한다. 5. 배포에 필요없는 파일들을 삭제한다. (azure-pipelines.yml 등) 6. 배포 패키지를 만들기 위해 압축한다. 7. S3에 업로드한다. 8. S3에 업로드된 파일을 사용해 람다에 배포한다. 리포지토리의 구조는 아래와 같다. test-repo ㄴindex.js ㄴazure-pipelines.yml ㄴpackage.json ㄴ.gitignore 아직 파이프라인을 구축한 적이 없다면 a.. 2020. 9. 11.
[Azure to AWS] Azure Pipeline으로 AWS Lambda 배포하기 참고 : 기존 Azure function을 옮기는 경우, 일단 새로 생성하고 코드를 옮기는게 낫습니다. 프로젝트 구조가 아예 달라서 새로 만드는걸 추천합니다.. 1. 람다 생성 새로운 람다를 생성합니다. 2. IAM User 생성 또는 선택 AWSLamdbdaFullAccess 권한을 가진 IAM User를 생성하거나, Access key ID & Secret을 준비합니다. 프로그래밍 방식 액세스 타입이어야 합니다. 3. Azure Repo 생성 리포지토리를 생성하고 파일을 추가합니다. 처음엔 아래와 같은 구조로 생성하면 됩니다. my-lambda ├── index.js └── .env // index.js exports.handler = (event, context, callback) => { // T.. 2020. 6. 19.
[Azure to EKS] Azure App Service -> k8s 이전시 환경변수 변환 스크립트 애저에서 쿠버네티스로 서비스를 이전할 때, 수많은 환경변수를 일일히 변환하는 것이 너무나 번거로워 스크립트를 만들었다. /** * 1. azure portal > 앱서비스 구성 > 고급 편집 > 복사 * 2-1. 환경변수로 넣을 항목은 envs, 시크릿에 넣을 항목은 secrets에 붙여넣기 * 2-2. kubSecretName, namespace 변경 * 3. node secret_generator.js 로 실행 */ const kubSecretName = '쿠버네티스 시크릿 이름'; const namespace = '쿠버네티스 네임스페이스 이름'; const envs = [ { name: 'PORT', value: '3000', slotSetting: false, }, ]; const secrets .. 2020. 6. 19.
[EKS] 쿠버네티스에 AWS Credential 추가하기 서비스에서 AWS SQS에 메시지를 보내거나 하는 등 aws-sdk를 사용하기 위해 IAM User 인증이 필요한 경우 서비스에서 꼭 필요로 하는 권한만을 가진 IAM user를 만든다. 필요하다면 그룹도 함께 만들어준다. 생성된 유저의 액세스 키 ID와 시크릿 키를 잘 저장해둔다. 쿠버네티스 대시보드(kubectl proxy)로 가서, 서비스가 위치한 네임스페이스를 선택하고, 좌측 메뉴 하단의 Secrets 메뉴로 가서 우상단의 +를 눌러 Secret을 추가한다. 아래와 같은 형식으로 추가하면 된다. 단 data에 들어가는 key들은 base64로 인코딩하여 넣어야 한다. 변환사이트 링크 : https://www.convertstring.com/ko/EncodeDecode/Base64Encode api.. 2020. 6. 10.
[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기 준비물 master 브랜치만 있는 CodeStar 프로젝트 진행과정 기존에 생성되어있는 CodeStar 프로젝트에 staging 브랜치를 추가한다.(기존 프로젝트는 master 브랜치용으로 사용된다) staging 브랜치용 CodeStar 프로젝트 생성 파이프라인 수정 권한 수정 테스트 프로덕션용으로 사용할 CodeStar 프로젝트는 이미 생성되어 있다고 가정함. 프로덕션용 CodeStar 프로젝트 이름 : moro-test-lambda-API (이 글에서 새로 생성할)스테이징용 CodeStar 프로젝트 이름 : moro-stag-test 아래 staging 브랜치 생성과정의 프로젝트명이 moro-cstest라고 되어있는데 무시하면 된다. moro-test-lambda-API 프로젝트에 브랜치 생성할때 .. 2020. 4. 13.
[AWS] SAM Local, CodeStar를 사용해 Lambda 로컬테스트 및 자동배포환경 만들기 본인 및 협업할 멤버는 이미 AWS 가입이 되어 있고, AWS Management Console Access 권한이 있다고 가정한다. 준비물 AWS 계정 및 콘솔 액세스 권한 Docker Homebrew Sourcetree(선택) aws-sam-cli 우선 aws-sam-cli 설치가 필요한데, npm package는 deprecated 되었으므로 Homebrew로 설치한다. $ brew tap aws/tap $ brew install aws-sam-cli $ sam —v // 설치 확인 혹시.. 버전 확인을 했을때 최신 버전을 설치했는데도 아래와 같은 알림이 뜬다면 moro-test-lambda-API ateam$ sam --version A newer version of the AWS SAM CLI .. 2020. 4. 9.