회사에서 구현하고 있는 헬스케어 솔루션 시스템에 하이퍼레저를 연계하여 회원 생체정보를 블록체인으로 저장하는 기능을 담당하게 되어 몇달간 학습 및 기능을 구현하면서 가상머신에서 멀티호스트를 생성해서 도커스웜으로 연결하는건 부하도 많아지고 여러모로 불편함이 많이 느껴져 aws에서 멀티 호스트를 구성해서 띄워야겠다고 약 몆주간 고민하고 고민하다 드디어 어제 방안을 찾아내어 오늘 기본 프로젝트를 완성해보았다.
가상머신에서 aws로 이동하지 못했던 이유는 aws EC2인스턴스간 통신을 하는 방법을 찾지 못했다...
그래서 vpc, subnet등 aws의 네트워크 구조에 대해 유투브로 학습하다가 이것도 해결방안은 되지 못함을 깨닫고 검색을 하다가 보안그룹을 이용하면 가능하다는것을 알게 되었다.
ec2 인스턴스 만들기



centos 환경설정

sudo passwd root
su
[참고]https://tecadmin.net/how-to-enable-ssh-as-root-on-aws-ubuntu-instance/
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
curl -SL https://github.com/linuxserver/docker-docker-compose/releases/download/1.29.2-ls51/docker-compose-arm64 -o /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
systemctl enable docker
systemctl start docker
curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh
chmod +x install-fabric.sh
./install-fabric.sh
위의 스크립트를 실행하여도 fablic-samples파일이 다운로드 되지 않는다.
이유는 확인이 필요하다.
파일질라를 이용해서 기존에 받아두었던 파일을 sftp로 업로드 한다.
yum install firewalld
systemctl start firewalld
firewall-cmd --zone=public --permanent --add-port=2377/tcp
firewall-cmd --zone=public --permanent --add-port=2377/udp
firewall-cmd --zone=public --permanent --add-port=7946/tcp
firewall-cmd --zone=public --permanent --add-port=7946/udp
firewall-cmd --zone=public --permanent --add-port=4789/tcp
firewall-cmd --zone=public --permanent --add-port=4789/udp
firewall-cmd --reload
firewall-cmd --zone=public --list-all
ec2머신의 방화벽해제는 외부에서 보안그룹에 추가하여야 한다.

hostnamectl set-hostname master
reboot
yum install -y epel-release
yum install –y jq
yum install tree
yum install wget
wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz
vi /etc/profile
export PATH=$PATH:/usr/local/go/bin 추가
source /etc/profile
go version으로 설치확인
인스턴스 간 통신을 위하여 보안그룹 인바운드 규칙 편집
현재의 보안그룹을 self로 추가하여 준다.

인스턴스를 이미지로 만들어서 복제하기





docker swarm설정
master 서버에서
docker swarm init --advertise-addr 172.31.9.66
위의 코드를 실행하면
docker swarm join --token SWMTKN-1-3yqn0p01w79fuegjm0q5zwqxurqkxs523hq4ujsv6zr0v6p56d-9b4n3jr9etkwklo90khzmhmln 172.31.9.66:2377
노드에 조인하려면 위와 같은 코드를 입력하라고 나올것이다
복사해서 나머지 서버에 모두 실행한다.
docker node ls

모든 slave서버가 join되었다.
slave서버들을 promote시켜준다.
docker node promote slave1
docker node promote slave2
docker node promote slave3

기본 프로젝트 업로드
파일질라로 미리 준비된 프로젝트를 fablic-samples 디렉터리 아래에 붙여넣어준다.




인증서 생성
./kopo-network.sh down
위 명령어를 실행한다.