728x90

openvpn 이란?

오픈VPN은 라우팅 구성이나 브리지 구성, 원격 접근 기능을 통해 안전한 점대점 또는 사이트 대 사이트 연결을 만들기 위해 가상 사설망 기술을 구현하는 오픈 소스 형태의 응용 소프트웨어

 

ec2  생성 에서 이미지 를 아래와 같이 검색시  aws 마켓에서 찾을 수 있다.

 

 

이후 보안그룹에  내아이피로 변경

 

 

접속시 user를 openvpn as 로 접속 

 

기본설정으로 모두 완료 시 아래와 같이 URL 을 확인 가능

 

 

위 어드민 접근하여 최초 생성된 아이디와 비밀번호로 접근 

사용자 설정 등 을 설정 하면 된다

 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

소규모시스템 구축(1)  (0) 2024.08.01
VPC Peering  (0) 2024.07.30
bastion host 구성 및 NAT GW  (0) 2024.07.30
VPC  (0) 2024.07.30
네이밍 컨벤션  (2) 2024.07.23
728x90

학습 목표

 

ec2 생성 전  보안그룹 생성

 

ec2 생성 시 이전에 만들어 두었던 vpc 연결!

 

 

해당 생성 ec2 탄력적 IP 할당

 

 

할당 된 아이피로 ec2 iterm 접근

 

pritvate ec2 생성 및 규칙 추가 

 

 

생성이 완료되면 private ec2 접근 가능한지 확인

 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

VPC Peering  (0) 2024.07.30
OpenVPN  (0) 2024.07.30
VPC  (0) 2024.07.30
네이밍 컨벤션  (2) 2024.07.23
terraform  (0) 2024.07.22
728x90

VPC 구성

 

최종 구축 예시

 

 

1..VPC 생성(VPC / subnet/ routing table) 

vpc 생성

 

subnet 생성

 

public a/c, private a/c, private db a/c 총 6가지 서브넷 생성

 

인터넷 게이트 웨이 생성 후 연결

 

라우팅 테이블 생성 후 

 public  인터넷 게이트 웨이 연결 

priate NAT 게이트웨이 생성 후 연결

 

 

 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

OpenVPN  (0) 2024.07.30
bastion host 구성 및 NAT GW  (0) 2024.07.30
네이밍 컨벤션  (2) 2024.07.23
terraform  (0) 2024.07.22
SSH(Secure Shell Protocol)  (0) 2024.07.19
728x90

네이밍 컨벤션 이란

식별자를 만들 때 가독성이 좋은 단어를 선택하기 위해 정해 놓은 이름 짓는 규칙

 

네이밍 표현 기법 의 종류

 

케이스 예시
카멜 camelCaseStyle
스네이크 snake_case_style
케밥 kebab-case-style
파스칼 PascalCaseStyle

 

 

AWS에서 Name은 

  • 리소스 태그의 Name
    •  vpc, ec2, subnet 등 모든 리소스
    • 상시 변경 가능
  • 리소스 자체의 Name
    • ELB, RDS, Elasticcache 등
    • 변경 불가 ( 리소스 재생성)

 

EC2 네이밍 컨벤션 

 

환경명(대분류) - 업무명(중분류) - 서비스명(소분류1) -리소스명(소분류2)

ex) PRD-CRM-API-01, DEV-ECOMMERCE-API-RDS

 

 

테스트로 만든 네이밍 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

bastion host 구성 및 NAT GW  (0) 2024.07.30
VPC  (0) 2024.07.30
terraform  (0) 2024.07.22
SSH(Secure Shell Protocol)  (0) 2024.07.19
AWS CLI  (0) 2024.07.18
728x90

terraform 이란 ? 

  • HCL 언어 사용
    • HshiCorp사 에서 GO 언어 기반으로 개발한 HCL 언어로 코드 작성
  • 인프라 프로비저닝
    • IaC 도구 중 인프라 프로비저닝 용도로 사용
  • Reuse 및 테스트 활용 
    • 재사용 가능한 dlsvmfk zhem 
    • 반복적인 인프라 구성 테스트 진행
  • Immutable Infrastructure
    • 환경 원활하게 변경되는 인프라 구성 가능
  • 클라이언트 아키텍처 
    • 별도의 서버구성이 필요 없는 클라이너트 기반 아키텍처만 지원
  • 다양한 Provider 지원
    •  AWS, GCP, Azure등 다양한 Provider 지원

Terraform Lice Cycle 

 


Terraform Flow

 

1. Terraform 구성 소스 - 현재 관리자가 작성/수정하고 있는 코드

2. Terraform state - 가장 최근에 배포한 테라폼 코드 형상

3. 실제 인프라 - 실제로 Cloud 환경에 배포되어 있는 인프라

 


terraform 디렉토리 레이아웃( 참고용  운영 규모에 맞게 수정하여 사용 필요)

  • main.tf - 프로비저닝할 리소스 정의 
  • variables.tf - 소스코드에 사용할 변수들을 정의
  • outputs.tf - 소스코드에 대한 실행 결과를 정의 및 출력
  • modules - 리소스를 모듈화한 단위
  • backend.tf - 형상 관리를 하기 위한 설정을 정의
  • provider.tf - 리소스 제공자와 버전등을 정의

테라폼 ec2 만들기 

간단하게 테스트 진행 

 

1. vscode 설치 

2. 테라폼 설치 설치 참조 아래 블로그 참조

https://curiousjinan.tistory.com/entry/terraform-installation-guide-mac

 

테라폼(Terraform) 사용 가이드 2:MacOS에 테라폼 설치하기

이번 포스트에서는 MacOs에 테라폼을 설치해 보자 1. 테라폼 설치: URL 직접 다운로드 직접 다운로드하기 첫 번째 방법은 URL로 직접 다운로드하는 건데, 최신 버전이나 이전 버전 모두 다운로드할

curiousjinan.tistory.com

 

3. backend.tf 파일 작성

 

4. main.tf 인스턴스 생성 할 정보 기입

 

 

5.provier.tf 에 AWS key 와 profile 등 정보를 기입한다.

 

아래는 init -> destory 까지 과정이다.

 

적용 이후 생성된 ec2

 

이후 destroy 명령어 입력하면 삭제된다.

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

VPC  (0) 2024.07.30
네이밍 컨벤션  (2) 2024.07.23
SSH(Secure Shell Protocol)  (0) 2024.07.19
AWS CLI  (0) 2024.07.18
MFA, Authy 설정  (0) 2024.07.16
728x90

SSH란? 

Secure Shell Protocol 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.

 

SSH는 개발 혹은 운영 중에 필수적으로 접하게 된다.

대표적으로  github 이용시  giuthub 코드를 푸쉬 혹은 clone 할때 사용.

 

 

사용하는 이유?

SSH 를 사용하는 이유는 민감한 정보를 주고 받는 다면 정보를 직접 네트워크를 통해 넘기기 때문에 해당 정보를 열어볼 수 있어 보안에 상당히 취약.

하지만 SSH  사용시 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에 보다 보안적인 면에서 뛰어나기 떄문에 "보안"의 목적을 위해 사용한다.

 

 

SSH 대칭키방식과 비대칭키 방식 모두를 사용하여 인증 및 암호화를 진행 

대칭키 방식 - 동일한 키 값으로 암호화와 복호화를 진행하는 방식

 

비대칭키 방식- 암호화에 사용되는 키와 복호화에 사용되는 키가 서로 다른 방식

기본적으로 SSH는 한쌍의 key를 통해 접속하려는 컴퓨터와 인증과정을 거친다. 

public key - 공개키, 공개되어도 비교적 안전한 키, 공개키를 통한 암호화는 가능하지만, 복화화는 불가.

pirvate key - 비공개키, 외부에 노출이되어서는 안되는 키, 시스템 내부에 저장되어 있고, 암호화된 메시지를 복호화 할 있도록 돕는 역할.

 

서버 인증

  • 클라이언트 난수 생성 , 난수에 대한 해시를 생생하여 저장
  • 클라이언트 생성한 난수 값을 public key를 통해 암호화하여 데이터를 전송
  • 서버 측에서는 암호화된 데이터를 private key를 통해 복호화 한 후 난수값을 확인
  • 복호화된 난수값을 통해 해시를 생성 후, 다시 클라이언트 전송
  • 클라이언트에서는 전송 받은 해시와 젖아하고 있는 해시를 비교 정상적인 서버인지 확인

 

클라이언트 인증 

  • 서버 난수 생성, 해시 생성하여 저장
  • 서버 생성한 난수 값을 public key를 통해 암호화하여 데이터를 전송
  • 클라이언트에서는 암호화된 데이터를 private key를 통해 복호화 한 후 난수값을 확인
  • 복호화된 난수값을 통해 해시를 생성, 해시 값을 서버로 전송
  • 서버는 자신이 가지고 있는 해시와 전송받은 해시를 비교하여 사용자 체크

 

서버, 클라이언트의 인증이 모두 끝나면 , 비대칭 키를 통해 서로 대칭키(세션 키)를 교환하게 된다.

이 후 통신 되는 모든 데이터는 세션키를 통해서 암호화가 이루어지고 접속 해제시  세션키는 폐기

 

HTTPS와 SSH를 비교해 보자면, 데이터를 암호화 한다는 점은 공통적인 부분.
HTTPS는 브라우저를 통해, 브라우저에서의 통신을 위해 이루어지는 프로토콜이라 한다면,
SSH는 더 깊이 OS까지의 통신 및 접근을 가능.

 

 

 

 

 

 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

네이밍 컨벤션  (2) 2024.07.23
terraform  (0) 2024.07.22
AWS CLI  (0) 2024.07.18
MFA, Authy 설정  (0) 2024.07.16
IAM 유저 생성  (1) 2024.07.16

+ Recent posts