IaaS/퍼블릭클라우드 110

(AWS) CloudFormation Output, Condition 에 대해

Output 이란? Output section은 다른 Stack에서 사용할 수 있도록 값을 공유하는 것이다. AWS CLI나 AWS Console 등을 통해서도 Output을 볼 수 있다. 네트워크를 CF로 정의했을 경우 VPC ID나 Subnet ID를 공유하는데 유용하다 Output이 다른 Stack에서 참조되고 있으면 지울 수 없다. 사용법 Export Outpus: StackSSHSecurityGroup: Description: The SSH Security Group for our Company Value: !Ref MyCompanyWideSSHSecurityGroup Export: Name: SSHSecurityGroup Import Resources: MySecureInstance: Type..

(AWS) CloudFormation Resource, Parameter, Mapping에 대해

Parameter 사용하기 Parameter는 AWS CloudFormation template에 입력값을 제공하는 방법이다. 당신이 여러 사이트에서 해당 템플릿을 재사용하고 싶을때 사용한다. Parameters: SecurityGroupDescription: Description: Security Group Description Type: String Parameter는 아래와 같은 세팅으로 컨트롤 된다. Type Type String Number CommaDelimitedList List AWS Parameter (to help catch invalid values - match against existing values in the AWS Account) Description Constraints ..

(AWS) CloudFormation 이란?

IaC(Infrastructure as Code)의 장점 사람이 수동으로 자원을 생성하지 않아서 지적재산을 코드로 남길 수 있다. 자원 생성 또한 Git과 같은 레포지토리에 버전관리가 가능하다. Code를 리뷰하면서 정합성을 체크할 수 있고, 변경사항이 있어서 코드수준에서 조치가 가능하다. 비용이 얼마정도 나올지 명시적으로 계산이 가능하다. 자동 삭제 룰을 생성하게 되면 필요없을때 자동으로 삭제하여 Cost를 줄일 수 있다. 쉽게 만들고 부실수 있어 생산성이 향상된다. 내 템플릿에 대해 자동으로 Diagram을 그려준다. 서술적 코딩이라 코딩이 쉽다. 효과적으로 코딩하려면 Stack을 나누어 VPC, Network, App 등 Layer를 나누어 작성한다. CloudFormation 은 어떻게 작동하나?..

(AWS) CodePipeline, CodeCommit, CodeBuild, CodeDeploy로 GitFlow 구현

AWS CI CD리소스를 통하여 어떻게 브랜치 운영의 끝판왕인 GitFlow를 구현할 지 설명하는 포스팅이다. 원문링크 : https://aws.amazon.com/blogs/devops/implementing-gitflow-using-aws-codepipeline-aws-codecommit-aws-codebuild-and-aws-codedeploy/ Implementing GitFlow Using AWS CodePipeline, AWS CodeCommit, AWS CodeBuild, and AWS CodeDeploy | Amazon Web Services This post provides a high-level framework for how to implement GitFlow using AWS Co..

(AWS) CloudFormation을 통한 파이프라인 템플릿 만들기

CloudFormation을 통한 파이프라인 템플릿 만들기 아래 Github Repository에는 Source Stage인 CodeCommit부터 Test를 위한 CodeBuild와 UAT 프로세스와 Manual Approval Stage가 포함되어 있다. https://github.com/aws-samples/codepipeline-nested-cfn GitHub - aws-samples/codepipeline-nested-cfn: CloudFormation templates, CodeBuild build specification & Python scripts to perfor CloudFormation templates, CodeBuild build specification & Python scri..

(AWS) CodePipeline 이란?

CodePipeline이란 지속적 배포(Continuous delivery) 툴 시각적으로 Work Flow를 정의하도록 하는 툴 가능한 Source 는 Github, CodeCommit, AmazonS3 가 가능하다. Build 는 CodeBuild, Jenkins, etc... 를 호출 할 수 있다. 3rd party 툴을 사용할수 도 있다. Deploy는 AWS CodeDeploy, Beanstalk, CloudFormation, ECS 등.. 각각의 Stage는 순서별 혹은 병행적 Action을 정의할 수 있다. 수동 승인프로세스도 각 스테이지에 정의할 수 있다. CodePipeline을 정의하기 위한 CICD 기술스텍은 다음과 같다. ※ CodePipeline의 각 Stage는 Artifacts..

(AWS) Code Deploy 대상의 다양한 타입들

1 On-Premise에 적용 우선 지원되는 OS는 다음과 같다. Amazon Linux 2018.03.x, 2017.03.x, 2016.09.x, 2016.03.x, 2014.09.x Amazon Linux 2(ARM, x86) Ubuntu Server 20.10, 20.04 LTS, 18.04 LTS, 16.04 LTS 및 14.04 LTS Microsoft Windows Server 2019, 2016, 2012 R2 및 2008 R2 Red Hat Enterprise Linux(RHEL) 7.x 방법은 대체로 EC2에 Manual하게 수행하는 과정과 비슷하다. 1) IAM User는 S3 Read-Only권한만 있는 사용자를 생성한다. 2) AWS사용자 프로그래밍 방식 엑세스 키를 등록할 파일을 ..

(AWS) CodeDeploy를 위한 appspec.yml

Appspec.yml을 통하여 배포 파이프라인이 EC2에서 실행된다. 각 단계에서 script를 정의하고 있으며 레포지토리의 소스 /scripts/ 이하 경로에 sh형식의 script를 위치시켜 CodeDeploy가 각 Stage에 맞추어 실행할 수 있게끔 한다. version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root..

(AWS) CodeDeploy 란?

기본적인 CodeDeploy 프로세스는 다음과 같다. 코드 디플로이 실행을 위해서는 각 EC2(또는 On-Premise) 머신에서 CodeDeploy Agent가 실행중이어야 한다. Agent는 AWS CodeDeploy에 무엇을 할지 지속적으로 Polling을 수행한다. CodeDeploy는 EC2로 appspec.yml파일을 보낸다. Github이나 S3에서 어플리케이션이 EC2로 Pull된다. EC2는 appspec.yml의 배포 지시를 따라 수행한다. CodeDeploy Agent는 해당 배포에 대한 성공/실패 결과를 보고한다. CodeDeploy 특징은 다음과 같다. EC2 인스턴스들이 DEV / TEST / PROD 으로 그룹핑되어 관리가 가능하다. 어떤 배포 방법론도 정의할 수 있다. Cod..

(AWS) CodeBuild 란?

AWS CodeBuild는 • Fully managed build service 완전관리형 빌드 서비스이며 • Alternative to other build tools such as Jenkins Jenkins와 같은 빌드툴의 대체재 이며 • Continuous scaling (no servers to manage or provision – no build queue) 프로비저닝이 필요없이 지속적으로 스케일링 관릭 되며 • Pay for usage: the time it takes to complete the builds 빌드 수행 시간 만큼 과금하며 • Secure: Integration with KMS for encryption of build artifacts, IAM for build permi..