본문 바로가기

전체 글

(1200)
Kinesis Data Streams - 생성 1. 구현 아키텍처(AWS lab에서 펌) Kinesis Data Streams이란? Amazon Kinesis Data Streams는 모든 규모의 데이터 스트림을 쉽게 캡처, 처리 및 저장할 수 있는 서버리스 스트리밍 데이터 서비스입니다. 2. 아마존 Kinesis로 이동 후 입력 데이터를 수신 할 데이터 스트림을 생성한다. 3. 데이터 스트림 이름과 열림 샤드 수를 입력 후 데이터 스트림을 생성한다. 4. 생성된 데이터 스트림 확인
Kinesis Data Streams - SSH 접속 및 EC2 설정 1. 생성한 EC2에 SSH 접속을 하자. EC2 인스턴스 클릭 후 연결을 클릭한다. 2. SSH 클라이언트탭으로 이동 후 아래의 주소를 복사한다. 3. 윈도우 검색창에서 CMD를 검색 후 명령 프롬프트 아이콘 에서 우 클릭하여 관리자 권한으로 실행을 클릭한다. 4. 이전에 EC2를 생성할 때 다운받은 키페어가 있는 폴더로 이동한다. 5. 이전에 SSH 클라이언트에서 복한하 SSH키값을 붙여넣고 엔터를 친다. 6. 아래와 같이 워닝 에러가 발생할 경우 해결 1, 2 번을 참고하여 해결하자. 해결 1. Kinesis-Data-Stream.pem 파일에서 우클릭하여 속성으로 이동한다. 해결 2. 보안 → 고급 탭으로 이동하여 상속사용안함 클릭 → Users와 Authenticated Users 를 제거한다...
Kinesis Data Streams - EC2 생성 1. EC2를 생성합니다. 우리는 아마존 AMI 리눅스 버전을 사용하도록 하겠습니다. 2. EC2 인스턴스의 유형을 선택 후 다음을 클릭합니다. 우리는 테스트 버전이니 테스트 용도로 프리티어가 적용되는 유형의 EC2를 선택하겠습니다. 3. 인스턴스 세부 정보 구성에서 퍼블릭 IP 자동할당 옵션을 활성화 시킨 뒤 다음 스텝으로 이동합니다. 4. 스토리지와 태그는 기본값으로 설정한 뒤 보안그룹 구성 탭으로 이동합니다. 기존 보안그룹을 선택 후 기존에 생성한 보안그룹을 선택 후(bastion-host, elastic-search) 검토 및 시작 버튼을 클릭하여 다음 탭으로 이동 합니다. 5. 생성한 EC2의 키페어를 다운로드 합니다. 새로 생성할지 여부를 선택 후 키페어 이름을 넣은 뒤 키페어 다운로드를 클릭..
Kinesis Data Streams- 보안그룹 설정 1. EC2 서비스로 이동한 뒤 보안그룹 클릭 후 보안 그룹 생성 클릭! 2. 보안그룹 생성에서 보안그룹 이름과 설명 그리고 VPC 를 선택, 인바운드 규칙과 아웃바운드 규칙을 추가 및 확인 후 보안그룹 생성을 클릭하여 해당 보안그룹을 생성한다. 3. 엘라스틱 서치에서 사용할 보안그룹을 생성한다. 보안그룹 이름과 설명, VPC 등의 기본적인 정보만 입력하고 보안그룹을 생성한다. 4. 엘라스틱 서치에서 클러스터링할 보안그룹을 생성한다. - 인바운드 정보는 비워두고, 아웃바운드 정책에서 모든 TCP로 변경, 대상을 이전 단계에서 생성한 elastic-search를 검색하여 등록해준다. 그 후 보안그룹을 생성한다. - 다음 단계에서는 EC2 생성에 대해서 알아보도록 하겠다.
Kinesis Data Streams - IAM 설정 1. AWS 로그인 후 IAM 서비스로 들어간다. IAM 서비스에서 사용자 탭을 클릭 한 뒤 사용자 추가를 진행한다. 2. 사용자 추가탭에서 사용자 이름과 액세스 유형 등 설정 한 뒤 다음을 클릭하여 다음단계로 넘어갑니다. 3. 권한탭에서 기존 정책 직접 연결 → AdministratorAceess 권한을 체크한 뒤 다음 스텝으로 이동 합니다. 4. 설정된 사항을 검토한 뒤 사용자 만들기를 클릭하여 사용자 생성을 합니다. 5. .csv 파일은 이후 생성되는 EC2 설정에 꼭 필요한 파일이므로 기억하기 쉬운 디렉토리에 저장해 둡니다. 6. 이로써 사용자 생성을 마쳤습니다. 다음은 보안그룹 설정에 대해서 알아 보겠습니다.
아파치 웹서버 + Docker 테스트 # 테스트 환경 설명 1. 테스트 설명 2개의 EC2 인스턴스안에 Docker 컨테이너를 1개씩 설치 포트 포워딩은 9090:80으로 설정했으며, 실제 대상그룹에서 통신하는 포트는 9090이 된다. 9090:80 → 9090은 외부로 서비스할 포트이고, 80은 원래 애플리케이션이 사용하고있는 포트이다. 예를들어, SpringBoot에서 백엔드 서비스의 포트번호를 9999라고 설정하고 빌드 후 Docker에서 8888번 포트로 서비스를 하고싶을 경우에는 8888:9999 라고 포트번호를 설정해 주어야 한다. (이게 별거 아닌데 가끔하면 은근히 헷갈림) 2. 대상그룹이 바라보는 로드밸런서는 docker-test-9090 라는 로드밸런서 이고 정보는 아래와 같다. - 부하 테스트를 위해 로드밸런서의 DNS 이..
EC2 오토스케일링 시 Docker 컨테이너 자동 실행 수일간의 인터넷 검색과 삽질끝에 아래의 문제들에 대한 답을 찾았다.(스택 오버플로우에도 없더라...ㅠㅠ) 1. Auto Scaling 시 EC2 인스턴스에 설치된 Docker Container의 자동 실행 2. AWS Auto Scaling 시 대상그룹에서의 EC2에 설치된 Docker Container Unhealthy 상태 문제 해결방법 1. Auto Scaling 시 EC2 인스턴스에 설치된 Docker Container의 자동 실행 문제 → 실제 사용 명령어 : docker run --restart=always -p 9090:80 webserver_02 AWS EC2 인스턴스에서 오토스케일링 스케일 아웃 시 인스턴스를 자동으로 생성한다. 근데 문제가... 스케일 아웃 시 도커 컨테이너는 자동으로 ..
부하를 통한 EC2 인스턴스 상태변화 감지 # EC2 인스턴스 에서 php를 설치하여 부하를 가중시키는 코드 생성 # Jmeter를 활용하여 부하 발생기 실행 - sudo apt-get install php 를 입력하여 php를 설치 sudo apt-get install php - cd /var/www/html 로 이동하고, vim index.php 라는 php파일을 생성한다. - 참고로 cd /var/www/html은 아파치 웹서버의 기본 경로이다. - 부하 생성 코드 - 위 코드를 입력하고 저장한다. 위코드는 어떤 명령을 실행할때 0부터 1천만번까지 반복하는 코드인데 자원을 고의로 자원을 소모하기 위한 코드이다. - 코드를 생성 후 생성한 코드를 기반으로 Jmeter에서 부하 테스트를 수행 후 EC2 인스턴스의 CPU의 상태 변화를 감지해 보..