본문 바로가기

Cloud

(22)
[Docker] 도커를 이용한 애플리케이션 컨테이너화 및 배포 과정 도커를 쓰는 이유컨테이너를 실행하면 호스트 PC에 영향을 주지 않고 서로 다른 종속성을 동시 실행할 수 있다.  컨테이너 실행 과정도커 파일로 도커 이미지를 만들고, 이미지를 실행하면 컨테이너가 된다.(마치 프로그램을 메모리에 올리면 프로세스가 되듯, 이미지를 실행하면 컨테이너가 됨)  주요 명령어docker images : 조회docker pull {이미지 이름} : 이미지 다운로드docker run : 실행 (image -> container)docker ps -a : 실행 중인 도커 컨테이너 목록 조회docker exec : 실행 중인 컨테이너 내부에 들어가는 경우 (자주 쓰는 명령어)docker rm : stop, 컨테이너 삭제docker rmi : 이미지 삭제컨테이너 내부로 들어가는 기본 명령어..
[AWS] CloudWatch로 EC2 로그 모니터링하기 목표EC2에 ssh 접속 이벤트가 발생할 때마다 CloudWatch에서 이를 모니터링하여 SNS 알림을 보내고자 한다.Ubuntu에서는 /var/log/auth.log 파일을 모니터링하여 SSH 로그인 이벤트를 감지할 수 있다. 이를 기반으로 로그 감지 데몬 + CloudWatch Agent를 설정하여 CloudWatch Logs + SNS 알림까지 연결할 계획이다. CloudWatch Logs 그룹 생성다음, CloudWatch Logs 그룹을 생성하고, CloudWatch Agent를 설정한다.나는 public key를 사용해 SSH 로그인을 하도록 설정했으므로, "Accepted publickey for"로 필터 패턴을 설정했다. 로그 그룹: EC2-SSH-Logs필터 패턴: "Accepted pu..
[AWS] Amplify로 static 리소스 호스팅하기 Upload codes on Github Registry우선 Amplify에서 호스팅할 코드를 github 레지스트리에 업로드한다.my-v0-resume에 있는 코드를 올려보려고 한다. Create Amplify Application and Select 'Github' Option '다음'을 누르면 github 리포지토리 접근 권한을 얻기 위한 창이 뜨는데, 권한을 주면 된다. Add Github Repository and Branch연동해주면 자동으로 리포지토리와 브랜치 리스트가 뜬다. 업로드하고자 하는 리포지토리와 브랜치를 선택한다. Specify Application기본적으로 Amplify에서 github의 코드를 읽고 자동으로 설정 값을 넣어준다. yml 파일도 별도 수정이 필요 없다.Final ..
클라우드 아키텍처 구축 Best Practice 모음 보안IGLOO - 클라우드 환경의 보안사고 사례분석을 통한 대응방안IGLOO - 자동화 및 지능적 차세대 보안관제 체계의 성공적인 구축 사례Ahn lab - 금융 마이데이터 구현을 위한 클라우드 아키텍쳐 설계toss - 금융사 최초의 ZeroTrust 아키텍쳐 도입기연구논문 - 개인정보보호를 위한 Azure 클라우드 보안 아키텍처 구성SAMSUNG SDS - 현장에서 발생하는 클라우드 보안 이슈와 해결 방법개인정보보호 위한 AWS 서비스 보안 가이드(1)개인정보보호 위한 AWS 서비스 보안 가이드(2)가용성SAMSUNG SDS - 가용성 측면의 클라우드 아키텍쳐
[AWS] 3-tier architecture on EC2, RDS (Vue.js+Node.js+MySQL) 본 글은 Vue.js, Node.js, MySQL 기반의 3-tier architecture를 AWS 상에 구축한 내용을 정리한 것입니다. 계정 분리 (Root / IAM User)적용: root 계정과 IAM user 계정을 분리하여 root 계정에서는 비용 현황을 모니터링하고, user 계정으로는 AWS 서비스를 기반으로 아키텍쳐를 구축하였습니다.설명: root 계정은 AWS 계정을 처음 생성할 때 사용하는 계정으로, 계정에 대한 모든 권한(결제 관리, 서비스 설정, 계정 폐쇄, 인증 관리)을 갖고있어 이 계정이 해킹되거나 악용될 시 전체 AWS 리소스가 위험에 처할 수 있습니다. 따라서 root 계졍과 IAM user 계정을 분리해 사용하는 것이 보안상 안전합니다.망분리 (Public / Priva..
AMI를 생성해 인스턴스를 복제할 수 있다. 서사 ALB 도메인으로 접속해도 구축해둔 웹서버를 통해 웹페이지가 뜨지 않아서, 모든 네트워크 설정과 라우팅 테이블, 보안 그룹을 검토했다.이것들을 검토하는데에는 위의 사진과 같은 아키텍쳐 도면에 모든 설정 값을 적어두고 흐름을 이해하면서 체크하는 것이 도움됐다.또한 아래와 같이 라우팅 테이블과 보안그룹을 한 눈에 볼 수 있도록 적어두면 내가 어떤 부분을 잘못 설정했는지 확인하기 쉽다. (물론 더 좋은 툴이 있는데 내가 아직 찾지 못한 걸 수도 있다! )  이렇게 두고 훑다보니 특정 인스턴스를 AZ2에 둬야하는데 AZ1에 할당해둔 것도 있었고, 특정 포트에 대해 아웃바운드 트래픽을 열어줘야하는데 막아두었던 것도 있었다. 확실히 도식화해서 확인하니 잘못 설정한 값들을 비교적 빠르게 파악할 수 있었다.본론본..
SA Project (5) / ALB와 AutoScaling 연동 점점 단계를 거칠수록 도면이 현실적이고 구체적으로 변해간다. 우선 AZ1 위에 LEMP 서버를 먼저 구성하고 동작여부를 확인했다. 그 다음 AZ2도 마찬가지로 적용하려했는데, 앞서 설치한 단계를 모두 다 거쳐야하는건지 궁금했다.(그럴리가 없을 것 같아서)이전 글에서 AMI를 생성해 인스턴스를 올바른 가용영역으로 다시 생성한 것 처럼, AutoScaling으로 자동생성되는 인스턴스들의 이미지도 기존에 생성해두었던 AZ1의 인스턴스로 미리 설정해둘 수 있다.ALB 생성할 때 사용할 영역 복수선택 가능하다!  최종적으로는 AutoScaling 그룹 생성 시 ALB를 부착해주면 된다.Q. 그럼 실무 개발자분들은 시작 템플릿으로 사용하기 위한 인스턴스(A)를 하나 만들고 이 템플릿으로 AutoScaling 그룹(..
SA Project (4) / ALB와 Nginx 연동 이전 글 SA Project (3) / public subnet에 NAT, ALB 생성NAT 생성- private subnet에 인터넷을 연결해줄 NAT를 각 가용영역의 public subnet에 생성해준다. - private subnet 라우팅테이블 수정하여 모든 패킷을 nat로 보내도록 한다.  인스턴스를 생성할 때, ssh 접속nolzaheo.tistory.com 이전 글에서 ALB를 생성해 private 서브넷의 인스턴스들을 가리키도록 했다. 해당 인스턴스들에는 Nginx가 WEB 서버로 동작하고있다. 따라서 ALB dns를 타고 들어온 트래픽들이 Nginx로 포워딩 되므로, 웹서버가 ALB dns 주소를 listen하도록 설정을 바꿔줘야한다. vi /etc/nginx/sites-available..