테라폼으로 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..
프로젝트/컴파일 설치로 AWS 3-Tier 구축하기(+테라폼)
구성에 맞추어 아래 네트워크 구성을 작성하겠습니다. 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가 있는..
WEB01, 02 Apache 2.4.X WAS01, 02 Tomcat 8.5.X DB01 MySQL 5.7.X (8.0.X 버전으로 하면 안됨) Tomcat 설치 https://tomcat.apache.org/download-80.cgi Apache Tomcat® - Apache Tomcat 8 Software Downloads Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure whi..
Load Balancing(LB) 트래픽 분산 처리. 하나의 인터넷 서비스에 발생하는 트래픽이 많을 때 여러 대의 서버를 분산처리 하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 분산처리하는 방식 장점 고가의 서버로 확장하지 않고(Scale-up) 저렴한 비용으로 다수의 서버를 증설(Scale-out)하여 경제적으로 비용절감 1대의 서버에 장애가 발생해도 서비스 중단 없이 운영 가능 트래픽이 급증해도 서버 증설로 서비스 중단 없이 운영 가능 ALB(Application LoadBalancer) 7계층 LB Client IP와 서버 사이의 모든 트래픽은 LB와 통신한다. 보안그룹을 통한 보안이 가능하다. Client → LB의 접근 제한 가능 ALB의 IP 주소는 변동되기 때문에 Client에서..
WEB01, 02 Apache 2.4.X WAS01, 02 Tomcat 8.5.X DB01 MySQL 5.7.X 소스 설치 소스설치, 수동설치, 컴파일설치? Linux에서 소스를 직접 다운 받아 컴파일하여 설치하는 것 ↔ 패키지 설치(yum 또는 apt 설치) 패키지 설치는 간편하지만 불필요하게 설치되는 파일들이 있고 패키지 단위로 설치되어 관리가 어렵다. 소스 파일은 /usr/local/src에 보관하고 /usr/local/에 설치하는 것이 관례 소스 설치 순서 소스파일을 내려받고 ./configure로 설정하고 make로 컴파일하고 make install로 설치한다. configure: 소스파일에 대한 환경설정. 서버 환경에 맞춰 makefile을 생성 make: 컴파일 make install: 컴파..
EC2 구성 요구되는 구성 사항에 맞춰서 EC2를 설정한다. Bastion Host 보안그룹에서 먼저 하나 만들고, 내 IP에서 22번 포트로만 SSH 접속을 할 수 있게 인바운드 규칙을 설정했다. 아웃바운드는 아직 안 건드렸다. EC2를 생성하는데, public vpc로 설정해야 외부에서 접근이 가능하다. 외부 접근을 위해 퍼블릭 IP도 자동할당 해준다. 보안그룹은 아까 만든 걸로 설정했다. EC2에 접속 완료! EC2 - WEB01, WEB02, WAS01, WAS02, DB01 private subnet에 넣어주고 퍼블릭 IP는 비활성화 시킨다. 보안 그룹은 새로 생성한다. 보안그룹의 규칙은 소스로 bastion sg를 선택하여 bastion EC2를 통해서만 이 WEB01 EC2에 들어올 수 있도..