Cloud
테라폼이란?
[ https://github.com/hashicorp/terraform](https://github.com/hashicorp/terraform) [ https://developer.hashicorp.com/terraform/intro](https://developer.hashicorp.com/terraform/intro) 테라폼은 HashiCorp에서 만든 코드형 인프라 도구인데 이걸 이용해서 클라우드 및 온프레미스 리소스를 모두 정의할 수 있고 버전화나 재사용 및 공유도 가능하다 테라폼을 이용하면 워크플로를 사용해서 수명 주기 동안 모든 인프라를 프로비저닝하고 관리할 수 있다. 그리고 컴퓨팅, 스토리지, 네트워크 리소스와 같은 low-level의 리소스 뿐만 아니라 DNS나 SaaS 기능과 같은 hi..

AWS Cloudtrail & EventBridge를 이용해서 s3 작업에 대한 컨테이너 작업
AWS CloudTrail은 AWS 리소스에 대한 api 활동을 추적해서 기록하는 역할을 해주는 서비스에요. CloudTrail 이벤트를 사용하면 AWS 리소스에서 발생하는 이벤트에 대한 세부 정보를 수집하고, 이를 통해서 리소스의 보안을 강화할 수도 있다고 해요! 그러면 이제 AWS CloudTrail에 들어가서 추적을 하나 생성해주면되는데 이때 s3 버킷은 기존에 있는걸 사용해도 새로 만들어도 돼요! 친절하게 hint로 어디에 로그가 저장되는 곳까지 알려줘요 그리고 추적을 만드는거 외에 이벤트 기록을 보거나 쿼리도 제공을 해주더라구요! 이제 EventBridge로 가서 규칙 하나를 생성해주면 돼요! 저는 다음과 같이 이벤트 소스는 s3를 선택했고 타입은 아래처럼 cloudtrail을 통한 api 호출..

AWS CodeDeploy에 대해 알아보기
AWS에서는 aws codeDeploy에 대해 다음과 같이 소개하고 있어요. `Amazon Elastic Compute Cloud(EC2), Amazon Elastic Container Service(ECS), AWS Lambda 및 온프레미스 서버와 같은 다양한 컴퓨팅 서비스에 소프트웨어를 자동으로 배포하는 완전관리형 배포 서비스` CodeDeploy에서는 흔히 아는 블루/그린 카나리, AllAtOnce 등의 여러 가지 배포 전략을 지원하고 있어요. 그중에서도 해볼 블루/그린 전략은 모든 트래픽이 새 버전으로 라우팅되는 동안 이전 버전을 5분간 실행 상태로 유지하는데 그 이유는 새 버전이 잘 작동하지 않을 경우 이전 버전으로 라우팅하기 위해서라고 해요! 먼저 애플리케이션을 생성해주는데 저는 ECS서비스..

AWS Kinesis Data Firehose를 consumer로 이용해서 AWS S3로 데이터 스트리밍
먼저 Kinesis Data Firehose를 생성하기 앞서 Kinesis Data stream을 하나 생성해줍니다. 온디맨드 같은 경우에는 써있는 것처럼 자동으로 확정되다 보니 과금될 우려도 있고 저는 단순 실습이라 프로비저닝으로 샤드는 한개를 만들어서 실습을 진행했어요. 샤드는 스트림에서 고유하게 식별되는 데이터 레코드 시퀀스이고 스트림은 보통 하나 이상의 샤드로 구성되어 있어요. 갹 샤드는 고정된 용량 단위를 제공해 주며 읽기에 대해 초당 최대 5개의 트랜잭션, 초당 최대 2MB의 데이터 읽기 속동, 초당 최대 1000개의 레코드까지 그리고 초당 최대 1MB의 총 데이터 쓰기 속도를 지원한다고 합니다! 샤드 계산기를 누르면 아래처럼 초당 최대 레코드 수나 레코드 크기를 지정할 수 있어요! 여기서 소..

AWS ALB에서 경로에 대한 람다 함수 호출
먼저 로드 밸런서 하나를 만들어줘야하는데 ec2에 왼쪽 탭에 로드 밸런서 탭이 존재해서 거기서 설치를 할 수 있습니다! 여기서 우리가 만들건 ALB라서 create 한 다음 scheme는 internet-facing을 골라서 진행했어요 (두개의 차이는 이제 vpc 내부에서 접근하냐 외부에서 접근하냐의 차이고 저는 외부에서 curl을 날려서 확인할 예정이어서 internet-facing을 선택했어요. 이걸 선택하려면 public subnet으로 vpc를 연결해야하는데 저 같은 경우엔 vpc를 하나 만들어서 서브넷 두개를 만들고 그걸 internet gateway로 연결했습니다 ~ ) vpc에서 mapping은 서브넷 두개 만들었던거 다 해줬어요 ! security group은 default를 선택했고 li..
springboot + Mysql with AWS Lightsail
공식 문서에서 설명하는 lightsail에 내용에서는 아래와 같이 설명하고 있어요! Amazon Lightsail은 웹 사이트 또는 웹 애플리케이션을 구축해야 하는 개발자가 Amazon Web Services(AWS)를 시작하는 가장 쉬운 방법입니다. 이를 통해 인스턴스(가상 프라이빗 서버), 컨테이너 서비스, 관리형 데이터베이스, 콘텐츠 전송 네트워크(CDN) 배포, 로드 밸런서, SSD 기반 블록 스토리지, 고정 IP 주소, 등록된 도메인의 DNS 관리, 리소스 스냅샷(백업) 등 프로젝트를 신속하게 시작하는 데 필요한 모든 것을 저렴하고 예측 가능한 요금으로 사용할 수 있습니다. 기존의 ec2만 써봤는데 Lightsail관련 세션을 몇번 듣고 호기심이 생겨서 이번 기회에 써봤는데 설정? 같은 부분들이..
docker-machine with AWS EC2 driver
m1 mac 환경에서는 현재 virtualbox가 지원이 안돼서 docker-machine driver에 aws ec2가 있길래 이걸 이용해서 docker swarm 실습을 진행해봤다! access_key와 secret_key는 본인의 key를 적어주면 됩니다 (저는 aws IAM에서 AmazonEC2FullAccess 라는 권한을 추가해준 사용자로 했어요) docker-machine create --driver amazonec2 --amazonec2-access-key {access_key} --amazonec2-secret-key {secret_key} --amazonec2-open-port 8000 --amazonec2-region ap-northeast-2 manager manager 뿐만 아니라..
Docker 기본 개념 및 명령어 정리!
Docker 리눅스의 네임스페이스와 컨트롤 그룹인 cgroup와 같은 리눅스의 커널 기능을 이용해서 리눅스 환경에서 가상화를 제공해주는 것이 도커 이미지 - 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일 컨테이너 - 이미지를 격리하여 독립된 공간에서 실행한 가상 환경 / 컨테이너는 가상머신을 사용해 각 마이크로 서비스를 격리하는 기술 리눅스 네임 스페이스: 각 프로세스가 파일 시스템 마운트, 네트워크, 유저, 호스트 네임 등에 대해 시스템에 독립 뷰를 제공 → 각각의 이름 공간에서 서로 다른 공간으로 프로세스가 침투되지 못하게 함 리눅스 컨트롤 그룹: 프로세스 별로 소비할 수 있는 리소스(cpu, memory, i/o, 네트워크 대역대, device 노드 등) 양을 제한 → 마치 프로..
오픈 스택
오픈 스택이란? - 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는 오픈 소스 소프트웨어 프로젝트의 집합 - 공용 클라우드 사설 클라우드 상관없이 해당 클라우드에 대한 자원을 정의하고 관리하는 소프트웨어 - 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아 , 이들을 제어하고 운영하기 위한 클라우드 OS - IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는 여러 개이 하위 프로젝트들로 이루어짐 Openstack 구성 요성 - 자원 종류 - openstack 구성 요소 이름 Computing(VM 가상머신) - Nova Storage(디스크) - Swift(Objects, 한번쓰면 많이 읽기만 하는) , Cinder(B..
네트워크 가상화
서버 가상화 : 하나의 물리 서버에서 하이퍼바이저를 설치해서 여러 개의 가상 서버가 독립적인 환경에서 실행될 수 있도록 함 네트워크 가상화 : 가상 머신들이 사용하는 네트워크 대역을 직접 만드는 것을 가능하게 함 / 여러 개의 물리 네트워크들로 여러 개의 가상 네트워크를 만듬 (VLAN, VXLAN, GRE, NVGRE ,STT, ...) 가상 네트워크가 A, B 두개가 있을때, A의 IP 주소 B의 IP 주소 1. 192.168.32.101 1. 192.168.32.101 2. 192.168.32.102 2. 192.168.32.102 3. 192.168.32.103 3. 192.168.32.103 4. 192.168.32.104 4. 192.168.32.104 5. 192.168.32.105 5. 1..