과제 echo2 abc라고 보내면 응답이 abc가 아니라 echo2_abc의 형태로 응답이 오도록 합니다. 힌트 기존에 사용하던 client *의 내부구조를 살펴보아야 합니다. 다음 구조체와 함수들을 참고하세요. sds sdscatfmt sdsempty addReplyBultSds 실습 Redis의 Client 구조체 접속한 클라이언트의 정보를 가지고 있습니다. argc는 입력 받은 파라미터의 개수 argv는 입력 받은 파라미터 각각을 저장한 배열 typedef struct client { ... int argc; /* Num of arguments of current command. */ robj **argv; /* Arguments of current command. */ int argv_len; /..
프로젝트
과제 내용 1. src/ 디렉토리 밑에 commands로 시작하는 다음과 같은 파일들이 있습니다. src/commands.h src/commands.c src/commands.def 2. Redis에 echo{영어이름} command를 추가해보세요. 영어이름은 영어대소문자와 숫자로만 만들어주시면 됩니다. 실제 함수만 추가가 아니라, 함수 구현이 추가되어야 합니다. 1차적으로는 echoCommand를 찾아서 함수명만 만들어주시면 됩니다. commands.def 에 추가할 함수를 echoCommand를 참고해서 추가하고, server.c 에도 echoCommand를 참고해서 추가하면 됩니다. 수행 내용 1. 파일 확인 commands.def echo 명령을 찾아보았습니다. 여러 값 들과 함께 있습니다. se..
수행환경 macOS(m2) 수행 내용 1. make 2. make test 3. make install 관리자 계정에서 하는 것이 좋습니다. redis-server, redis-benchmark, redis-cli 명령을 사용할 수 있습니다. pkg-config를 찾을 수 없다고 하여 brew install pkg-config 명령으로 설치해주었습니다. 4. redis 서버 실행 redis-server 명령으로 레디스 서버를 실행 시킵니다. 5. redis cli 실행 redis server가 실행되고 있을 때 새 창을 열어 redis-cli 명령으로 레디스 cli를 실행시킵니다. 간단한 명령어로 cli와 redis가 제대로 동작하는지 확인합니다.
해당 글에서는 깃에 대한 개념은 다루지 않고 명령어만 다룹니다. 1. clone Git 저장소를 복사하고 싶을 때 사용합니다. 프로젝트의 히스토리를 전부 받아옵니다. git clone [url] git clone [] [--] [] clone 명령은 기본적으로 저장소의 main 브랜치를 클론합니다. clone하여 저장소가 로컬에 복제되었습니다. 디렉토리의 이름은 기본적으로 저장소의 이름과 동일하게 설정됩니다. 디렉토리 명 변경하기 저장소 뒤에 디렉토리 명을 붙여주면 됩니다. 2. branch 새 브랜치를 생성합니다. 옵션과 함께 사용하여 브랜치를 관리합니다. git branch # 로컬 저장소의 모든 브랜치 확인 git branch [브랜치명] # 새 브랜치 생성 git branch -a # 로컬과 원격..
테라폼으로 Bastion Server를 생성하겠습니다. 서버 생성 자체는 어렵지 않았으나 모듈화 할 때 생각할 것이 많아보입니다. 윈도우와 맥을 모두 사용해서 로컬호스트의 이름이 섞여있을 수 있습니다. 서버 접속을 위한 키 생성 hh@DESKTOP-4UIU15G:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hh/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hh/.ssh/id_rs..
구성에 맞추어 아래 네트워크 구성을 작성하겠습니다. VPC Public Subnet 1, 2 Private Subnet 1, 2, 3, 4, 5 NAT Gateway Internet Gateway Route Table 환경 세팅 테라폼 버전입니다. aws configure 되어있는 상태입니다. 코드 작성 기본 설정 terraform { required_providers { aws = { source = "hashicorp/aws" version = "~>4.0" } } } provider "aws" { region = "ap-northeast-2" default_tags { tags = { Name = "terraform-frog" } } } aws 버전과 태그를 지정하지 않았을 때 자동으로 설정될 기본..
Terraform 스터디 프로젝트로 이전에 AWS 3Tier를 구축했던 걸 Terraform을 활용해 다시 구축해 보기로 했습니다. 전체 아키텍쳐 구상(진행하며 변경 사항 추가할 예정)입니다. 주제 Terraform을 이용한 AWS 3-Tier 구성 중점 과제 인스턴스 모듈화 및 쉘 스크립트 작성 내용 WEB-WAS-DB 구조 인스턴스 모듈화 컴파일 설치로 진행 Terraform 코드를 Git에 push하면 GitAction을 이용해 AWS에 프로비저닝 되는 방식 수동으로 관리하는 부분 없이 Terraform으로 프로비저닝 했을 때 DB에서 불러온 내용을 웹에서 확인할 수 있어야 함 state 파일은 Terraform Cloud 사용 생각해 볼 내용 1. prod/dev을 어떻게 구분해서 쓸지? 일단 d..
WAS에 jsp 모듈 설치 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.23.tar.gz tar zvxf mysql-connector-java-8.0.23.tar.gz cd mysql-connector-java-8.0.23/ 소스 설치하고 압축 해제 cp -a mysql-connector-java-8.0.23.jar /usr/lib/jvm/jre/lib/ext/ cp -a mysql-connector-java-8.0.23.jar /usr/local/tomcat8/lib/ jar 파일 복사 was 서버 설정 # /usr/local/tomcat8/conf/context.xml ... ... name - jdbc/ ..
WEB01, 02 Apache 2.4.X WAS01, 02 Tomcat 8.5.X DB01 MySQL 5.7.X 드디어 마지막~~ 보안그룹 설정 db-sg 인바운드 규칙 설정 was-sg 아웃바운드 설정 MySQL 소스 설치 https://downloads.mysql.com/archives/community/ MySQL :: Download MySQL Community Server (Archived Versions) Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Community Server, please vis..
NLB WEB01, WEB02에서 WAS01, WAS02로의 흐름이 NLB를 통해 이루어지도록 구성한다. AWS NLB의 동작 방식 AWS NLB 생성 타겟 그룹 생성하기 NLB의 트래픽을 넘겨줄 대상 그룹 만들기 web의 아웃바운드를 통해 나온 트래픽을 타겟그룹에서 8080으로 받는다. NLB의 트래픽을 보내줄 WAS 인스턴스 2개 선택 NLB 생성하기 내부에서 사용할거니까 Internal NLB가 위치할 subnet 선택 WEB01, WEB02가 위치한 subnet에 붙여주었다. target group을 붙여준다. 보안그룹 수정 web-sg 아웃바운드를 설정해서 web에서 8080포트로 WEB01, WEB02가 있는 서브넷으로 트래픽을 보낸다. was-sg의 인바운드에서 WEB01, WEB02가 있는..