# cloudformation
CloudFormation
Infrastructure on Code as AWS! AWS 인프라를 선언형으로 정의 장점? Infrastructure as Code (관리하기 편하며, git으로 버전 관리 및 review 가능) 비용 관리 (각 리소스별 비용 예측 및 추적 가능하며 추가 비용 없음, 예: dev 환경을 17시 제거 후 08시에 다시 생성하는 규칙 설정) 생산성 향상 (쉽고 편하게 인프라 삭제 및 재생성 가능, 구성도 자동화 기능, 선언형 프로그래밍) 관심사 분리 (VPC Stack / Network Stack/ APP Stack 분리) Template 활용으로 반복 작업 최소화 작동 방식 Template 은 S3에 업로드되어 CloudFormation에서 참조됨. update하기 위해서는 새로운 버전을 업로드 stack을 삭제하면 stack에 의해 CloudFormation을 통해 생성된 모든 자원도 제거됨 Template 배포 방법 Console에서 Cl

몸으로 겪은 IaC 변화기
남들이 똥이라고 해도 된장인지 똥인지 직접 찍어먹어보는 사람으로써 IaC를 수동부터 terraform cloud까지 직접 겪어보며 느낀점입니다. AWS 서비스를 이용한 인프라 구축 데브옵스로 취직 후 1개월 반동안 aws 서비스를 사용해서 블록체인 가상 거래소 인프라를 구축하였다. ec2->codedeploy codebuild -> ecr -> ecs 를 자동화 하였다. vpc부터 여러가지 ec2, ecs, rds 등 여러가지 인스턴스를 사용해보았지만 모두 수동으로 하였다. 수동 -> cloudformation 한 번에 40개의 ec2 인스턴스를 올려야 하는 상황이 왔을 때 aws의 기술인 cloudformation을 사용하기 시작했다. 수동으로 올릴 때와 비교하였을 때 여러가지 인스턴스를 한번에 올릴 수 있어 효율적이었다. cloudformation -> terraform SKYCC HACKERTONE에서 멘토분들과 여러가지 얘기를 나누던 중
[AWS] S3 with Cloudformation
💡 AWS 리소스(EC2 instance, RDS DB instance)의 템플릿을 생성하면 cloudformation이 해당 리소스의 프로비저닝과 구성을 담당하며 AWS 리소스를 개별적으로 생성하고 구성할 필요가 없음 템플릿 및 스택으로 작업 템플릿(json or yaml)을 생성하여 aws 리소스와 해당 속성에 대해 설명하며, 스택 생성할때마다 템플릿에 설명된 리소스를 프로비저닝함 cloudformation → S3 yaml 💡 flow s3 (code.zip) codecommit / github 이벤트 브릿지로 코드 변경 시, 변경분도 s3에 들어가는 것도 cloudformation에 들어가야함 codepipeline 실행 → model → s3 빌드를 보고, yml 봐야함 참고링크 https://docs.aws.amazon.com/ko_kr/AWSCloud
[Infra]IaC란?
IaC(Infrastructure as Code) GUI나 Console같은 것이 아닌 코드를 통해 인프라를 관리하는 것 관리하려는 인프라를 코드로 작성해두어 재사용이 쉽고 관리가 편한다. 대표적인 예시로 AWS CloudFormation, Terraform이 있음 CloudFormation AWS의 인프라 리소스를 템플릿을 이용해 생성하는 서비스 JSON이나 YAML파일로 만든 템플릿을 실행하면 미리 구성된 인프라 리소스를 쉽게 생성 가능 CloudFormation AWS CDK CDK(Cloud Development Kit) CloudFormation Template을 개발자가 친숙한 프로그래밍언어로 만들 수 있게 해주는 서비스 Template을 손으

ChatGpt SlackApp with AWS CloudFormation
이번 글에서는 AWS CloudFormation을 이용해, 별도의 코딩 없이 간단하게 ChatGPT SlackApp을 만드는 방법을 소개하겠습니다.! 1. Overview Slack에서 사용자가 Slash Command를 이용해 AWS APIGATEWAY로 접근 AWS APIGATEWAY에서 메시지와 함께, AWS Lambda를 실행시킴 첫번째 AWS Lambda에서는 두번째 람다를 호출한 뒤, Slash Command에 응답을 함. 두번째 AWS Lambda에서는 OpenAI API 호출

ipv6 + dhcp + cloudformation
오늘 나는 ipv6 + dhcp를 cloudformation stack을 통해 생성하는 작업을 성공하였다. 아래는 내가 stack을 생성할때 참고한 게시물들이다. > vpc: https://docs.aws.amazon.com/codebuild/latest/userguide/cloudformation-vpc-template.html DHCPOptions: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html DHCPOptionsAssociation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html ipv6😂: https://raw.githubusercontent.com/suzryo/aws

AWS CloudFormation - 인프라 프로비저닝과 CreateStack
목표 > - AWS CloudFormation 템플릿을 빌드하여 간단한 인프라 프로비저닝하고 CreateStack 작업 수행 > - Detect drift 명령을 사용하여 AWS CloudFormation 스택에서 드리프트 감지 > - AWS CloudFormation Change Set 생성 및 실행 AWS CloudFormation AWS CloudFormation은 코드형 자동 인프라 프로비저닝 서비스입니다. 줄여서 IaC(Infrastructure as Code)라고도 부르기도 합니다, 인프라를 코드(IaC)로 작성할 경우 다음과 같은 이점이 있습니다. > - 애플리케이션 코드처럼 버전 지정 및 관리가 가능하다. 반복적으로 그리고 안정적으로 생성, 종료 및 재생성 가능 애플리케이션의 최신 버전 테스트 필요성에 따라 생성 가능 여러 환경의 생성 가능 여러 고객에 대한 동일한 환경 생성 가능 아키텍처 아래의 아키텍처는 HTTP 접
AWS 관리 도구
Amazon CloudWatch Amazon CloudWatch는 AWS 클라우드 리소스 및 AWS에서 실행하는 어플리케이션을 모니터링하는 서비스로 지표 수집 및 추적, 로그 파일 수집 및 모니터링, 경보 설정, 리소스 변경 대응등이 가능하여 문제에 적절히 대응하고 어플리케이션 실행을 원활하게 유지 할 수 있도록 지원 AWS CloudFormation AWS CloudFormation 샘플 템플릿이나 사용자 템플릿을 생성하여 어플리케이션 실행에 필요한 aws 리소스 및 모든 종속성 또는 런타임 파라미터에 대해 기술 할 수 있고 이를 통해 프로비저닝 하는 순서나 세부 요소 파악 필요 없이 버전관리를 통해 해당 리소스를 수정하고 업데이트 가능 AWS CloudTrail AWS CloudTrail은 계정에 대한 AWS API 호출을 기록하고 로그 파일을 사용자에게 전달하는 웹 서비스로 API 호출자의 자격 증명, 호출 시간, 호출자 IP, 파라미터 등이 기록 A

AWS - Networking & CloudFormation
컴투스의 이한섭님의 강의를 통해 네트워킹에 대한 세미나에 대한 내용입니다. 1. AWS Network Service 톺아보기 AWS Network service AWS 리전과 가용영역 -- 87개 가용영역 -- 410개 이상의 접속 지점(POP) -- 2022년 9월 기준 27개 리전이 개설 AWS VPC -- https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html --VPC: AWS의 사설망; Subnet: AWS 부분 망; Routing Table: 트래픽의 경로 NACL: Access Control. Subnet 트래픽 제어. 허용 또는 거부. Stateless. SecurityGroup: 보

220830
오늘 할일 > Lambda VPC 연결하면 S3안되는 이유 찾기 CloudFormation으로 자동화하기 Lambda VPC연결하면 S3 Connectino Timeout이 출력되는 이유 가설1. Lambda함수는 Public IP를 할당받을 수 없다? > https://stackoverflow.com/questions/54112422/access-aws-s3-from-lambda-within-default-vpc Lambda함수는 VPC내에서 할당된 퍼블릭 IP를 받지 않음으로 EC2 인스턴스처럼 직접 인터넷에 접속할 수 없다. 인터넷 액세스를 제공하려면 NAT 게이트웨이에 대한 경로가 있는 프라이빗 서브넷으로 Lambda함수를 이용해야한다. 물론 Lambda함수가 S3기 때문에 사용한다면 VPC엔드포인트를 사용해야한다. lambda_function.py > 
AWS Certified Cloud Practitioner CLF-C01 CloudFormation, Beanstalk, CodeDeploy, CodeCommit, CodeBuild, CodePipeline, CodeArtifact, CodeStar, Cloud9, SSM, OpsWorks
CloudFormation declarative way of outlining your AWS Infrastructure, for any resources. Security group과 이를 이용한 EC2 2개의 인스턴스와 S3와 ELB기능이 필요해! 라고 말하면 right order, exact configuration 해준다. AWS Cloud Development Kit(CDK)를 활용해 익숙한 python, javascript, java, .net으로 작성 후 CDK CLI를 거쳐 CloudFormation으로 전달되어 작성할 수 있다. Beanstalk : Platform as a Service (Paas) 웹 애플리케이션을 운영하기 위해서는 EC2, ASG, ELB, RD

AWS 통합 서비스
Application Load Balancer Elastic Load Balancing 서비스의 일부로 도입된 두번째 유형의 로드 밸런서이다. Classic Lad Balancer가 제공하는 대부분의 기능에 개선사항이 추가된 것이다. 향상된 기능 지원되는 프로토콜 HTTP, HTTPS, HTTP/2, WebSockets Cloud Watch 지표 추가적인 로드 밸런싱 지표 및 대상 그룹 지표 차원 액세스 로그 WebSocket 연결의 연결 세부 정보를 볼 수 있는 기능 상태 확인 더욱 세분화된 수준에서 대상 및 애플리케이션 상태에 대한 통찰력 경로 및 호스트 기반 라우팅 경로 기반은 요청을 각기 다른 대상 그룹으로 전달하는 규칙을 제공한다. 호스트 기반은 호스트 이름에 따라 요청을 각기 다른 대상 그룹으로 전달하는 규칙을 정의하는데 사용할 수
AWS 강의 정리 (6)
CloudFormation when encounters an error, it will rollback with ROLLBACKINPROGRESS 너무 커서 S3를 통해서 import 해야함 At least one resource is required Infrastructure as Code (IaC) the process of managing and provisioning computer data centers automatically through machine-readable definition files(ex: json, YAML) rather than physical hardware (자기들이 원하는 규격을 코드로 관리), Resources(Mandatory) 에다가 원하는 서비스 적으면 됨 (7:26) CloudWatch A collection of monitoring services for logs, Dashboards, Al

[AWS Serverless] AWS Serverless Service
AWS Serverless Service AWS에 대해 공부하다 보면 Serverless라는 단어를 자주 보게 됩니다. 백서에서도 많이 발견할 수 있고, 자격증을 준비하면서도 대부분의 경우 Serverless로 환경을 구성하는 것을 권장하고 있습니다. AWS에서는 많은 Serverless 서비스를 제공하고 있습니다. 위의 그림은 AWS의 대표적인 Serverless 서비스들과 그 서비스들을 활용한 아키텍쳐입니다. S3는 서버를 필요로 하지 않는 오브젝트 스토리지이며, CloudFront는 S3의 데이터를 빠르게 제공하기 위한 CDN 서비스입니다. API Gateway를 통해 별도의 Backend 서버 없이 API Server를 구축할 수 있으며
aws cloudformation(4)_ EC2::LaunchTemplate
autosclinggroup을 설정하기위한 조건중 하나인 launchtemplate을 cloudformation으로 생성. 위 속성 넣으면 launchtemplate이 아래처럼 생성 NetworkInterfaces 아쉬운건 네트워크 인터페이스에서 보안그룹ID를 만든 후 따로 설정해줘야 한다는 것만 빼면 앞으로 launch template은 이렇게 생성
aws cloudformation(3)_ AutoScaling::ScalingPolicy
autoscalinggroup을 생성하는 것까지 했으므로 scalingpolicy까지 생성하는 걸 해봤다. 이렇게 하면 scalingpolicy가 생성은 되지만 cloudwatch alarm과는 연결되지 않는다. (검은색 네모안에 있는 cloudwatch alarm이 없음) 따라서 (저번에 했던 cloudwatch alarm속성에 "AlarmActions
aws cloudformation(2)_ AutoScaling::AutoScalingGroup
저번에는 cloudwatch를 이용해서 cloudformation을 연습해봤는데 cloudwatch는 리소스를 관리하는 서비스이기 때문에 리소스가 존재해야 cloudwatch를 만들 수 있다. 그래서 이번에는 그 cloudwatch가 관리하는 리소스인 autoscalinggroup을 cloudformation으로 만드는 작업을 해봤음. >공식 documentary: https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html LaunchTemplate의 Version 일단 템플릿에 위의 autoscalinggroup 속성들을 넣으면 기본적인 autoscalinggroup을 만드는거에 성
aws cloudformation(1)_ CloudWatch::Alarm
일단 cloudformation실행하면 덮어쓰기 될까봐 무서워서 덮어쓰기 당해도 당장 크게 피해가 가는 부분이 없는 cloudwatch로 먼저 해봤다. 스택생성(aws 리소스 모음을 스택이라고함)누르고 desinger로 템플릿 생성해서 cloudwatch 찾아준후 끌어당겨주면 템플릿 리소스에 properties가 텅 비어있는데 아래처럼 properties를 채워줬다. > 불친절의 끝판왕 aws 도큐멘터리: https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluationperiods 가다가다노가다로 aws 도큐멘터리 보면서 일일이 properties에 집어넣으면서 뭘 집어넣어야 되고 뭘 안넣어도 되는지 해봤다. 결론적으로 console에서 했을 때 넣어야되는 부분과 자동으로 넣어진 부분까지도 신경써줘야 했다.
IaC 인프라를 코드로
프로젝트 끝나고 피드백으로 iac를 이용해서 인프라를 남기라는 말에 인프라를 깃허브처럼 어디다가 저장하는 곳이 있나? 했는데 그냥 인프라를 코드로 바꾸라는 얘기였다. 여러가지 iac 들이 있었는데 나는 aws cloudformation으로 aws에서 console로 일일이 만든 인프라를 코드로 바꾸려고 한다. 이유는 단순히 aws에서 인프라들을 구성했으니 aws 제공하는 cloudformation이 편하기도 하고 관련 자료들이 많을 거 같아서 선택했다. 기존에 이미 만든 리소스들을 한번에 코드로 바꿔주는 건 없는거 같아서 내가 이제까지 aws console로 일일이 만든걸 다시 코딩화 해야할 거 같다.하ㅋㅋ(사실 이런 기능이 있을만도한데 계속 찾아봤는데 안보여서 보이면 바로 그렇게 할 생각.) 그리고 코딩화라는 것도 사실 뭘 배우는 건 아니고 그냥 json으로 리소스들을 적는 것이다. cloudformation을 만지면서 여러가지 난관에 부딪힐 느낌이 든다. 1.혹시라도 cl

[AWS Devops Discovery] 02. AWS와 Devops를 위한 Tool
Infra As A code(IAC)란? IT 서비스를 위한 시스템을 구성할 때, 수동으로 구성하는 대신 shell 기반의 script를 사용하여 컴퓨팅 인프라를 구성하는 기술을 말한다. 보통 프로그래밍형 인프라라고도 하는 infrastructure as a code는 인프라 구성을 프로그램 처리하는 방식을 말한다. 결과적으로 앱을 작성하는 작업과 앱의 실행되는 환경을 구현하는 작업사이의 경계가 모호해지기 시작했는데, 앱은 자체적으로 VM을 생성하고 오케스트레이션하는 script를 통해서 it 서비스를 위한 인프라를 쉽고 편리하게 구축할 수 있으며, 추후 인프라의 확장과 관리를 보다 효율적으로 수행할 수 있다. CI/CD 의 progress code > version > code review > integerate > deploy ![](https://images.velog.io/images/lenyleny/post/7208d3c1-3e2c-4876-8b76-0a92b1