이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
클라우드 서비스 개발자를 위한 AWS로 구현하는 CI/CD 배포 입문
신입 개발자부터 실제 서비스 구축 경험이 없는 모든 개발자를 위한 실무 밀착형 입문서!
베스트
OS/데이터베이스 top20 2주
가격
20,000
10 18,000
YES포인트?
1,000원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
  • 본 도서의 개정판이 출간되었습니다.

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  문화비소득공제 가능

이 분야의 이벤트

상세 이미지

책소개

목차

01 AWS 이해

01 - 1 AWS 배포를 위한 프로젝트 환경설정
1. 1 JDK 설치
JDK(Java Development Kit)
1. 2 환경변수 설정
1.2.1 윈도우 shell 명령어
1.2.2 환경변수 설정
1. 3 Visual Studio Code 설치
1.3.1 Java Extension
1.3.2 Spring Extension
1.3.3 Lombok
1. 4 포스트맨 설치
1. 5 Git 설치
1. 6 프로젝트 저장 경로

01 - 2 이 책의 학습 목표(AWS)

01 - 3 전산실을 구축할 때 고려할 점

01 - 4 AWS 탄생 배경
4. 1 제프 베이조스

01- 5 AWS 회원 가입

01 - 6 EC2 서버 임대

01 - 7 EC2 서버에 접속하기(Windosw & Mac)
7. 1 Windows
7.1.1 mobaXtem 설치
7.1.2 mobaXtem 실행
7. 2 Mac
7.2.1 asw-key 파일이 저장되어 있는 경로로 이동
7.2.2 asw-key 파일에 실행 권한 부여
7.2.3 EC2 접속
7.2.4 한 줄로 EC2 접속하기

01 - 8 네트워크 기본기 - 패킷의 여행
8. 1 패킷
8.1.1 서킷 스위칭
8.1.2 패킷 스위칭
8. 2 IP 주소
8.2.1 IPv4
8.2.2 IPv6
8. 3 포트 번호

01 - 9 EC2 서버 방화벽
9. 1 방화벽
9. 2 Secure가 붙은 이유

01- 10 RSA 인증방식
10. 1 대칭키 암호화 방식
10. 2 공개키 암호화 방식(RSA)
10. 3 프로토콜
10.3.1 데이터 송신 방법
10.3.2 데이터 수신 방법
10. 4 RSA 개념이 필요한 이유

02 리눅스 명령어 학습

02 - 1 리눅스 명령어 step 1
1. 1 clear
1. 2 pwd
1. 3 cd
1. 4 ls
1. 5 절대 경로와 상대 경로

02 - 2 리눅스 명령어 step 2
2. 1 --help
2. 2 -a, --help
2. 3 mkdir
2. 4 touch
2. 5 rm
2. 6 Ctrl + C

02 - 3 리눅스 명령어 step 3
3. 1 cp(copy)
3. 2 mv(move)
3.2.1 파일 이동
3.2.2 파일명 변경
3. 3 In(link)

02 - 4 리눅스 명령어 step 4
4. 1 Windows에서 프로그램(카카오톡)을 설치할 때
4. 2 ubuntu repository
4.2.1 ubuntu repository 등록
4. 3 PPA 저장소

02 - 5 리눅스 명령어 step 5
5. 1 sudo apt update
5. 2 apt
5.2.1 파이프라인(|)
5.2.2 grep
5.2.3 포트 확인
5. 3 인바운드 규칙 설정

02 - 6 리눅스 명령어 step 6
6. 1 PPA(Personal Package Archive) : 개인 저장소
6. 2 프로그램 삭제
6. 3 PPA 찾기
6.3.1 우분투 코드 네임 확인
6. 4 PPA 추가
6. 5 apt 메뉴판 update
6. 6 tomcat8 설치
6. 7 저장소 삭제

02 - 7 리눅스 명령어 step 7
7. 1 프로세스(Process)
7. 2 스레드(Thread)
7. 3 context-switching
7. 4 sleep

02 - 8 리눅스 명령어 step 8
8. 1 프로세스와 서비스
8.1.1 service
8.1.2 syetemctl
8. 2 ps 프로세스 명령어
8.2.1 ps -ef
8.2.2 kill
8. 3 restart
8. 4 tomcat8 pid 찾는 script 작성해보기

02 - 9 리눅스 명령어 step 9
9. 1 vi
9.1.1 일반 모드
9.1.2 입력 모드
9.1.3 명령행 모드

02 - 10 리눅스 명령어 step 10
10. 1 root 접속
10. 2 root로 파일 생성
10. 3 권한
10.3.1 그룹
10.3.2 권한 변경 chmod
10.3.3 모두에게 전체 권한 부여

02 - 11 리눅스 명령어 step 11
11. 1 chown 소유자: 그룹 변경

02 - 12 리눅스 명령어 step 12
12. 1 파일 찾기
12. 2 tomcat 저장 위치 살펴보기
12. 3 index.html 파일 권한 변경
12. 4 index.html 파일 수정
12. 5 포트 변경

02 - 13 리눅스 명령어 step 13
13. 1 tail
13. 2 표준 입출력
13.2.1 표준 입력 스트림 stdin(0)
13.2.2 표준 입력 스트림 stdout(1)
13.2.3 표준 입력 스트림 stderr(2)
13. 3 표준 입출력 변경

02 - 14 EC2 서버 종료하는 법

03 AWS EC2 기본 배포하기

03 - 1 배포 V1 흐름 이해하기
기본이 되는 배포 V1

03 - 2 프로젝트 다운받고 실행해보기
2. 1 프로젝트 설명
2.1.1 프로젝트 다운로드
2.1.2 프로젝트 실행:로그 확인
2.1.3 프로젝트 실행 종료
2.1.4 테스트 파일 확인
2. 2 배포 방법

03 - 3 EC2 서버 생성 및 고정 IP 설정
3. 1 EC2 서버 생성
3. 2 고정 IP 설정
3. 3 탄력적 IP 생성
3. 4 탄력적 IP 주의사항
3. 5 탄력적 IP 연결

03- 4 프로젝트 배포하기 V1
4. 1 git 설치 확인
4. 2 프로젝트 git clone
4. 3 gradlew 실행 권한 부여
4. 4 JDK 설치
4. 5 실행 파일로 변경(gradlew)
4. 6 jar 파일 실행하기

03 - 5 프로젝트 배포하기 V1
5. 1 plain.jar 파일 생성되지 않는 코드 추가
5. 2 nohup
5. 3 로그 확인 nohup.out
5. 4 실시간 로그 모니터링 tail

03 - 6 로그 파일 위치 변경
6. 1 프로세스 종료
6. 2 로그 파일 변경 후 실행

03 - 7 표준 출력, 표준 에러
7. 1 표준 출력(1)과 에러 출력(2)
7.1.1 정상 로그와 에러 로그를 분리하는 이유

03 - 8 타임존 변경 및 종료 스크립트 작성
8. 1 timezone 세팅
8. 2 pgrep
8. 3 종료 스크립트 작성
8.3.1 스크립트 파일 생성
8.3.2 종료 스크립트 작성
8.3.3 실행 권한 부여
8.3.4 스크립트로 프로세스 종료
8. 4 서버 재시작

03 - 9 cron 주기적 실행
9. 1 cron 개념과 실습
9. 2 cron 자동화

03 - 10 스크립트로 cron 등록

03 - 11 cron으로 프로젝트 재시작
11. 1 spring-stop.sh
11. 2 spring-restart.sh
11. 3 deploy

03 - 12 재배포 프로세스 이해
12. 1 재배포 프로세스 이해

03 - 13 재배포하기
13. 1 기존 서버 중지
13. 2 aws-v1 폴더 삭제
13. 3 프로젝트 다운로드
13. 4 gradlew 실행 권한 부여하기
13. 5 빌드
13. 6 jar 실행시키기
13. 7 cron으로 자동 재시작

04 AWS EC2 배포 자동화 스크립트로 배포하기

04 - 1 AWS-V2 목표
1. 1 V1 로직
1. 2 V2 로직

04 - 2 EC2 서버 생성 및 고정 IP 설정
2. 1 EC2 인스턴스 생성
2. 2 고정 IP
2. 3 탄력적 IP 설정

04 - 3 환경 변수와 bashrc
3. 1 환경 변수
3. 2 export
3. 3 source

04 - 4 환경 변수를 특정 파일에 적용하기
4. 1 환경 변수 파일 생성
4. 2 환경 변수 등록
4. 3 원하는 파일에서만 환경 변수 사용
4. 4 환경 변수 적용 범위

04 - 5 재배포를 고려한 cron 종료
5. 1 deploy.sh 스크립트에 crontab 종료 설정
5. 2 cron delete

04 - 6 서버 종료 및 프로그램 설치
6. 1 PID 찾아서 프로세스 종료시키기
6. 2 자바 실행파일 이름 구조 파악
6.2.1 프로젝트 이름
6.2.2 프로젝트 버전
6.2.3 plain.jar 파일 생성하지 않는 설정
6. 3 환경 변수 설정
6. 4 환경 변수 적용
6. 5 실제 스크립트 작성
6. 6 스크립트 실행

04 - 7 프로젝트 다운로드 및 빌드
7. 1 sleep을 걸어주는 이유
7. 2 스크립트 실행
7. 3 jar 파일 실행

04 - 8 서버 실행하기
8. 1 스크립트 작성
8. 2 스크립트 실행
8. 3 로그 파일 저장 위치 변경

04 - 9 cron 등록
9. 1 check-and-restart.sh 생성
9. 2 스크립트 실행(배포 스크립트 완성)
9. 3 강제로 서버 종료시키기
9. 4 테스트 없이 jar 빌드 하는 방법

04 - 10 배포 파일 압축하기
10. 1 tar
10.1.1 tar 압축 연습
10. 2 실제 배포 파일 tar 압축
10. 3 파일 전송

04 - 11 배포 파일로 실제 배포하기

05 엘라스틱빈스톡으로 배포하기

05 - 1 엘라스틱빈스톡 샘플 코드 실행
1. 1 엘라스틱빈스톡

05 - 2 엘라스틱빈스톡 내부 구성
2. 1 엘라스틱빈스톡 생성
2. 2 로드밸런서
2. 3 NGinX 서버는 외부 IP 요청을 거부한다

05 - 3 엘라스틱빈스톡 프로젝트 대표
3. 1 jar 파일 만들기
3.1.1 프로젝트 다운로드
3.1.2 프로젝트 빌드
3. 2 프로젝트 업로드 및 배포
3.2.1 프로젝트 업로드
3.2.2 “심각” 상태가 뜨는 이유

05 - 4 엘라스틱빈스톡 오류 없이 배포하기
4. 1 jar 파일 만들기
4.1.1 프로세스 설정

05 - 5 엘라스틱빈스톡 SSH 접속
5. 1 실행 중인 프로세스 확인
5. 2 포트 확인
5. 3 NGinX

05 - 6 엘라스틱빈스톡 종료하기

06 엘라스틱빈스톡 & 데이터베이스

06 - 1 엘라스틱빈스톡 생성
1. 1 엘라스틱빈스톡 Create Application
1. 2 추가 옵션 구성
1.2.1 사전설정 : 단일 인스턴스(프리 티어 사용 가능)
1.2.2 소프트웨어 편집
1.2.3 로드밸런서
1.2.4 보안
1.2.5 데이터베이스

06 - 2 VPC 구성
2. 1 EC2
2.1.1 보안 그룹
2. 2 VPC(Virtual Private Cloud) 가상 사설 클라우드
2. 3 CIDR 표기법
2.3.1 IP 주소
2.3.2 네트워크 클래스
2.3.3 서브넷 마스크
2.3.4 CIDR
2.3.5 서브넷

06 - 3 RDS 생성 및 접속(Windosw, Mac)
3. 1 RDS 생성
3. 2 인바운드 규칙 편집
3. 3 정리
3. 4 RDS 접속
3.4.1 Windows 접속
3.4.2 Mac 접속

06 - 4 RDS 세팅하기
4. 1 데이터베이스 생성

06 - 5 배포 V4 프로젝트 살펴보기
5. 1 프로젝트 다운로드
5. 2 프로젝트 실행해보기
5. 3 프로젝트 내부 구조
5.3.1 yml 설정 파일
5. 4 환경 속성 변경

06 - 6 배포 및 테스트
6. 1 빌드
6. 2 엘라스틱빈스톡
6. 3 배포 완료
6. 4 테스트

07 엘라스틱빈스톡 & 데이터베이스 & CI/CD 배포하기

07 - 1 배포 V5 시작 전 준비사항
1. 1 엘라스틱빈스톡 환경 종료

07 - 2 AWS 요근 정책
2. 1 AWS-V5에서 사용할 서비스
2.1.1 엘라스틱빈스톡
2.1.2 로드밸런스

07 - 3 AWS-V5 전체 구성 이해하기
3. 1 이전 배포 방식
3. 2 V5 배포 구성(CI/CD)

07 - 4 CI/CD란?
4. 1 폴링(polling) 기법
4. 2 웹훅(Webhook) rlqjq

07 - 5 AWS 사용자 / 정책 / 그룹 / 역할 이해하기
5. 1 IAM(Identity Access Manager)
5.1.1 사용자
5.1.2 그룹
5.1.3 정책
5.1.4 역할

07 - 6 Github 프로젝트 fork 하기

07 - 7 RDS 생성하기
7. 1 보안 그룹 설정
7.1.1 보안 그룹 생성
7.1.2 보안 설정
7. 2 RDS 생성
7.2.1 데이터베이스 생성
7.2.2 데이터베이스 접속

07 - 8 엘라스틱빈스톡 생성
8. 1 create application
8.1.1 추가 옵션 구성

07 - 9 롤링 : 배포 전략
9. 1 한 번에 모두
9. 2 추가 배치
9. 3 변경 불가능(블루/그린 배포)

07 - 10 배포 V5 현재 구성 살펴보기
10. 1 Application Load Balancer
10. 2 Auto Scaliling Group
10.2.1 EC2
10. 3 RDS
10. 4 ALB(Application Load BAlancer)
10. 5 NLB(Network Load Balancer)

07 - 11 시큐리티 보안 그룹 설정 이해
11. 1 EC2로 다이렉트 접근이 불가능한 이유
11. 2 RDS 보안 그룹 수정

07 - 12 Github Action(CI/CD 도구)
12. 1 프로젝트 다운로드
12. 2 .github/workflows/deploy.yml
12.2.1 name
12.2.2 jobs
12. 3 Push
12.3.1 Github Action

07 - 13 엘라드틱빈스톡 배포 첫 번째 도전(실패)
13. 1 deploy.yml
13.1.1 steps
13. 2 jar 배포와 zip 배포의 차이점
13.2.1 jar 배포
13.2.2 zip 배포
13. 3 00-makeFiles.config
13. 4 Procfile
13. 5 엘라스틱빈스톡 배포 도전

07 - 14 엘라드틱빈스톡 배포 첫 번째 도전(성공)
14. 1 IAM
14.1.1 IAM 생성
14.1.2 IAM 등록
14. 2 엘라스틱빈스톡에 배포 두 번째 도전

07 - 15 한글 입력 오류 해결
15. 1 RDS 파라이터 그룹 수정
15. 2 오류 로그 확인
15.2.1 Procfile
15.2.2 sbin
15.2.3 로그 저장 위치

07 - 16 네트워크 로드밸런서 고정 IP 설정
16. 1 ALB와 NLB의 차이
16. 2 EC2 탄력적 IP 생성
16. 3 EC2 로드밸런서 생성
16.3.1 Network Load Balancer

저자 소개 3

현) blog.naver.com/getinthere 운영 현) jspstudy.co.kr 운영 현) 유튜브 데어프로그래밍 채널 운영 현) 프리랜서 강사 현) 온라인 컨텐츠 제작(이지업, 구름에듀, 한국공개SW협회, 한국융합인재교육협회) 현) 노마드랩 개발 팀장 [저서] 모두가 할 수 있는 플러터 UI 실전 (앤써북) 모두가 할 수 있는 플러터 UI 입문 (앤써북) IoT 사물인터넷을 위한 라즈베리파이 4 정석 (앤써북) JSPStudy의 JSP & Servlet 웹 프로그래밍 입문 + 활용 (앤써북) 그누위즈의 PHP & MySQL 웹 프로그래밍 입문
현) blog.naver.com/getinthere 운영
현) jspstudy.co.kr 운영
현) 유튜브 데어프로그래밍 채널 운영
현) 프리랜서 강사
현) 온라인 컨텐츠 제작(이지업, 구름에듀, 한국공개SW협회, 한국융합인재교육협회)
현) 노마드랩 개발 팀장

[저서]
모두가 할 수 있는 플러터 UI 실전 (앤써북)
모두가 할 수 있는 플러터 UI 입문 (앤써북)
IoT 사물인터넷을 위한 라즈베리파이 4 정석 (앤써북)
JSPStudy의 JSP & Servlet 웹 프로그래밍 입문 + 활용 (앤써북)
그누위즈의 PHP & MySQL 웹 프로그래밍 입문 + 활용 (PHP 8 기반) (앤써북)

최주호의 다른 상품

현) JSPStudy 운영진 현) 메타코딩 컨텐츠 연구 운영진 (저서) AWS로 구현하는 CI/CD 배포 입문 (앤써북)

정재원의 다른 상품

현) 동의대 정보아카데미 강사 현) 부산IT교육센터 프로그래밍 강사 현) JSPStudy.co.kr 대표 운영자 (저서) 코딩 1도 몰라도 커서 AI와 대화하며 7가지 프로그램 만들기 (앤써북) JSP Study의 JSP 웹 프로그래밍 입문 + 활용 (4판) (앤써북) IoT 사물인터넷을 위한 라즈베리파이 5 정석 (앤써북) 모두가 할 수 있는 플러터 UI 입문 (앤써북) 그누위즈의 PHP & MySQL 웹 프로그래밍 입문 + 활용 (전면 개정판) (앤써북) 그누위즈의 HTML5 & CSS3 웹 디자인 입문 + 활용 (앤써북)

정동진의 다른 상품

품목정보

발행일
2023년 03월 15일
쪽수, 무게, 크기
300쪽 | 190*250*20mm
ISBN13
9791198189295

출판사 리뷰

이 책을 통해 이런 걸 할 수 있게 된다.

01 AWS, Linux, Network 클라우드 서비스 기본 입문 내용 습득
02 EC2 서버로 클라우드 서비스 내 프로젝트를 배포하기 위한 환경 구축 방법
03 AWS EC2 기본기와 스크립트 작성법, 배포, 재배포하는 방법
04 AWS EC2 배포 자동화 스크립트로 효율적으로 배포하는 방법
05 엘라스틱빈스톡 배포 방법과 데이터베이스 결합한 프로젝트 배포 방법
06 엘리스틱빈스톡, RDS, GithubAction을 활용 CI/CD 배포
07 GithubAction을 활용하여 테스트/빌드/자동화된 배포 방법
08 무중단 배포(롤링) 방법, 테스트 서버에서 프로젝트를 테스트하는 방법
09 네트워크 로드밸런서를 활용하여 고정 IP 설정 방법 및 서비스

이 책은 클라우드 서비스에 관심있는 개발자는 물론 대학생 혹은 실제로 서비스 구축 경험은 없는 주니어 개발자 모두를 대상으로 하며,
특히 이런 분께 강력 추천한다.

- AWS 클라우드 서비스에 이해하기 쉽게 설명된 책 또는 동영상 강의를 찾는 분
- AWS에서 DevOps 구축을 위한 전체적인 구조와 환경에 대해 학습 원하는 분
- 데브옵스와 인프라, 클라우드에 관한 이론과 실전을 체험하실 분
- 프로젝트 배포 자동화와 무중단 배포가 필요하신 분
- 정적 IP를 할당하여 클라우드 플랫폼 구축을 원하는 분
- 단시간 안에 효과적으로 플랫폼 설계가 필요하신 분

이 책의 내용을 학습하는 과정에서 오류가 발생하는 부분이 있으면 저자에게 질문할 수 있는 질문/답변 네이버 카페를 저자가 직접 운영한다.
- 메타코딩 https://cafe.naver.com/metacoding

이 책에서 사용할 모든 프로젝트 코드 및 실습 소스코드는 5쪽을 참조하거나 아래 github 주소에서 다운로드 받을 수 있다.
- https://github.com/codingspecialist/Aws-Deploy-EasyupClass

이 책을 보고 나면 localhost:8080에서만 개발이 끝나는 것이 아니라, 실제 URL 주소를 가지고 CI/CD 환경을 갖춘 서비스를 만들 수 있다.

이 책은 이런 분께 강력 추천한다!
- 클라우드 서비스에 관심 있는 모든 개발자
- 실제 서비스 구축 경험이 없는 모든 개발자
- 대학생 / 1년 미만 신입 개발자

이 책은 본문 내용만 학습해도 충분히 실습 내용을 이해할 수 있도록 쉽게 설명하였지만, 네트워크나 컴퓨터 사이언스 지식이 낮은 초보 개발자들을 위해 AWS EC2 기본 배포할 수 있는 전과정을 담은 동영상 강좌를 제공한다. 이 책의 예제 소스 코드, 저자에게 질문하는 방법은 책 5~6쪽을 참고한다.

리뷰/한줄평11

리뷰

10.0 리뷰 총점

한줄평

8.3 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정