AWS 9

[AWS] AWS Chatbot을 사용하여 Slack 메시지 전송하기

AWS Chatbot 클라이언트 생성 1. AWS 콘솔 - AWS Chatbot - 새 클라이언트 구성 - slack 선택 후 구성 - 슬랙 워크스페이스 선택 2. notification 구성 이름 설정 및 채널 선택 3. 권한 설정 role { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*" ], "Effect": "Allow", "Resource": "*" } ] } CodePipeline 알림 규칙 생성 CodePipeline 이 실행될 경 slack 메시지가 오도록 설정한 아키텍쳐의 경우 다음과 같다 aws charbot을 생성할 경우 ch..

Devops Skill Up/AWS 2024.04.15

[AWS CI/CD] EC2 배포 CodeDeploy 생성하여 배포 자동화하기

EC2에 어플리케이션을 배포하는 CodeDeploy를 만들어보았습니당당. EC2에 CodeDeploy로 배포를 하려면 필요한 전제 조건이 있습니당. 바로 AWS CodeDeploy Agent 설치가 필수적이라는 거지용~ AWS CodeDeploy Agent 설치 1. ssm-agent 버전 확인 AWS System Manager로 CodeDeploy를 설치를 합니다 이때 ssm-agent 는 2.3.274.0 이상이여야 합니다. 다행이도 제 EC2 ami으 2.3.274.0 버전 이상이더라고용? 호호 EC2 SSH 접속 후 아래 명령어로 버전 확이이 가능합니당 yum info amazon-ssm-agent 2. System Manager를 사용하여 AWS CodeDeployAgent 설치 System ..

Devops Skill Up/AWS 2024.04.12

[AWS] Private Subnet 에 EC2 구성하기 (NLB 사용)

프라이빗 서브넷에 생성한 ec2는 alb , nlb를 통해서 사용자가 어플리케이션 접근이 가능하게 합니다. 저와같은 경우는 ECS - EC2 구조로 생성하였숩니당. EC2를 프라이빗 서브넷에 구성하고 alb - nlb 를 통하여 client의 앱접속을 가능하게 합니다. 완성된 아키텍쳐는 위와 같습니다용 원래는 NAT를 사용하여 EC2 (프라이빗 서브넷)- ALB (퍼블릭서브넷)을 연결하려고했으나 NAT Gateway의 비용문제로 NLB 를 사용하는 구조로 변경하였습니당. NAT Gateway를 사용하면서 생겼던 이슈는 아래 정리했셔요.. 흔한 경우는 아니었지만 힘들게 해결한 이슈임미다.. https://itfirefox.tistory.com/33 [AWS] 서브넷 CIDR와 도커 대역IP 충돌 ISSUE..

Devops Skill Up/AWS 2024.04.12

[AWS] ECS EC2 유형 변경하기

ECS 클러스터에서 EC2 인프라로 만든 EC2 의 유형을 변경하려면 오찌해야할까..? ECS 클러스터로 생성된 EC2는 Auto Scaling을 통해서 생성되기 때문에 ASG를 통하여 유형이나 속성을 변경해야합니다요. 1. AWS 콘솔에서 EC2 - AutoScalingGroup으로 들어갑니다. 변경하고 싶은 EC2가 생성되어있는 클러스터 명을 검색하면 찾을 수 있뎌요. EC2ContainerServer-{Cluster name}-~~~ 이런식으로 만들어집니댜 2. 해당 ASG 체크하고 '시작구성' - '시작 템플릿에 복사' - '선택 항목 복사' 3. 새 템플릿을 사용하여 Auto Scaling 그룹 생성 클릭 4. 시작템플릿 버전 생성 클릭 5. AMI, 인스턴스 유형.. emdemd 선택하여 시작..

Devops Skill Up/AWS 2023.11.22

Section2 실습과제 Day 4

드뎌 대망의 실습과제 마지막날! 마일스톤10 API 요구사항에 맞춰 서버 애플리케이션을 작성합니다. 데이터베이스에 접속해, 원하는 데이터가 잘 들어갔는지 확인해 봅니다. 프론트엔드가 잘 작동하는지도 같이 확인합니다. 일단은 가이드라인에 맞춰 디비 하나 생성해주었당 그리곤 WAS 소스코드를 수정하여 api 요청하는 코드를 짜주었다 노드js는 처음이라 쉽지 않았지만.. 똑쟁이 팀원들 덕분에 또 잘 완성할 수 있었다. 'use strict' module.exports = async function (fastify, opts) { fastify.get('/', async function (req, reply) { // 몽고디비의 데이터베이스를 지정 const database = this.mongo.client...

Section2 실습과제 Day 3

오늘은 과연 제시간에 끝낼것인가... Day3 이 시작되어따. Day 3-4 프론트엔드의 배포를 자동화해야 합니다. CDN을 통해 프론트엔드를 캐싱하고, HTTPS를 적용해야 합니다. 프론트엔드와 WAS를 연결해야 합니다. 프론트엔드가 잘 작동하기 위해 WAS를 구현해야 합니다. 마일스톤7 CodeBuild나 GitHub Action 등을 통해 해당 환경 변수를 주입시켜 보세요. REACT_APP_ENDPOINT= 현재 정적 웹서버는 HTTP를 통해 제공되고 있으므로, WAS의 엔드포인트 역시 HTTP 프로토콜이어야 합니다. (이후 프론트엔드 HTTPS 적용 시에는 WAS 역시 HTTPS로의 연결이 필요합니다.) 자동화하려고 깃헙액션 워크플로우 야멜파일 돌리자마자 서버가 동작을 안했다 ubuntu-lat..

Section2 실습과제 Day 2

우리팀을 힘들게 했던 Day2... 이정도면 실습 로그보기 대잔치 똥꼬쇼라고 할 수 있겠어요... 로그 많이 보고 해결했으니.. 다행..? 암튼 주말동안 끝낸 day2 정리 시작합니다.. Day 2 WAS 및 mongoDB 이미지를 ECS를 통해 배포해야 합니다. WAS 이미지의 배포 자동화를 구현해야 합니다. WAS와 연결된 로드 밸런서에 HTTPS를 적용해야 합니다. 마일스톤4 ECS의 클러스터, 태스크 정의, 태스크, 서비스에 대한 개념을 이해합니다. ECR에 저장된 웹 서버 이미지를 ECS로 배포해 봅니다. ECS 태스크의 로그를 읽어봅니다. 로드 밸런서와 ECS 서비스를 연결해 봅니다. 일단 워크플로우에 aws.yml을 만들어따. (결과적으로 우리는 서비스 배포까지 마일스톤 4에서 만들고 나서 ..

Section2 AWS -2

이제 AWS 서비스를 하나 하나 정리해 보자! EC2(Elastic Compute Cloud) 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스이다. 아마존에서 가성의 컴퓨터를 한 대 빌리는 것과 같다. EC2는 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공한다. 인스턴스 : 가상 컴퓨팅 환경으로 하나의 서버라고 생각한다. AMI(Amazon Machine Image) : 운영체제, 애플리케이션 서버, 그리고 위에서 실행되는 애플리케이션 등 세부 내용을 담고 있다. AMI를 통해 자신이 원하는 수 만큼 인스턴스를 생성할 수 있다. 스토리지 - 인스턴스 루트 볼륨(Instance Root Volume) : 인스턴스 루트 디바이스에는 인스턴스 부팅을 위한 이미지가 포함되어 있다. 이 루트 디..

Section2 AWS

aws 가 시작되었땅.. 코드스테이츠에서 젤 듣고 싶었던? 수업? 역시나 어려웠당 3일동안 수업했는데 미루고미뤄서 한번에 몰아쓰는 포스팅..ㅎㅎ 클라우드 컴퓨팅의 세 가지 모델 IaaS (Infrastructure as a Service) : 컴퓨팅, 스토리지 및 네트워크 리소스와 같은 IT 인프라를 제공하는 비즈니스 모델. 개발자는 애플리케이션을 배포, 유지 관리 및 지원해야하며 IaaS 제공업체는 물리적 인프라를 유지 관리할 책임이 있다. PaaS (Platform as a Service) : 애플리케이션을 개발하고 유지 관리하는데 사용하는 하드웨어 및 소프트웨어 인프라를 제공한다. 클라우드 제공업체는 데이터 센터에서 하드웨어 및 소프트웨어 개발 도구를 호스팅한다. PaaS를 사용하면 온프레미스 인프..