AWS EC2를 사용하다보면 백업을 하기위해서 이미지(AMI)를 생성하거나, Snapshot을 사용하기도 합니다. 이 포스팅에서는 EC2 AMI 와 Snapshot 의 차이와 비용발생에 대해 간단하게 알아보겠습니다. 📍 AMI 이미지 생성방식과 EBS 생성방식의 차이 AMI 이미지 생성방식은 EC2 인스턴스의 전체 백업(인스턴스와 + 저장소) 을 생성하는 것이고, 이미지를 복원할 때는 새로운 인스턴스와 EBS 볼륨이 생성되어 복원됩니다. EBS 스냅샷 생성방식은 EBS볼륨을 백업하는 방식입니다. 스냅샷은 생성하는 시점 그대로 저장이 됩니다. EBS만 백업하는 것입니다. 그래서 복원할 때는 새로운 인스턴스가 생성되지 않습니다. 📍 서울리전(ap-northeast-2)기준으로 비용에서는 어떤 차이가 있을까요..
Docker란? 도커는 컨테이너 기술을 기반하여 만든 오픈소스 가상화 플랫폼입니다. (도커 ≠ 컨테이너) 컨테이너? 사전적 의미 화물을 담아 나르기 위해 주로 쓰는, 쇠로 만들어진 큰 상자. 기술적 의미 이미지 목적에 따라 생성되는 프로세스 단위의 독립 환경입니다. 환경을 제공하며 프로세스의 생명주기를 관리합니다. 왜 컨테이너를 사용할까요? HOST와 격리를 통하여 독립된 개발환경을 보장하기 위해 사용합니다. 컨테이너의 역사 FreeBSD Jail 오픈소스 Unix인 FreeBSD의 기술입니다. 특징 프로세스의 구획화 네트워크의 구힉화 파일 시스템의 구획화 (구획이란? 경계를 갈라 정하는 것 또는 그 구역) Solaris Containers Oracle의 상용 Unix인 Solaris 의 기술입니다. 특..
문득 S3 미리 정의된 URL로 다운로드하거나 액세스하는 것을 퍼블릭하게 노출시키지 않는 방법이 뭐가 있을까?고민하다가 IP기반으로 액세스를 허용하고 제한할 수 있을까 하고 간단하게 테스트해본 내용입니다. 테스트를 위해 버킷과 객체를 준비해줍니다. 1. 버킷 생성 2. 객체를 선택하고 미리 서명된 URL 과 공유를 선택합니다. S3 버킷 정책에 내 IP 만 접근할 수 있도록 버킷정책을 꾸려보자 테스트는 내 현재 IP와 VPN 사용해서 다른 IP를 획득하여 액세스가 가능한지 여부에 대해 확인해볼 예정이다. 3. S3 버킷 정책 설정 - IP S3 버킷 정책 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIPs", "Effect": "Allow", "P..
API를 통해 데이터를 가져와 AWS RDS 적재하는 역할의 Lambda를 사용하면서 겪은 삽질기(경험 부족)입니다. 제가 만든 Lambda 는 위의 캡쳐 사진처럼 간단합니다. 또한 다음과 같은 역할을 수행하고자 합니다. 외부 인터넷을 통해 API를 호출하여 데이터를 가져온다. AWS RDS에 접근하여 데이터를 적재한다. 이 Lambda 에는 1) 외부 인터넷을 접속할 수 있는 인터넷 게이트웨이가 필요하며, 2) RDS과 같은 AWS 리소스를 사용하기 위해선 해당 VPC 망에 존재해야합니다. Lambda 의 VPC 활성화 옵션을 통해 RDS 와 같은 VPC 로 지정하였고, 서브넷 또한 퍼블릭 서브넷으로 지정하였습니다. 람다는 기본적으로 인터넷과 통신이 되기 때문에 당연히 될거라 배제하고 진행했었습니다. ..
AWS를 비용 효율적으로 사용할 수 있는 방법에는 Reserved Instances와 Savings Plans, Spot Instances 세가지 방법이 있습니다. 이 세가지 방법에 대해 한번 알아보겠습니다. RI는 인스턴스를 예약 약정거는 방식 SP는 시간당 사용 금액을 미리 계산하는 방식 Spot Instance는 고객이 설정한 가격 선에서 싼 값에 올라온 인스턴스들을 가져다 쓰는 방식 만약 RI와 SP 둘다 결제해놓고 사용한다고 가정했을 때에는 RI가 우선순위가 더 높다. 📍 RI (Reserved Instances) AWS EC2의 요금은 한 달 기준으로 인스턴스를 사용한 시간에 따라 요금이 책정되는 방식입니다. 일정기간동안 인스턴스를 예약해서 사용을 하겠다는 의미이고, 옵션에 따라 다르지만 On..
프로젝트를 진행해보면서 DB Connection과 쿼리로 인한 메모리 및 CPU 사용량이 비정상적인 경우를 종종 볼 수 있었습니다. 이 부분을 어떻게 관리하면 좋을까 고민하던 중 slow query라는 것을 알게되었고 또 그 쿼리로그를 슬랙으로 보낼 수 있다는 것을 알게 되어 여러 블로그를 참조하며 작성하였습니다. slowquery란? slowquery 는 클라이언트의 요청을 받아 응답하는 과정에서 오래 걸리는 query에 대한 log를 의미합니다. 특정 작업이 오래 걸린다면 log를 통해 원인을 파악할 수 있으니 slow query를 사용하면 분석이 가능할 것이라 생각합니다. 어떻게 슬랙으로 보낼까요? 전체 구조는 다음과 같습니다. 1.AWS RDS 설정 모니터링할 인스턴스의 slow query를 설정..
실습하는 과정에서 도커 데스크탑을 매번 어플리케이션으로 켜고 끄고하는 것이 불편하여 도커 데크스탑을 MAC zsh에서 간지나게 ON/OFF 하는 법을 공유하려고 합니다. 우선 터미널 (zsh 환경) 을 켜줍니다. $ vi ~/.zshrc FN + 화살표로 페이지를 조작할 수 있습니다. 혹은 gg (페이지 맨 위로 이동) , G (페이지 맨 아래로 이동) 편하신 방법으로 맨 아래로 이동 해줍니다. # docker ON alias odo="open -a Docker" # docker OFF function kdo() { ps ax|grep -i docker|egrep -iv 'grep|com.docker.vmnetd'|awk '{print $1}'|xargs kill } 위의 코드를 작성해주고 저장하여 vi..
Ingress 컨트롤러 를 Ingress-Nginx로 구성해보는 실습 중에 발생한 이슈에 대해 원인과 해결을 공유하고자 합니다. 사건 발단 강의에서는 Ingress-Nginx 버전 v0.47.0 으로 진행하여 인그레스 컨트롤러를 구성했습니다. 하지만 저의 k8s 에서는 "ingress-nginx-admission-patch" Pod가 자꾸 crashloopbackoff 상태가 되어 버리는 것입니다. (강의에서와 똑같이 따라해줬을 뿐인데 왜 저만 안될까요?) 문제해결시도 Ingress-nginx를 삭제하고 재설치해보는 작업 Ingress-Nginx 는 https://github.com/kubernetes/ingress-nginx#support-versions-table 여기서 다운 받을 수 있습니다. Gi..
안녕하세요 최근에 배운 Dockerfile 을 활용하여 간단하게 웹 서버를 만드는 실습을 해보며 그것을 기록하고자 글을 작성합니다. 1. Dockerfile 작성 도커는 Dockerfile 파일만 읽어서 빌드하기 때문에 dockerfile 이 여러개일 경우에는 -f 옵션으로 해당 파일을 읽어가게 해주면 됩니다. rpm -Uvh ~~~(9행) -U : 기존 패키지가 있을 경우 업그레이드 , 없을 경우에는 -i 옵션과 같이 설치 -v : 설치 과정을 보여줍니다. -h : # 기호를 붙입니다. yum 라이브러리에는 nginx 패키지가 없기 때문에 url로 설치해줬습니다. EXPOSE와 PORTS 차이 (참고) -> ports는 호스트 포트와 컨테이너 포트를 모두 노출시키기 때문에, 호스트 내부의 컨테이너 - ..
Ansible 에 대해 공부하는 중 시스템을 관리하고 배포한다는 점에서 docker 와 되게 비슷하다고 생각하였습니다. 그 둘의 차이를 조사한 결과 쉽게 말해서, Ansible은 서버 구성 및 자동화 도구이고 docker 는 가상머신 플랫폼 및 컨터이너 기반 이라는 것을 알았습니다. 만약 서버가 50대 있고 nginx를 설치한다던가 시스템 계정을 만든다던가 그러면 일일이 50대를 다 들어가서 설정해줘야하는 불편함이 있을 것입니다. 하지만 그런 불편함을 Ansible 이 대신 한번에 다 해줍니다!! 위에서 말한 것들을 확인해보기 위해 실제로 Ansible 실험환경을 구축하여 nginx를 배포해보는 작업을 해보겠습니다. (참고) 우선, docker 로 대상 컨테이너(worker) 2개와 서버 컨테이너(ans..
- Total
- Today
- Yesterday
- rds
- lambda
- SpringBoot
- 자바
- 삽질
- 개발자
- Docker
- 라우터
- 프로토콜
- 네트워크
- spring
- 스위치
- 라우팅
- 알고리즘
- 회고
- 초보
- osi7계층
- aws
- 회고록
- 계층
- ec2
- 프로그래머스
- java
- Spring Boot
- dto
- .NET
- tcp
- s3
- 개발
- 3Way Handshake
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |