• 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_IAMCAPABILITY_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 에서 확인 가능.

-끝-

'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

+ Recent posts