[AWS Certification + 서버관리 마스터] 목차


[Contents]

 - Lectures

 - Hands-On-Labs

 - Practice Questions

 - Qwiklabs

 - Readings

 - Final Project


[Course Outline]

 1. IAM & EC2

 2. EC2

 3. VPC

 4. Database

 5. Storage

 6. Application Services

 7. AWS Well-Architected Framework & DevOps

 8. Presentation & Review


[AWS Certification + 서버관리 마스터] IAM & EC2 Part 1


[Course Outline]

 1. IAM & EC2

 2. EC2 : Elastic Load Balancing(ELB) & Auto Scaling

 3. VPC

 4. Database

 5. Storage

 6. Application Services

 7. AWS Well-Architected Framework & DevOps

 8. Presentation & Review


[Preperation]

1. AWS Account

2. Billing alert


[Identity and Access Management : IAM]

 - Identity and Access Management

 - Groups

 - Users

 - Roles

 - Polices

 - KMS (Key Management Service)


[Elastic Compute Cloud : EC2]

 - AMI (Amazon Machine Image)

 - Instance Type

 - EC2 Options

 - IAM Role

 - T2/T3 Unlimited

 - User Data

 - Storage

 - Tag

 - Security Group

 - Key Pair

 - Metadata

 - Status Checks

 - Monitoring

 - Elastic IP


[Elastic Block Store : EBS]

 - Snapshot

 - Encryption

 - Existing unencrypted volumes cannot be encrypted directly


[Hands-On-Lab]

 - 


[Qwiklabs]

 - Working with Amazon Elastic Block Store (EBS)

 - Automating AWS Services with Scripting and the AWS CLI

 - Working with Elastic Load Balancing

 - Maintaining High Availability with Auto Scaling (for Linux)


[References]

 - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html

 - https://aws.amazon.com/ebs/faqs/


[AWS Certification] Automating AWS Services with Scripting and the AWS CLI


 - AWS 서비스를 액세스하고 관리할 수 있는 세 가지 방법으로 다루어 자동화하는 방법 익히기

 

AWS Management Console: 이 콘솔은 Amazon S3 버킷 작업, Amazon EC2 인스턴스 실행 및 Amazon CloudWatch 알람 설정과 같은 AWS 작업을 수행하기 위한 직관적인 사용자 인터페이스를 제공


AWS CLI(Command Line Interface): AWS 서비스를 관리하기 위한 통합 도구로 Commend Line에서 여러 AWS 서비스를 제어하고 스크립트를 통해 자동화 할 수 있다.


AWS SDK(Software Development Kit): AWS는 다양한 프로그래밍 언어에 대한 SDK를 제공한다. SDK를 사용하면 S3 및 EC2 위에 응용프로그램을 구축할 수 있다.


Topics covered

 - Using the AWS CLI to access and manage AWS services from the command line

 - Using the AWS SDK to programmatically access and manage AWS services

 - Configuring security for the AWS CLI


[Task 1: Connect to your Linux EC2 instance]


 - Session에 Host name: PublicIP 입력

 - Connection에 SSH 메뉴 펼치기

 - Auth 클릭 후 Borwse에서 PPK파일 open

 - username: ec2-user


[Task 2: Three Ways to Access AWS]
 - Key Pair 생성
 - 

[Task 3: Access Amazon S3 with the AWS CLI]


 * Automating Amazon S3
    (CLI 작업을 통해 할 수 있는 유용한 작업)

 - Sending backups to Cloud
(클라우드로 백업 보내기)

 - Providing shared access to documents from multiple computers
(여러 컴퓨터의 문서에 대한 공유 액세스 제공)

 - Retrieving scripts and application code from a central repository
(중앙 레포지토리에서 스크립트 및 응용 프로그램 코드 검색)

 - Duplicating data between different regions
(다른 리전간에 데이터 복제)

[Task 4: Automate EBS Snapshot]

[Task 5: Automate Bastion Security]

[Task 6: Control Amazon EC2 Instances with The Stopinator]

* Other Stopinator Ideas

 - Schedule the Stopinator to stop machines each evening, to save money
 - Mark instances that you want to keep running, then have the Stopinator stop only unknown instances (but don't terminate them - they might be important.
 - Have another script that turns on the instances in morning.
 - Set different actions for weekdays and weekends.
 - Use another tag to identify how many hours you what an instance to run, which is ideal for instances you just want to use for an experiments.
Schedule the Stopinator to run hourly and configure it to terminate instances that run longer than the indicated number of hours.

[Task 7: Custom CloudWatch Metrics]

[Task 8: Security Credentials for your Scripts]


[Task 9: Accessing Help and Documentation]




[AWS Certification] Working with Amazon Elastic Block Store


 - EBS(Elastic Block Store)에 대한 기본적인 내용입니다.


Topics covered

- Create an Amazon EBS volume

- Attach and mount your volume to an EC2 instance

- Create a snapshot of your volume

- Create a new volume from your snapshot

- Attach and mount the new volume to your EC2 instance


What is Amazon Elastic Block Store ?

- Amazon Elastic Block Store(Amazon EBS)는 Amazon EC2 인스턴스를 위한 영구 저장소를 제공한다.

- Amazon EBS Volume은 네트워크에 연결되어 인스턴스의 수명과 독립적으로 유지된다.

- Amazon EBS Volume은 가용성과 안전성이 높은 Volume으로, Amazon EC2 인스턴스 부팅 파티션으로 활용하거나 실행중인 Amazon EC2 인스턴스에 표준 블록 장치로 첨부할 수 있다.

- Amazon EBS가 Amazon Simple Store Service(Amazon S3)에 저장되고 볼륨의 특정 시점에 일관된 스냅샷을 생성하는 기능을 제공한다.


Amazon EBS Volume Features

- Persistent storage: Volume 생명주기는 특정 EC2 인스턴스에 독립적이다.

- General purpose: Amazon EBS volumes 은 모든 운영체제에서 사용할 수 있는 포맷되지 않은 원시 블록장치이다.

- High performance: Amazon EBS volumes은 Amazon EC2 devices와 같거나 더 좋다.

- High reliability: Amazon EBS volumes은 Availability Zone내에 중복을 내장하고 있다.

- Designed for resiliency: The AFR (Annual Failure Rate) of Amazon EBS의 연간 오류율은 0.1%에서 1%이다.

- Variable size: Volume sizes는 1GB에서 16TB까지이다.

- Easy to use: Amazon EBS volumes은 쉽게 생성, 첨부, 백업, 복원, 삭제 될 수 있다.


[Task 1: Create a New EBS Volume]

- Volume Type: General Purpose SSD(gp2)

- Size(GiB): 1

- Availability Zone: 현재 EC2의 Availability Zone과 동일하게 설정


- Tag

 - Key: Name

 - Value: My Volume


[Task 2: Attach and mount your volume to an EC2 instance]

[Task 3: Create a snapshot of your volume]

[SSH 연결]

 - Keepalive: 30초

 - session -> hostname (or IP Address) : publicIP

 - ssh -> auth : ppk 파일로 접속


[Putty 접속 상태]


[마운트된 하드디스크 확인하기]

df -h


[/dev/sdf 폴더에 ext3 파일시스템을 생성]

sudo mkfs -t ext3 /dev/sdf


[새로운 볼륨을 마운트 할 경로 생성]

sudo mkdir /mnt/data-store


[새 볼륨을 마운트]

sudo mount /dev/sdf /mnt/data-store


[인스턴스 부팅 시 자동 마운트]

echo "/dev/sdf /mnt/data-store ext3 defaults,noatime 1 2" | sudo tee -a /etc/fstab



[명령어 입력확인]

cat /etc/fstab


[마운트된 볼륨에서 파일 작성]

 - 기존에 사용하던 서비스가 주기적으로 스냅샷을 생성했을 경우 이전 파일 내용을 확인할 수 있다는 것을 확인하기 위한 파일 생성

sudo sh -c "echo some text has been written > /mnt/data-store/file.txt"


[파일 내용확인]

cat /mnt/data-store/file.txt


[Task 4: Create a new volume from your snapshot]

- 이전 작업에서 새로운 볼륨을 만들어 인스턴스에 마운트작업을 하여 하나의 EC2에 두 EBS를 사용하도록 작업하였다.

- 여기서는 두 번째 EBS에서 작업을 한 뒤 스냅샷으로 백업한 뒤,
  작업중인 파일을 삭제, 스냅샷을 이용해 볼륨을 복원,
  EC2 인스턴스에 복원된 볼륨을 추가하여 파일을 다시 복원하는 작업을 하도록 한다.


[스냅샷 생성한 뒤 파일 삭제]

 - 현재 EC2에 붙은 두 번째 볼륨

 - 작업 후에 파일을 삭제한 상황




[Task 5: Attach and mount the new volume to your EC2 instance]

이전 작업에서 파일이 삭제 된 상태에서 다시 그 파일을 찾기 위해서 파일이 지워지기 전, 스냅샷을 생성한 것을 가지고 복원하는 작업을 한다.


 1. 생성했던 스냅샷으로 볼륨을 생성

 2. 복원된 볼륨을 EC2 인스턴스와 연결

 3. 복원된 볼륨이 마운트 될 경로를 생성

sudo mkdir /mnt/data-store2


 4. 복원된 볼륨을 인스턴스에 마운트

sudo mount /dev/sdg /mnt/data-store2


 5. 복원된 볼륨에서 이전 볼륨에서 삭제한 파일을 읽기

ls /mnt/data-store2/




[결론]

 - Create an Amazon EBS Volume
    (Amazon EBS 볼륨을 생성)

 - Attach the volume to an EC2 instance
    (EC2 인스턴스에 볼륨을 연결)

 - Created a file system on the volume

    (볼륨에 파일 시스템을 생성)

 - Added a file to volume
    (파일을 볼륨에 추가)

 - Created a snapshot of your volume
    (볼륨의 스냅샷 생성)

 - Created a new volume from the snapshot
    (스냅샷에서 새 볼륨  생성)

 - Attached and mounted the new volume to your EC2 instance

    (EC2 인스턴스에 새 볼륨을 연결하고 마운트)

 - Verified that the file you created earlier was on the newly created volume

    (이전에 생성한 파일이 새로 생성된 볼륨에 있음을 확인)


[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE)


 - 이전 글


 - 다음 글


PJT4. 예약관리 시스템: 상세페이지 (BE)


 - 프로젝트4 제출에 대한 피드백 정리



[Service]

 - Transaction의 개념과 @Transactional의 작동방식, 사용방법 등이 필요한 피드백



[BoostCourse] 프로젝트 4. 예약관리 시스템: 상세페이지 (BE)


 - 이전 글


 - 다음 글


PJT4. 예약관리 시스템: 상세페이지 (BE)



 - 프로젝트4 제출에 대한 피드백 정리



1. 피드백 요약

[피드백]

 1. 하나의 메소드에 하나의 기능 (private 메소드로 구현)

 2. 필요하지 않은 주석 및 코드는 제거



[수정]

 1. controller

  1) MainPageController

   ① 필요없는 코드 삭제 (detail)


 2. dao

  1) displayInfoDao

   ② queryForObject의 예외처리 필요

   ③ displayInfoId값에 대한 예외상황 테스트 소스 필요


  2) productDao

   ① 변경 내용이 없는 Mapper는 final한 변수 처리

   ② java변수 선언 시 필요한 부분에 선언

   ③ 고정적인 값은 상수로 선언


 3. sql

  1) 쿼리에 대한 설명을 작성하되 내용 중간에 넣지 않기


 4. service 

  1) 하나의 메서드에는 하나의 로직(기능)만을 넣기

  2) 로직 구현 시 반복 내용 줄일 수 있는 로직 구현하기


[기능 분리]

 - 하나의 메소드에 하나의 기능만을 사용할 수 있도록 로직 분리


[불필요한 코드 및 주석 제거]

 - 의미 없이 다는 주석을 삭제

[불필요한 메서드 삭제]

 - 우선 페이지 이동을 위한 메소드를 만들어 놨었으나 상세페이지 구현 시 파라미터가 필요하여 다시 만듦

 - 파라미터 없는 메서드 삭제 했어야 함



[항상 예외처리가 필요한 API 로직]

 - 파라미터는 null값과 다른 의도하지 않은 예외 값에 대한 예외처리가 필요

 - 또한 파라미터가 그래도 잘못 들어갔을 경우 queryForObject() 호출 시, EmptyResultDataAccessException 예외처리가 필요


[변경될 일이 없는 내용]

 - static final 



[변수의 선언]

 - 이 내용은 정확하게는 이해를 못함..

 - 변수 선언된 자리가 사용되는 부분과 많이 떨어진 상태가 아니라서 바로 위에 선언해야 하는건가?


[상수 선언시 static final]

 - 프로젝트 구현 시, 상품 데이터를 호출 할 때 고정된 값을 사용하기 때문에 상수 선언을 해줘야 함


[상수로 선언되면 더 좋을 코드]

 - "0"은 전체 리스트라는 값을 표현하기 위해서 사용하고 있었기 때문에 상수로 선언해둘 경우 더 좋을 듯



[주석의 위치]

 - 코드 중간에 주석은 코드를 읽는데 불편함을 줄 수 있다.


[하나의 메소드에는 하나의 기능만]

 - comment 안에 CommnetImage를 가져와야 하는데 그 로직은 따로 메소드로 만들 것


[효율적인 로직]

 - 피드백 해주신 내용대로 불필요한 반복 작업을 줄일 수 있다.


codetemplates.xml
0.00MB

[Eclipse] 주석 설정하기

 

 - 사이드 프로젝트를 진행할 때마다 주석 포맷 설정하는게 너무 귀찮다..

 - 이전 프로젝트 경로의 이클립스를 켜서 주석 설정경로로 들어가서 복사해오는 것이 너무 비효율 적이라 생각한다.

 - 다른 방법이 생기기 전까지는 일단 여기에 저장해 두도록 한다.

 

 

 

[JSP]

 - Types

 

 - Fileds

 

 - Constructors & Method

 

 - Override Method

 

[JavaScript]

 - Files

 

 - Types

 

 - Fields

 

 - Constructors

 

 - Functions

 

 

[BoostCourse] 프로젝트 3. 예약관리 시스템: 메인페이지 (FE)


 - 이전 글


프로젝트 3 예약관리 시스템: 메인페이지 -> BE_PJT3-1.예약:메인페이지(FE)



[HTML 커멘트]

 - href="#" 최대한 줄이기

 - href로 이동하는게 아니면 javaScript로 조작하기



[JS]

 - 공통 JS 구현




 - JS 코딩 컨벤션


  세세한 부분을 잘 집어 주신 듯 하다.


다음 프로젝트 4 진행하기

+ Recent posts