1 서버/클라이언트 구조
1.1 서버 클라이언트
1.2 네트워크 통신
1.3 서버의 종류
1.4 데이터 센터
- 데이터 센터의 문제점
2 클라우드의 등장
2.1 가상화
2.2 리소스
2.3 클라우드 컴퓨팅
- 클라우드 컴퓨팅의 특징
- 클라우드 컴퓨팅의 장점
3 아마존 웹 서비스(AWS)
3.1 One-Stop IT 인프라 제공
3.2 AWS의 특징
- AWS의 임대 방식
3.3 AWS의 주요 서비스와 특징
- 컴퓨팅(Computing)
- 스토리지(Storage)
- 데이터베이스(Database)
- 네트워킹 및 콘텐츠 전송(Networking & Content Delivery)
3.4 AWS의 글로벌 인프라
- 리전
- 가용 영역
4 AWS 계정
4.1 실습 AWS 계정 만들기
- 홈페이지 접속
- 이메일 및 계정 이름 입력
- 인증 코드 입력
- 관리자용 비밀번호 입력
- 연락처 정보 입력
- 결제 정보 등록
- 자격 증명 확인
- 가입 완료 축하 메시지
4.2 실습 로그인과 MFA 설정
- MFA 앱 설치
- AWS Management Console 접속
- 관리자 모드로 로그인
- 인증 코드 입력
- MFA 디바이스 선택
- 인증자(Authenticator) 추가
- MFA 할당 완료
CHAPTER 2 네트워크 구성
1 네트워크 구성 개요
1.1 아키텍처 구성
- VPC와 서브넷
- 인터넷 게이트웨이, 라우팅 테이블
- 프로토콜
- 보안 그룹
1.2 기본 리전 변경
- 기본 리전 편집
2 VPC
2.1 네트워크
2.2 VPC
- VPC의 예(서점)
- 리전과 VPC
2.3 실습 VPC 생성
3 인터넷 게이트웨이
3.1 인터넷 게이트웨이 개요
3.2 실습 인터넷 게이트웨이 생성
3.3 실습 인터넷 게이트웨이와 VPC 연동
4 실습 VPC 설정 편집
5 서브넷
5.1 서브넷 개요
- IP 주소
5.2 실습 서브넷 생성
6 라우팅 테이블
6.1 라우팅 테이블의 역할
- 라우팅 테이블의 예
- 라우팅 테이블의 필요성
- 라우팅 테이블
- 가상 라우터와 라우팅 테이블
6.2 실습 라우팅 테이블 생성
6.3 실습 라우팅 테이블 편집
7 서브넷 연결 편집
7.1 실습 서브넷 연결 편집
8 보안 그룹
8.1 보안 그룹 개요
- 검문소
- 방화벽
- 허용 및 거부 정책
8.2 실습 보안 그룹 생성
- 이름 생성과 VPC 지정
- 설정 정보 확인
- Name 컬럼 수정
- 최종 결과 확인
8.3 인바운드 규칙 편집
- 인바운드/아웃바운드 규칙
- 포트 번호
- 실습 가용 영역 2A(인바운드 규칙 편집)
- 실습 가용 영역 2C(인바운드 규칙 편집)
CHAPTER 3 인스턴스
1 인스턴스 개요
1.1 임대 서버와 클라우드
1.2 하드웨어적인 작업과 소프트웨어적인 작업
- 하드웨어적인 작업의 차이점
- 소프트웨어적인 작업의 공통점
1.3 EC2 인스턴스
- EC2의 주요 특징
- EC2의 구성 요소
- EC2의 장점
2 키 페어
2.1 SSH
2.2 SSH 서버
2.3 키 페어 개요
2.4 실습 키 페어 생성하기
3 인스턴스 생성
3.1 실습 인스턴스 생성
- 인스턴스 생성 개요
3.2 실습 애플리케이션 및 OS 이미지 선택
3.3 실습 키 페어 선택
3.4 실습 네트워크 설정
3.5 실습 고급 네트워크 구성
3.6 실습 보안 그룹 정보 변경/확인
3.7 탄력적 IP
- 재시작 시 IP 주소 변경
- IP 재할당
- 탄력적 IP의 필요성
- 과금 주의 사항
- 실습 탄력적 IP 생성
- 실습 탄력적 IP 주소 연결
- 실습 인스턴스 확인
4 인스턴스 접속
4.1 실습 MobaXTerm를 사용한 인스턴스 연결
4.2 실습 인스턴스 간의 통신
5 Nginx 설치 및 실행
5.1 Nginx 개요 및 장단점
5.2 실습 Nginx 설치
5.3 실습 웹 서버 접속 테스트(퍼블릭 IP)
6 내가 만든 홈페이지
6.1 GitHub에서 다운로드
- 파일 현황
6.2 실습 나만의 홈페이지 파일(index.html) 교체
- Public-2A 영역
- Public-2C 영역
6.3 실습 개발자가 생성한 웹 페이지 접속 테스트
7 스프링 부트 연동
7.1 JDK 및 Maven 설치
7.2 스프링 부트 프로젝트
- GitHub에서 가져오기
- 패키징
- 스프링 부트 서버 테스트
- 스프링 부트 서버 종료
- Public-2C에서 html 문서 수정하기
CHAPTER 4 AWS RDS와 스프링 부트 연동
1 RDS란?
1.1 RDS의 개념과 특징
1.2 EC2 직접 설치 vs RDS
2 실습 RDS 생성
2.1 실습 RDS 생성
- 데이터베이스 생성
- 엔진 옵션
- 데이터베이스 생성 방식과 템플릿 선택
- 가용성 및 내구성
- 설정 정보
- 추가 자격 증명 설정
- RDS 인스턴스 구성
- 스토리지 정보
- 연결 정보
- 추가 구성
- 데이터베이스 생성
2.2 RDS와 EC2 연결
- 연결 설정
- EC2 선택하기
- 연결 요약 확인
- 연결하기
- Public-2C 연결 설정
2.3 설정 정보 목록 확인
3 실습 RDS 접속 테스트
3.1 보안 그룹 인바운드 규칙 확인
3.2 EC2에서 CLI를 통한 접속 테스트
- MySQL 클라이언트 설치/접속
- 기본 CRUD 작업
3.3 스프링 부트 서버와 RDS 연동
- GitHub에서 파일 다운로드
- application.properties 파일
- 실습 application.properties 파일 수정하기
- 패키징하기
3.4 스프링 부트 서버 테스트하기
- 웹 브라우저 확인하기
- 브라우저에서 상품명 확인하기
3.5 실습 Public-2C 인스턴스 테스트
CHAPTER 5 도메인 등록하기
1 가비아(Gabia)
1.1 도메인이란
- IP 주소
- DNS와 도메인
- 도메인의 종류
- 도메인 등록 절차
- 도메인 작동 방식
1.2 실습 회원 가입
1.3 실습 도메인 신청하기
2 호스팅 영역 생성
2.1 Route 53
2.2 호스팅 영역
- 레코드
- 호스팅 영역
2.3 실습 호스팅 영역 생성
2.4 실습 호스팅 영역과 도메인 네임 서버의 연동
3 인증서
3.1 인증서 개요
- ACM이 필요한 이유
- SSL과 TLS
- 인증서가 지원되는 AWS 리소스
3.2 실습 인증서 생성하기
- 인증서 요청
- 도메인 이름 지정
- 검증 방법
- 키 알고리즘
- DNS 레코드 생성
- 호스팅 영역 확인
- 인증서 발급 확인
CHAPTER 6 로드 밸런서
1 부하 분산 서비스
1.1 Waiting List
1.2 HTTP와 HTTPS
- HTTPS를 사용하는 이유
1.3 로드 밸런서
- 로드 밸런서의 필요성
- 트래픽 분산 방식
- 로드 밸런서 종류별 차이점
1.4 구성 요소
- 대상 그룹
- 리스너
- 헬스 체크
2 Application Load Balancer
2.1 실습 대상 그룹 생성
2.2 실습 보안 그룹 생성
2.3 실습 로드 밸런서 생성
- 기본 구성
- 네트워크 매핑
- 보안 그룹 지정
- 리스너 및 대상 그룹 지정
- 보안 리스너 설정
- 로드 밸런서 생성 확인
2.4 실습 호스팅 영역과 연동하기
2.5 실습 웹 페이지 접속 테스트
- IP 주소로 접속하기
- 도메인으로 접속하기
- www+도메인으로 접속하기
- https로 접속하기
- https로 접속하기(www 포함)
- SSL 인증서 없음
- SSL 인증서 있음
CHAPTER 7 자원 삭제 및 정리
1 자원 삭제의 중요성
1.1 비용 절감과 자원 관리
- 인스턴스 중지
- 미사용 탄력적 IP 해제
- RDS(Relational Database Service) 인스턴스
1.2 보안 및 관리 효율성 향상
- 퍼블릭 S3 버킷
- IAM 사용자, 그룹, 역할의 권한 방치
- Lambda 함수, API 게이트웨이, EC2 키 페어 등 장기 미사용 리소스
- 정기적인 자원 정리
1.3 자원 삭제 시 주의 사항
- 의존성 확인
- 백업 여부 확인
- 삭제 불가한 자원
- 리전별 자원 확인
- 예상치 못한 서비스 영향 방지
2 AWS 관리 콘솔을 통한 자원 삭제
2.1 탄력적 IP
- 연결 해제(Disassociate)
- 릴리스(Release)
- 탄력적 IP 주소 연결 해제
- 실습 탄력적 IP 주소 연결 해제
- 탄력적 IP 주소 릴리스
- 실습 탄력적 IP 주소 릴리스
2.2 EC2 인스턴스 종료(삭제)
- 인스턴스 정지와 종료(삭제)
- 실습 인스턴스 종료(삭제)
- 키 페어 삭제
2.3 로드 밸런서 삭제
- 삭제 체크 리스트
- 실습 로드 밸런서 삭제
- 삭제 후 후속 조치
2.4 대상 그룹 삭제
- 삭제 체크 리스트
- 실습 대상 그룹 삭제하기
2.5 RDS 삭제
- 삭제 시 주의 사항
- 삭제 옵션
- 실습 RDS 삭제하기
2.6 보안 그룹 삭제
- 실습 EC2 보안 그룹
- 실습 RDS 보안 그룹
- 실습 보안 그룹 삭제
2.7 VPC 삭제
- 실습 VPC 삭제
2.8 DHCP 옵션 세트 삭제
- DHCP 포함 정보
2.9 인증서 삭제
- 인증서 삭제의 필요성
- 삭제 시 유의 사항
- 실습 인증서 삭제
- 삭제 이후 점검 사항
2.10 호스팅 영역 삭제
- 실습 레코드 삭제
- 실습 호스팅 영역 삭제
CHAPTER 8 Terraform 사용하기
1 Terraform 소개
1.1 인프라 자동화란?
1.2 Terraform이란?
1.3 Terraform의 장점
1.4 Terraform 구성 요소
- 프로바이더
- 리소스
- 모듈
- 배리어블
2 Terraform 설치 및 설정
2.1 실습 Terraform 다운로드
2.2 실습 Terraform 파일 압축 해제
2.3 실습 환경 변수 설정
2.4 실습 설치 확인
3 Terraform 코드 작성
3.1 실습 인증 키 자격 증명 생성
- 인증 키 자격 증명 발급
3.2 실습 키 페어 생성
3.3 HCL
- HCL이란
- HCL의 주요 특징
- HCL 사용 방법
- HCL의 장점
- 리소스 생성 문법
3.4 Terraform 설정 파일 작성하기
- 실습 프로바이더 지정
- 실습 VPC 리소스
- 실습 서브넷 리소스
- 실습 인터넷 게이트웨이 리소스
- 실습 라우팅 테이블 리소스
- 실습 서브넷-라우팅 연결 리소스
- 실습 보안 그룹 리소스
- 실습 인스턴스 리소스
- 실습 탄력적 IP 리소스
3.5 실습 인프라 자동화 실습
- 실행 흐름
- 실습 프로젝트 초기화
- 실습 환경 변수 설정하기
- 실습 실행 계획 확인하기
- 실습 리소스 생성하기
- 실습 리소스 삭제하기
- 실습 키 페어 삭제
- 실습 인증 키 삭제