- AWS SAR
- AWS 상에서 'Serverless Application' 을 게시하고 배포하는 서비스.
- 지원되는 AWS 리소스
- AWS SAM 및 AWS CloudFormation 을 구성하는 다양한 리소스목록을 지원함.
- 특정 Serverless Application을 사용하려면, 당연히~
- 해당 App에 부여된 'IAM역할' 및 특정 '리소스정책'을 승락해야 됨.
- 'IAM역할' : AWS::IAM::Group , AWS::IAM::InstanceProfile , AWS::IAM::Policy , AWS::IAM::Role
- '리소스정책' : AWS::Lambda::LayerVersionPermission , AWS::Lambda::Permission , AWS::Events::EventBusPolicy , AWS::IAM:Policy , AWS::ApplicationAutoScaling::ScalingPolicy , AWS::S3::BucketPolicy , AWS::SQS::QueuePolicy , AWS::SNS:TopicPolicy
- 해당 App에 AWS::Serverless::Application 리소스가 포함되있으면, "중첩 애플리케이션 포함" 승락을 해야됨.
- 정책 템플릿 사용가능.
- SAR 콘솔 게시
- 준비물
- 리소스를 정의한 'AWS SAM 템플릿'
- package 커맨드로 생성한 'Serverless Application 패키지'
- readme.txt 파일 (필요한 설명 작성)
- license.txt 파일 (공개적으로 할 경우에만...)
- 소스코드 URL
- S3 정책셋팅 (sar에서 해당버킷의 읽기권한이 있어야~ 해당패키지 접근가능)
- 입력정보
- 애플리케이션 이름
- 애플리케이션 설명
- 작성자의 이름
- 애플리케이션의 검색을 위한 라벨
- 등등등 ...
- 준비물
- SAR 콘솔 공유
- 비공개
- 비공개 공유
- 공개 공유
- SAR 콘솔 삭제
- ...
- SAR 콘솔 새버젼 게시
- ...
- Lambda 계층 공유
- Lambda 계층으로써 기능을 구현하고, 공유 할 수 있음.
- 'AWS SAM 템플릿' 에 Lambda Layer를 리소스로 포함하는 'Serverless Application' 정의.
- 해당 'Serverless Application'을 Repository에 게시.
- 고객 AWS 계정이 배포를 하면, 해당 Lambda Layer의 복사본 및 ARN 생성.
- 고객 AWS 계정의 애플리케이션에서, 해당 ARN을 참조하여 활용.
- SAR 콘솔 배포
- Repository에 게시된 필요한 'Serverless Application'을 검색하여 찾고, 권한을 점검한 뒤~ 배포를 하는 과정.
- Serverless Application Capability
- CAPABILITY_IAM, CAPABILITY_NAMED_IAM : 특정 IAM역할 권한.
- CAPABILITY_RESOURCE_POLICY : 특정 리소스정책 권한.
- CAPABILITY_AUTO_EXPAND : 중첩 애플리케이션 ...
- 기본적으로, 특정 승인이 필요한 애플리케이션은... 검색노출이 안됨.
- `Show apps that create custom IAM roles or resource policies` 체크해서 찾아야 함.
- ...
- SAR 콘솔 스택삭제
- ...
- SAR 콘솔 업데이트
- ...
- 보안
- ...
- Serverless Application Repogitory 예제
- App 패키징
- ex) sam package --template-file template.yaml --output-template-file packaged.yaml --s3-bucket 버킷
- ex) template.yaml 메타데이터 작성
-
Metadata: AWS::ServerlessRepo::Application: Name: 앱이름 Description: 설명 Author: 작성자 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['라벨'] SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/소스코드
-
- 해당 app의 패키지.zip 및 LICENSE.txt 및 README.md 가 -> 지정한 S3으로 업로드 됨.
- "AWS Serverless Application Repository" 게시에 필요한, packaged.yaml 이 생성됨. (CodeUri 등등 추가)
- App 게시
- ex) sam publish --template packaged.yaml --region ap-northeast-2 (최초 0.0.1 버젼으로 SAR에 게시됨)
- 기본적으로 비공개 상태이고, 이는 추후 타계정으로 공개 가능. (전체공게 or 특계정 권한부여)
- 게시 후, 당연히~ AWS Serverless Application Repository 에서 확인 가능.
- App 패키징
-끝-
'AWS' 카테고리의 다른 글
Amazon EKS (0) | 2020.07.16 |
---|---|
Amazon SageMaker Studio (0) | 2020.07.16 |
AWS Serverless Application Model (0) | 2020.06.28 |
Amazon Simple Queue Service (0) | 2020.05.16 |
Amazon CloudWatch (0) | 2020.04.25 |