Aws
Aws 로그인
- root 로그인과 IAM 로그인이 있다. 필요한 권한만 할당된 IAM 계정을 사용하는 것이 안전하며, root는 외부로 공유되지 않게 하고 보안을 철저히 한다.
Window 서버 생성
window 서버 vs Linux 서버
- 중소기업쪽에서는 보안 및 관리할 것들이 줄어드는 Window 서버를 많이 선호하는 편이다.
- t 시리즈는 범용서버이다. t2.large는 꽤 큰 서버이다.
- 프리티어를 사용하면 일부 서비스를 무료로 사용할 수는 있지만, 성능이 좋지는 않다.
좌측상단 ‘서비스’를 선택, EC2를 찾아서 들어간다. (또는 검색창에서 EC2를 검색)
- 기본으로 ‘대시보드’ 에 접근된다.
- 리소스는 내가 현재 사용하고 있는 제품들을 나타낸다.
- 리소스에 보안그룹 하나가 떠 있는데, 일종의 방화벽이라 생각하면 된다. 요금과는 상관 없다.
좌측 메뉴에서 인스턴스를 클릭한다.
- 내가 만든 인스턴스들을 볼 수 있다. 아직 아무것도 안만들었으면 아무것도 없다.
- 주황색 버튼 ‘인스턴스시작’을 눌러준다.
- 상단에 보면 7단계가 보여지는데, 이를 모두 수행하면 생성이 완료된다.
- AMI 선택
- Window 이미지를 선택한다. 이미지 ID가 업데이트할 때 마다 달라질 수 있으므로, ID보다 이름을 보고 찾는다.
- 아이콘에 ‘프리티어사용가능’ 이라고 적혀있으면 프리티어에서도 사용할 수 있는 이미지다.
- 이미지는 OS + 기타 설정값을 모두 포함하고 있다. 자동 배포되면 알아서 설치된다. 가상화로 인해 설치가 많이 편해졌다.
- type 선택
- instance 유형을 선택한다.
- 메뉴에서 직접 체크박스를 선택해 사용할 수도 있고, 드롭박스에 instance 패밀리, 세대를 선택 가능하다.
- 프리티어 사용 가능한 항목들은 확인 후 선택. 돈은 별로 안나가지만 느리다.
- CPU 크레딧이라는 용어를 쓴다.
- T2라지 사이즈의 EC2를 4대정도 갖고 있으면 아무거솓 안해도 하루에 10불정도 나갈 수 있다.
- 검토 및 시작은 빠르게 시작하기 위해 나머지 설정을 default로 선택하는 것이다.
- ‘다음’ 을 클릭하여 인스턴스 세부정보를 선택한다.
- 인스턴스 세부설정
- 인스턴스 개수를 원하는 만큼 만들 수 있다. 자동으로 IP, ID, MAC등 각각 할당해준다.
- 우리가 생성한 네트워크가 있다면 어떤 네트워크에 올릴지 선택 가능. 현재 만들어진 네트워크가 없으면 default 네트워크 하나 선택가능
- 서브넷 설정하지 않으면 랜덤하게 아무데나 들어간다. default 네트워크는 subnet이 4개가 잡혀있다. 2개 이상의 instance 통신과 관련
- public IP는 subnet의 설정을 가져와서 설정하거나(서브넷 사용 설정) 그냥 설정(활성화)하거나 선택 가능
- 도메인, IAM 선택 가능
- 절전모드 및 종료 방지 옵션을 선택 가능하다.
- 검토 및 시작은 다음 옵션을 생략하는 기능이다.
- 스토리지 추가
- OS가 붙는다는 이야기는 스토리지가 붙는다는 이야기이다.
- 리눅스 서버일 때 VM에 붙는 기본 스토리지는 8GB이다. 윈도우는 기본 30GB이다.
- 볼륨 유형도 선택 가능. 범용 SSD가 보통이고, 프로비저닝된 IOPS는 속도가 빠름. 마그네틱은 느림
- 스토리지 암호화도 가능
- ‘새 볼륨 추가’ 버튼으로 추가 스토리지 선택 가능
- ‘디바이스’ 열에서는 이름을 선택하는 것이다. 리눅스에서는 mount할 때 사용할 이름이다.
- ‘종료시 삭제’ 옵션으로 EC2종료시 스토리지는 삭제를 안할수도 있다.
- 태그 추가
- VM을 다수로 만들면 태그를 남겨서 검색/관리가 용이하도록 만들어 줄 수 있다.
- 태그는 key-value값으로 지정이 가능하며 2개 이상도 설정 가능하다.
- 보안그룹 구성
- 인스턴스에 대한 트래픽을 제어하는 방화벽 규칙 세트
- AWS자체의 방화벽이 따로 있고 종류도 많지만 instance마다 방화벽이 또 따로 존재한다.
- 새로만들면 이름, 설명에 기본값을 채워준다.
- 보안그룹은 inbound 규칙을 설정하는 것
- 기본 규칙으로 RDP(remote desktop protocol)이 있는데, 이를 제거하면 instance로 접속할 방법이 없다.
- 소스에 0.0.0.0/0은 default라 한다. 누구나 붙을 수 있다는 의미. 누구나 IP만 알면 붙을 수 있지만 key가 없으면 접속이 불가능하도록 되어있음
- 검토 및 시작
- 설정한 내용들을 모두 보여준다.
- 각종 경고들이 뜰 수 있다.
- 시작하기 선택시 public key, private key 설정팝업 생성됨.
- 기존 key를 입력하거나 새로 생성할 수 있음
- 키 페어를 생성하고, 키페어 이름을 설정한 후 다운로드를 하면 .pem파일(private key)가 다운로드 된다.
- 다운받은것을 확인한 후 시작을 누르면 된다. key가 없으면 instance 접속이 안되니 꼭 확인하도록 한다.
- 생성이 완료되면 대기중으로 표시되어 있다. 이후 실행중으로 변경됨
- 완료 후 인스턴스 창으로 가면 생성된 내용이 있다.
- t2.large는 속도가 빨라 생성이 빠르게 되었다. 성능이 좋지 않으면 pending이 있을 수 있음.
- private key는 AWS management control에서 다시 받을 수 있는 방법은 없다. 분실한 경우 instance를 새로 생성해야됨.
RDP를 이용한 window 서버 접속
- 생성한 EC2에 이름을 설정 가능하다. 이름을 설정하면 자동으로 태그에도 Name:{이름} 이 기록된다.
- window에서 기본으로 제공하는 원격 데스크톱 파일로 접속 가능하다.
- IP주소, port 입력, key 입력 등 작업이 필요
- 생성한 EC2를 선택하고 상단 작업중 ‘연결’을 선택한다. (원하는 EC2에 우클릭을 해도 된다.)
- RDP 클라이언트를 선택한다.
- 세션 매니저는 window와 linux용이 아니라 RDP 클라이언트를 선택한다.
- 원격데스크톱 파일을 다운로드 받는다.
- 암호 가져오기로 이전에 다운받아놓은 private key를 불러온다. ‘암호해독’ 버튼을 눌러 해독을 진행
- 개인키를 바당으로 생성된 암호가 콘솔에 확인된다. 암호를 복사 후 취소를 눌러 창을 끈다.
- (4)에서 받은 파일을 실행시켜준다. 일반 ‘원격 데스크톱’ 앱에서 기본 정보가 세팅된 형태로 제공된다.
- 아까 복사한 암호를 넣고 인증서 처리를 한 후 확인을 누른다.
정보 확인
- 원격 데스크톱 창이 열리면 최초 접속이라 window가 각종 설정들을 수행하는 작업을 한다.
- 데스크톱 우측 상단에 EC2 정보가 떠있다.
- cmd창에서 IP를 확인해보면 우측상단 정보와 동일하다.
- disk management를 열어보면 붙여준 스토리지가 확인된다.
- 데스크톱 우측 상단에 EC2 정보가 떠있다.
- 원격 데스크톱 창이 열리면 최초 접속이라 window가 각종 설정들을 수행하는 작업을 한다.
디스크 설정
- 추가된 스토리지는 확인은 되는데 기본으로 offline이다.
- 우클릭을 하여 online으로 바꿔주고, 다시 우클릭을 하여 MBR기반으로 initialize 시켜준다.
- 다시 우클릭을 하여 new simple volume을 선택해 볼륨을 지정해 준다.
- 완료해 주면 정상적으로 디스크가 연결되고 동작한다.
인스턴스 종료(terminate)
윈도우 종료로 instance를 끌 수도 있지만, management console을 통해 종료도 가능하다.
instance를 선택 후 상단 작업에서 ‘인스턴스 상태’ -> ‘종료’ 작업을 클릭한다.
종료시키면 경고문이 뜬다. 확인을 누르면 ‘종료중’ 상태로 돌입하며 잠시 후 삭제된다.
종류 후에도 ‘종료됨’ 으로 변경되는데 이 상태도 오랫동안 유지된다.
instance 생성시 우리는 기본 볼륨 + 추가볼륨을 선택했는데, 기본 볼륨은 instance삭제시 함께 삭제되도록 했고, 추가볼륨은 유지하도록 했다.
좌측 메뉴의 Elastic Block Store -> ‘볼륨’을 선택하면 instance를 삭제하고도 볼륨이 하나 남아있음을 확인 가능하다.
볼륨도 선택하여 ‘작업’ -> ‘삭제’ 작업으로 삭제 가능하다.
종류 후 instance 대시보드로 들어가면 보안그룹은 그대로 유지됨을 확인할 수 있다.
보안그룹, 키페어 등 완전히 삭제되지 않는 요소들이 있다.
요금확인
- CPU가 돌지 않으면 요금이 발생하지 않는다.
- 검색창에 billing을 검색하면 대금 서비스로 들어가면 비용을 확인할 수 있다.
- instance 생성, 삭제에 대해서는 크게 비용이 발생하지 않고 연산을 수행하면 그때 과금이 된다.
Linux 서버 생성
instance 생성
- AMI 선택
- AmazonLinux2 AMI 는 아마존에 최적화된 debian계열 리눅스.
- 아마존에 필요한 설정들이 기본적으로 세팅된 이미지이다.
- 타입 선택
- 세부설정
- 스토리지 추가
- 기본으로 8GB 제공한다. 윈도우 30GB와 차이.
- 태그
- 보안그룹
- 기존에 생성된 보안그룹이 있다면 불러와서 사용도 가능하다.
- 검토 및 확인
- 확인을 누르면 키페어 설정이 가능하다.
- 기존 키페어를 사용할 수도 있다.
- 생성이 완료되면 대기중으로 표시되어 있다. 이후 실행중으로 변경됨
- AMI 선택
서버 접속
- 리눅스 서버는 ssh 프로토콜로 접속이 가능하다. 로컬 PC가 윈도우라면 putty를 통해 접속하자.
- 리눅스에서 접속할 시, 아래 명령어로 접속 가능
ssh -i "AWS_EC2_KEY.pem" ec2-user@ec2-3-34-96-253.ap-northeast-2.compute.amazonaws.com
- ppk(putty private key)생성
- putygen을 실행하여 기존의 private key(.pem)를 putty에서 사용가능한 key(.ppk)로 변경한다.
- ‘conversation’ -> ‘import key’ -> ‘save private key’
- 비밀번호를 설정해서 만들 수 있지만 경고가 떠도 그냥 생성도 가능하다.
- ppk(putty private key) 가 생성된다.
- putty로 접속
- 좌측 메뉴의 ‘connection’ -> ‘Auth’ 항목에서 Private key file for authentication 항목에서 ppk를 불러와 넣는다.
- 편의설정
- Window->Appearance: font크기
- Terminal->Bell: 소리없음
- Terminal->Keyboard:backspace key = control-H
- management consol에서 해당 instance를 클릭해 퍼블릭 ipv4 주소를 확인해 복사해온다.
- putty에 IP를 넣고 연결한다.
- putty security alert가 발생하지만 무시하고 accept를 누르면 된다.
- 기본 ID는 ’ec2-user’ 이고, 비밀번호는 없다.
키페어 가져오기
로컬에서 이미 사용하고 있던 key를 가져와서 서버에 적용하는 기능
public key를 붙여넣으면 AWS에서 관리하는 key를 생성함
key 생성 알고리즘과 key 길이가 이미 규정되어있는 경우 직접 생성해서 사용해야 할때 이렇게 사용하면 된다.
- key 생성
- puttygen을 실행하여 generate 버튼을 누르면 마우스 움직임을 기반으로 랜덤 키를 생성해 준다.
- key 생성
instance를 이미지로 제작
AMI를 이용하여 instance를 백업
백업할 instance에 우클릭 -> 이미지 탬플릿 -> 이미지 생성
좌측 메뉴의 ‘이미지’ -> ‘AMI’ 항목을 선택하면 위에서 선택한 instance가 이미지로 생성되고 있다. 시간이 소모되는 작업
생성된 이미지에 이름을 붙여준다. AWS에서 객체를 생성하면 이름을 붙여주는게 좋다. 나중에 찾기도 편하고 알아보기도 쉬워진다.
이미지를 생성하지 않고 instance 자체를 복사할 수는 없다.
백업한 AMI 다른 리전으로 이동
- 이동할 AMI에 우클릭 -> AMI 복사 선택
- 원하는 리전을 선택하여 복사를 수행한다.
- 완료 후 management console의 현재 지역을 이동한 위치로 이동하면 이미지가 보인다.
백업한 AMI를 다른 계정으로 전달
- AMI에 우클릭 -> 이미지 권한 수정 선택
- 계정 번호를 입력하면 다른 계정으로 이미지를 전달할 수도 있다.
custom AMI로 EC2 시작
- 원하는 AMI를 선택하고 우클릭 -> ‘시작하기’ 선택
- 기존에 EC2 생성 단계와 동일
볼륨 생성
- 볼륨 메뉴에서 ‘볼륨생성’ 버튼을 선택한다.
- 스냅샷은 현재 생성된 instance의 스냅샷 정보가 보이는 것이다.
- 세팅을 하여 생성하면 available이 보인다.
볼륨 연결
- 생성된 볼륨에 우클릭을 하여 ‘볼륨 연결’을 선택하면 볼륨을 붙일 수 있다.
- ‘인스턴스’항목에는 볼륨을 붙일 instance의 ID를 찾아서 넣는데, AWS에서 자동으로 적어준다.
- ‘디바이스’항목값은 instance에 붙었을 때 가지는 경로이다.
- 알맞은 형태로 포멧을 수행한다. :
sudo mkfs -t ext4 <파일시스템경로>
- 마운트 :
sudo mount /dev/sdf /mnt
- 확인 :
df -h
- 언마운트 :
sudo umount /mnt
스냅샷 생성
- 스냅샷은 백업의 목적으로 만들어진 개체
- 볼륨 항목에서 생성된 볼륨을 우클릭하여 스냅샷 생성을 선택한다.
- 생성된 스냅샷은 스냅샷 목록에서 확인 가능하다.
스냅샷으로 볼륨 생성
- 스냅샷 선택하고 우클릭하여 ‘볼륨생성’ 선택
- 생성된 볼륨은 available 상태로 대기상태
스냅샷으로 이미지 생성
스냅샷을 우클릭하여 ‘이미지 생성’ 선택
확인을 누르면 ‘AMI’ 항목에 새로운 이미지가 available 상태로 생성된다.
생성된 이미지가를 실행하면 EC2로 실행된다.
만약 root 시스템이 담기지 않은 볼륨을 스냅샷으로 만들어 이미지로 만든것이라면, 제대로 실행되지 않는다.
일반적으로 EBS만 이미지를 만드는 용도의 storage
EFS나 S3로는 root 파일 시스템을 만드는 용도로는 잘 사용하지 않는다.
리전간 이동
인스턴스나 볼륨은 리전간 이동이 안된다.
스냅샷이나 AMI 형태로 전달은 가능하다. 스냅샷은 백업용도, AMI는 인스턴스 생성용도로 약간 용도는 다르다.
스냅샷 목록에서 원하는 스냅샷 선택, 우클릭, 복사 선택. 대상 리전을 선택
해당 리전에 스냅샷이 이동된다.
S3서버 백본 속도 테스트
-http://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html 경로에서 확인 가능
S3 서버 생성
- 검색창에 S3를 검색하여 진입
- ‘버킷’ 메뉴에서 ‘버킷 만들기’ 버튼을 클릭하여 버킷 생성
- 내용 설정
- 버킷 이름 설정. unique 한 이름을 지정해야 한다.
- 리전 선택
- 퍼블릭 엑세스 설정
- 퍼블릭 엑세스 차단을 해제하면 경고문에 확인 체크를 넣어준다.
- 생성 버튼을 클릭하면 생성 완료
- 폴더 생성
- 버킷 안에도 폴더를 생성하여 경로를 만들 수 있다.
- 생성된 버킷을 클릭하여 진입한다.
- ‘폴더 만들기’ 버튼을 클릭하여 폴더를 생성한다.
파일 업로드
- 생성된 버킷에 진입. 필요하면 폴더 내부로 진입
- 원하는 파일 및 폴더를 선택하여 업로드
- S3 URI(Uniform Resource Identifier) : S3에서 실제 파일이 있는 위치를 URI로 표현
- 객체 URL(Uniform Resource Locator): 외부에서 S3로 접근하여 파일을 확인할 수 있는 정확한 위치값(가상hosting 기반 URL)
- 객체 public으로 설정
- 표시된 URL 경로로 들어가면 접속 권한이 없어 Access Denied 화면이 뜬다.
- 버킷이 public이어도 내부 객체들을 public으로 지정해 두어야 외부에서 접속할 수 있다.
- 버킷에 진입하여 원하는 객체를 선택한 후 ‘작업’ 버튼을 클릭하여 ‘퍼블릭으로 설정’ 을 눌러주어야 외부에서 접근이 가능해진다.
- AWS는 default로 private설정을 가져가는것이 정책이다.(S3뿐 아니라 instance, storage도)
- 객체 삭제
- 객체를 선택하고 ‘삭제’ 버튼을 선택한다.
- AWS에서는 삭제 후 이상이 생길 수 있는 경우에 대비해 서명하듯이 직접 입력하는 과정이 있다.
- 버킷 생성시 버전관리를 수행하도록 체크했으면 영구삭제가 불가능하다. ‘삭제’=‘삭제 태그 기입’ 에 해당한다.
- 버전관리를 하지 않으면 ‘삭제’=‘영구삭제’ 에 해당한다.
Local 파일 백업
- IAM (Identity and Access Management)
- 사용자 생성, 권한 설정, 비밀번호 설정, 조직 생성 등 작업 수행 가능한 메뉴
- IAM 시스템에 진입한다.
- ‘사용자’ 메뉴로 진입한다.
- 설정을 원하는 사용자를 선택하여 진입
- MFA : Multi Factor Authentication : OTP같은 추가 인증 수단을 설정
- 엑세스 키 생성
- ‘엑세스 키 만들기’ 버튼을 클릭하여 키를 생성한 후 다운로드
- 엑세스 키는 CSV 파일로 제공된다.
- 다운받은 엑세스 키는 Aws CLI를 사용할 때 필요하다.
- Aws CLI 실행
aws configure
명령 실행- 이전에 받은 csv파일에서 AWS Access Key ID, Secret Access Key 기입
- default region : ap-northeast-2
- default output format : json
- 명령어를 통해 백업 폴더 설정
aws s3 sync {로컬위치} {s3버킷 URI}
- ex)
aws s3 sync backup_local s3://fastswimmingapple/backup/
- ex)
- S3 서버 해당 버킷의 위치로 찾아가서 새로고침을 하면 업로드 됨을 확인할 수 있다.
정적 웹사이트 호스팅
- 버킷을 생성한다.
- public 연결을 허용하여 만든다.
- 생성된 버킷을 선택하여 진입한다.
- ‘속성’ 항목에서 ‘정적 웹사이트 호스팅’ 항목을 찾아 ‘편집’을 클릭한다.
- 정적 웹사이트 호스팅을 활성화 시켜주고, default 페이지를 설정해 준다.
- 웹사이트 hosting 외에 redirect도 수행해 줄 수 있다.
- 설정을 완료하고 다시 ‘속성’ 항목에서 웹사이트 호스팅 내용을 보면 URL이 적혀있다.
- URL로 접속하면 403 Forbidden이 뜬다. index.html이 없고 public이 아니라서 그렇다.
- index.html을 넣고 public으로 설정해 주면 정상적으로 접속이 된다.
Cloud Front 연동
버킷을 생성하고, 데이터를 넣어둔다.
CloudFront 서비스를 검색, Distribution 메뉴에 진입한다.
‘Create Distribution’ 선택
- (1)에서 생성한 버킷을 설정한다.
- 원하는 설정을 조정하고, 마지막 ‘settings’의 ‘Default root object’에 html 이름을 입력한다.
생성을 완료하면 distribution메뉴에서 생성된 내용을 확인 가능하다.
- Last Modified : deploying은 업로드 진행중을 뜻하고, 업로드가 완료되면 완료된 날짜가 뜬다.
생성된 distribution에 들어가 distribution domain name을 복사한다.
복사된 url을 사용하여 (1)에서 생성한 버킷의 원하는 데이터를 참조할 수 있다.
- 그냥 버킷의 url을 사용하면 S3에서 가져오는 것이고, Cloud Front의 URL을 사용하면 CloudFront를 거쳐서 오는 경로이다.
Cloud Front에서 distribution 선택, ‘create invalidation’선택, refresh할 파일의 절대 경로를를 입력하면 즉시 refresh 할 수 있다.
- index.html을 S3에 적힌 주소를 열어도 Cloud Front가 설정되어 있다면 Cloud Front를 통해서 내용을 받아온다.
EFS 생성 및 연동
- EFS 생성
- EFS이름 설정, 사용할 VPC 선택(없으면 default), 가용성 선택(리전 및 AZ설정)
- EC2에서 보안그룹 설정
- 이름 설정, VPC 선택, 인바운드 규칙 설정
- EFS 설정
- 생성된 EFS 선택하여 진입
- ‘네트워크’ 탭 선택 후 ‘관리’ 버튼 클릭
- ‘탑재대상’ 리스트에 EFS가 생성된 리전의 AZ들이 보인다. AZ들’보안그룹’ 은 모두 삭제 후 (2)에서 생성한 보안그룹을 설정해 준다.
- 연결
- 생성된 EFS를 선택한 화면에서 ‘연결’ 버튼을 클릭
- 팝업창에서 DNS/IP 에 따른 탑재 방법을 선택가능하다.
- DNS를 사용하면 명령어 한 줄로 mount를 시킬수 있고(
sudo mount -t efs -o tls fs-d81999b8:/ efs
) - IP를 사용하면 NFS 클라이언트 사용하여 AZ마다 일일이 연결해 줘야한다.
- EC2 생성
- 생성시 (3)인스턴스 구성 옵션에서 ‘퍼블릭IP자동할당’=활성화, 파일시스템을 추가, 위에서 생성한 EFS 선택
- EFS 연결 경로는 /mnt/efs/fs1 으로 설정
- 보안그룹도 이미 생성했으므로 보안그룹 자동 생성 체크박스를 해제
EC2 접속하여 EFS 접속 확인
df -h
명령으로 확인하면 /mnt/efs/fs1 경로에 파일 시스템이 mount된 것을 확인할 수 있다.- 해당 파일 시스템 안에 내용을 수정하면 즉각적으로 다른 EC2에서도 수정된 것을 확인 가능하다.
이미 생성된 EC2에 EFS 시스템을 적용
sudo mkdir -p /mnt/efs/fs1
로 디렉터리를 생성한다.sudo mount -t efs -o tls fs-d81999b8:/ /mnt/efs/fs1
명령어로 생성한 디렉터리에 파일시스템을 mount를 해주면 된다.- 단, 기본 AMI에는 EFS 툴이 없기 때문에
sudo yum install -y amazon-efs-utils
명령어를 통해 EFS 툴을 설치하고 위 명령어를 수행해야 한다.
mysql instance 실행
- RDS 검색하여 진입, 데이터베이스 메뉴에서 생성 클릭
- 엔진유형 선택, 버전 선택
- 성능에 따라 템플릿 선택, 클래스 설정
- DB 접근을 위한 ID/비밀번호 설정
- 서브넷 그룹 필요에 따라 설정
- 외부 접근이 필요한 경우 public access 설정
- 보안그룹을 새로 만들면 3306 mysql 포트가 새로 설정된다.
- DB 인증은 암호에 추가로 다른 인증방법을 넣을 수 있다.
- 생성에 5분정도 시간이 소요된다.
- workbench 실행
- mysql DB에 접속이 가능한 Client 프로그램
- workbench 프로그램 홈 화면의 Mysql Connections 의 +버튼을 클릭한다.
- 혹은 상단 메뉴의 Database -> connection를 선택한다.
- 생성된 RDS의 정보창에서 엔드포인트, 포트를 확인하고 입력란에 host 정보를 기입한다.
- RDS 생성시 설정한 DB 계정 이름과 비밀번호를 입력하여 접속한다.
- workbench에서 쿼리 실행
- 접속에 성공하면 새로운 탭이 뜬다.
- 각종 쿼리를 활용하여 DB를 조작한다.
- ex)
show databases; use mysql; show tables; select * from db; desc db;
- ex)
mysql RDS 수정
- 원하는 RDS 항목을 선택하고 ‘수정’ 버튼을 클릭한다.
- 생성시 설정한 대부분의 내용들을 수정할 수 있다.
- 간혹 설정이 변경되면 에러가 나는 경우가 있는데, 이는 AZ가 해당 설정을 지원하지 않는 경우이다.
- 프리티어를 선택하였을 때 발생할 수 있는 문제이다.
RDS 삭제
- 삭제시 스냅샷을 남길지, 자동 백업 기능을 남길지 등을 선택한다.
- 지울시 복구가 불가능한 경고문을 확인하였음을 체크하고 삭제가 가능하다.
DynamoDB 생성
- dynamoDB 검색 후 진입
- ‘테이블 만들기’ 선택
- 테이블 이름 설정
- 파티션키, 정렬키 설정(대소문자 구분)
- 생성된 테이블 선택 후 ‘항목’ 탭 선택
- ‘항목 만들기’ 선택 후 내용 기입하면 된다.
- +를 눌러서 추가 데이터 기입 가능
- 파티션키와 정렬키는 필수
- Append : 뒤에 이어붙이기
- Instert : 위에 이어붙이기
- 항목만들기 한번에 ‘항목’ 하나가 생성된다.
DynamoDB 검색
- ‘항목’ 탭에서 UI를 통해 쿼리를 만들어 항목을 검색할 수 있다.
- 다른 key를 이용해 ‘인덱스’ 탭에 들어가 ‘인덱스 생성’을 클릭한다.
- 새로운 파티션키와 정렬키를 추가로 정의하고(GSI), 이를 이용해 검색을 할 수 있다.
- GSI(global secondary index): 테이블 생성시 정의한 파티션키와 정렬키 외에 다른 속성으로 만든 key
- key 정의시 ‘타입’도 영향을 준다.
- ex)문자열과 숫자는 ‘항목’ 탭에서 표기되는 내용은 같아도 실제로는 다른 값이므로 검색시 다르게 필터링될수 있다.
- 새로운 파티션키와 정렬키를 추가로 정의하고(GSI), 이를 이용해 검색을 할 수 있다.
VPC 생성(마법사)
- VPC 메뉴 검색 및 진입
- 좌측 메뉴에서 ‘탄력적IP’ 선택, IP를 할당
- public IP=공인IP, 탄력적IP=고정IP
- 할당받은 IP를 직접 연결하거나 instance 생성시 연결 가능
- VPC 대시보드 메뉴로 진입, ‘VPC마법사 시작’ 선택
- 원하는 구조에 따라 선택 사항을 선택한다. 우측에 그림으로 잘 묘사되어 있다.
- VPC는 논리적인 것임으로 원한다면 계속 추가할 수 있다.
- 선택 후 public 및 private instance 이름 및 가용영역을 설정하고, 위에서 할당받은 탄력적IP를 기입해 주면, 해당 IP를 이용한 VPC가 생성된다.
- 시간이 약간 걸릴 수 있다.
- 대시보드에서 이전과 비교하면 라우팅테이블, 서브넷, 인터넷 게이트웨이, 네트워크 ACL, 보안그룹 등이 신규로 추가됨을 확인할 수 있다.
VPC 생성(수동)
탄력적 IP 생성
- 일반적으로는 public IP (공인IP)를 사용하여 외부와 통신을 할 수 있지만, 탄력적IP는 사설IP를 외부 IP로 연동시키기 위해 사용하는 것
VPC메뉴로 이동, VPC 생성
- VPC만 생성하여 시간이 별로 걸리지 않는다.
- 내부 구성이 아무것도 없는 상태
서브넷으로 이동, 서브넷 생성
- 서브넷은 원하는만큼 생성 가능하다.
- 원하는 VPC를 선택하고, 주소 및 이름 입력하여 생성
인터넷 게이트웨이로 이동, 인터넷 게이트웨이 생성
- 게이트웨이는 물리적인 구조이고 가지고 있는 정보가 별로 없다. 연결만 시켜주면 알아서 동작하는 개체
- 생성하면 게이트웨이는 detached되어있다. VPC에 연결이 필요하다.
생성된 게이트웨이를 클릭하여 VPC에 연결
- 우클릭하여 VPC에 연결 선택
- 원하는 VPC 선택(게이트웨이가 없는 VPC만 보여진다)
- 연결 후에는 attached로 표기가 변경된다.
NAT 게이트웨이 항목으로 이동, NAT게이트웨이 생성
- 서브넷을 설정해 준다. NAT는 public 서브넷에 연결되어 private 서브넷이 외부와 통신할 수 있게 하는 용도이다. 위에서 생성한 public 서브넷에 설치해야 한다.
- 위에서 생성한 탄력적 IP를 선택한다. (사용되지 않은 IP만 보여진다.)
- NAT 게이트웨이는 사설IP를 공인IP로 변경시켜준다.
- 생성을 완료하면 pending으로 되어있다. 라우팅테이블을 생성해 연결을 해주어야 available이 된다.
라우팅 테이블 항목으로 이동, 라우팅 테이블 생성
- 라우팅 메뉴에 진입하면 생성하지 않았지만 우리가 위에서 생성한 VPC에 대한 라우팅 테이블이 기본적으로 있다.
- VPC는 자체가 사설망이기 때문에 생성과 동시에 라우팅 테이블을 갖는다. 자동으로 생성된 라우팅 테이블은 private망으로 보면 된다.
- 우리가 추가로 생성할 라우팅 테이블은 public용 라우팅 테이블이다.
- 라우팅 테이블을 설정할 VPC 선택하여 생성
- 생성된 public 라우팅 테이블을 클릭하여 세부정보에서 라우팅 선택, 라우팅 편집 선택
- public 라우팅 테이블은 0.0.0.0/0에 대해 ‘인터넷 게이트웨이’로 라우팅을 해주어야 한다. 알맞게 설정해 준다.
- VPC생성시 자동으로 할당된 private 라우팅 테이블을 선택, 라우팅 선택, 라우팅 편집 선택
- 0.0.0.0/0 에 대해 ‘NAT 게이트웨이’로 연결되도록 설정 후 저장
- 라우팅 메뉴에 진입하면 생성하지 않았지만 우리가 위에서 생성한 VPC에 대한 라우팅 테이블이 기본적으로 있다.
서브넷에 라우팅테이블 적용
방법1) public 라우팅 테이블의 세부 정보에서 서브넷연결 선택, 서브넷 연결 편집 선택
- 이용가능한 서브넷 리스트에서 public용으로 만든 서브넷을 선택하고 연결저장
- 선택한 서브넷은 이제 public 라우팅 테이블이 적용된다.
방법2) 서브넷 메뉴에서 설정을 원하는 서브넷을 선택하고 세부정보에서 라우팅테이블 선택, 라우팅테이블 편집 선택
- 위에서 편집한 라우팅테이블을 찾아 서브넷에 적용한다.
-> 서브넷 설정이 완료되면 NAT게이트웨이 메뉴로 진입하면 위에서 생성한 NAT게이트웨이가 available 상태로 변경된 것을 확인할 수 있다.
peering을 통한 서브넷간 연결
- VPC 서비스에서 좌측 메뉴 중 ‘피어링 연결’ 메뉴 진입, 피어링 생성
- 현재 리전에서 연결할 VPC 선택
- 연결할 상대 VPC 선택(리전 및 사용자 설정)
- 상대방 vpc의 VPC ID 를 복사해서 기입해 준다.
- peering 생성
- peering을 요청한 계정-리전의 VPC 서비스에서 ‘피어링 연결’ 메뉴로 진입
- (1)에서 요청한 내용이 떠있음을 확인하고 우클릭하여 수락을 진행한다.
- 라우팅 테이블에 peering 주소 추가
- peering을 한 각 VPC의 라우팅 테이블 메뉴에 진입하여, 연결한 서브넷에 적용된 라우팅 테이블을 선택, 세부정보의 ‘라우팅’ 메뉴에 들어가 라우팅 테이블 편집
- 서로 상대방의 주소를 입력하고, 피어링 타입으로 추가한다.
EC2 instance 생성하여 테스트
퍼블릭 IP를 활성화 한다.
보안그룹 설정시 ‘모든그룹’ 에 대해 ‘모든프로토콜’, ‘모든 포트’에 대해 peering 상대방 주소를 입력해 준다.
- 리전이 바뀌면 다른 리전에서 사용된 key를 사용할 수 없다. 새로 생성해야 한다.
반대쪽 peering 대상에서도 마찬가지로 동일한 설정으로 생성을 한다.
putty로 접속하여 각각 ifconfig로 사설IP주소를 확인한 후 서로 사설IP로 ping을 날려본다.
- ping이 정상적으로 간다면 성공
- subnet을 잘못 설정하거나 보안그룹 설정을 잘못한 경우 정상적으로 ping이 날아가지 않을 수 있다.
보안그룹 설정
- ssh 접속 제한
- 원하는 instance 를 선택하여 해당 instance에 적용된 ‘보안그룹’을 찾는다.
- 해당 보안그룹으로 가서 inboud rule을 편집한다.
- 기본으로 주어진 ssh 프로토콜 rule을 제거하면 ssh로 접속이 되지 않는다.
- 원하는 IP로만 ssh 접속을 할 수 있게 ssh프로토콜에 ‘내 IP’ 로 rule을 추가한다.
- 현재 접속된 컴퓨터로만 ssh가 접속이 된다.
route53으로 도메인 등록
route53 서비스 검색 후 접속
원하는 도메인 네임 검색하여 가격 확인 후 구매 진행
- 구매는 1년단위로 연장할 수 있으며, 구매시 개인정보입력 및 이메일 인증이 필요하다.
- 같은 이름이라도 prefix에 따라 (.com, .net 등)비용이 다르다.
- 구매한 name서버를 다른 name서버 서비스에 옮겨서도 1년간 사용할 수 있다. ※구매한 도메인 이름을 ‘mydomain.com’ 이라고 가정한다.
‘호스팅영역’ 메뉴로 진입하여 ‘호스팅영역 생성’을 진행한다.
- 도메인 이름에 mydomain.com을 입력하고 퍼블릭호스팅영역 설정으로 생성하면 된다.
- 이미 동일한 이름의 호스팅영역이 있다면 따로 만들지 않고 그대로 사용하면 된다.
- 동일한 이름이 두 개 이상 있을 경우 로직이 꼬일 수 있으므로 추천하지 않는다.
- 도메인 안에서는 레코드를 추가할 수 있다. 레코드란 주소를 저장하는 방식/내용에 따라 분류된다.
- NS : 도메인의 네임서버 레코드
- SOA : 도메인 관련 정보,권한 관리 레코드
- A : IP주소와 도메인 네임을 저장하는 레코드
- CNAME : 도메인네임을 도메인네임과 저장하는 레코드
- 호스팅영역을 생성하면 NS(Name Server), SOA(Start of Authority) 레코드가 기본으로 생성되어 있다.
- 도메인 이름에 mydomain.com을 입력하고 퍼블릭호스팅영역 설정으로 생성하면 된다.
S3와 route 53 연동
S3서버 생성
- 웹서버용 S3 생성
- 버킷 이름을 mydomain.com 으로 설정한다.
- 버킷 생성 후 속성->정적웹사이트호스팅
- 웹사이트 호스팅 활성화, 호스팅 유형=정적웹사이트호스팅
- 메인페이지를 index.html로 설정
- 리다이렉션용 S3 생성
- 버킷 이름을 www.mydomain.com 으로 설정한다. (원한다면 www대신 다른 것으로 넣어도 된다)
- 버킷 생성 후 속성->정적웹사이트호스팅
- 웹사이트 호스팅 활성화, 호스팅 유형=객체에 대한 요청 리다이렉션
- 호스팅 이름 설정에 ‘mydomain.com’ 기입
-> 본 S3서버의 주소로 접속하면 ‘mydomain.com’으로 접속된다.
- 웹서버용 S3 생성
A_레코드 생성
- 웹 호스팅용 S3서버에 도메인 주소를 연결하는 작업이다.
- route 53 시스템에서 ‘호스팅 영역’메뉴로 진입
- ‘호스팅 영역’ 메뉴에서 위에서 생성된 호스팅 영역을 선택하고 ‘레코드 생성’ 을 클릭한다.
- S3서버의 이름이 레코드 이룸과 같아야 한다. 레코드 이름 앞에 suffix를 붙일 수 있는데, 우리는 ‘mydomain.com’ 앞에 suffix가 없으므로 생략한다.
- 레코드 유형=A-IPv4
- 트래픽라우팅 대상 설정에서 ‘별칭’ 모드로 설정하여 ‘S3웹사이트 엔드포인트에대한 별칭’ 선택, 리전선택, (1)에서 생성한 웹호스팅용 S3 선택
- mydomain.com 으로 접속시 웹호스팅 S3서버의 index.html이 보여진다.
CNAME_레코드 생성
- 리다이렉션 S3서버에 도메인 주소를 연결하는 작업이다. 리다이렉션 S3서버는 이미 자신의 주소를 가지고 있다.
- route 53 시스템에서 ‘호스팅 영역’메뉴로 진입
- ‘호스팅 영역’ 메뉴에서 위에서 생성된 호스팅 영역을 선택하고 ‘레코드 생성’ 을 클릭한다.
- 레코드 이름에 prefix로 ‘www’를 넣어준다. S3서버의 이름이 레코드 이룸과 같아야 한다. 레코드 이름 앞에 suffix를 붙일 수 있는데, S3서버의 이름과 동일해지도록 한다. (www대신 다른 이름을 적었다면 알맞게 기입)
- 레코드 유형=CNAME
- ‘별칭’ 토글을 off한다.
- 값에 리다이렉션용 S3 주소를 입력한다. (‘http://‘는 제외하고 www부터 입력한다.)
- www.mydomain.com으로 접속시 리다이렉션 S3를 통해 웹호스팅 S3서버의 index.html이 보여진다.
-> 웹호스팅용 S3서버는 CNAME 레코드 생성이 안됨에 주의한다.
ELB 생성
VPC 서비스를 검색하여 서브넷 메뉴로 진입, 서브넷 2개 생성(public1, public2)
- 이름 및 가용영역 설정, IPv4 CIDR 설정
라우팅 테이블 메뉴로 진입, 라우팅테이블 생성
- 생성된 라우팅테이블 선택 후 세부 속성에서 ‘서브넷 설정’ 선택, 서브넷연결 편집 실행
- 생성된 서브넷 선택하여 세부 속성에서 라우팅 테이블 탭을 선택하면 안됨, 이는 기본적으로 생성된 내부 연결을 위한 라우팅 테이블이다.
EC2 서비스 검색 후 EC2 메뉴로 진입, EC2 instance 2개 생성
- 위에서 조작한 VPC, 서브넷을 설정한다. (한개는 public1, 한개는 public2 서브넷을 선택한다)
- 퍼블릭IP 자동 할당=활성화
각 EC2에 웹서버 구성
sudo yum install httpd
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo groupadd www
sudo usermod -a -G www ec2-user
reset
cd /var/www
sudo chown -R root:www /var/www
sudo chmod 2775 /var/www/html
cd html
vi index.html
후 적당한 내용 작성(EC2-1, EC2-2 서로 내용 다르게)
ELB 생성
- EC2 서비스 메뉴에서 로드벨런서 메뉴를 찾아 진입한다.
- Application 로드밸런를 생성한다.
- VPC를 선택하고, 가용영역에서 subnet을 선택한다.
- 보안 설정 구성은 보안 관련 서비스인데, 따로 설정하지 않아도 된다.
- 보안그룹을 선택해 주고, 라우팅 구성 창으로 넘어간다.
- 라우팅을 구성하면, 원하는 프로토콜에 대해 LB를 수행할 수 있다.
- 인스턴스를 대상으로 하고, HTTP 프로토콜에 80번 포트를 대상으로 한다.
- 고급 상태 검사 설정에서 업데이트 간격 등을 설정할 수 있다.
- 대상 등록 창에서 LB를 원하는 instance를 선택한다. instance는 앞서 선택한 subnet안에 있는 것들만 보여진다.
- 원하는 인스턴스 선택 후 추가를 누르면 대상그룹에 인스턴스가 추가된다.
대상그룹에 대상 등록(ELB생성시 5번을 하지 않은 경우)
- 생성이 완료되면 ‘대상그룹’ 메뉴에서 생성한 그룹을 확인할 수 있다.
- 방금 생성된 그룹을 선택하여 registerTarget를 수행한다.
- available instances들에서 원하는 인스턴스를 선택하여 ‘Include as pending below’, ‘Register pending targets’ 를 눌러준다.
- 대상그룹의 상세 속성에서 Health status를 확인했을 때 initialize에서 healthy로 변경되면 정상적으로 수행된 것이다.
결과 확인
- 로드밸런서를 들어가면 DNS주소가 생성되어있음을 확인할 수 있다.
- 해당 DNS 주소를 입력해 http로 접속하면 라운드로빈에 의해 EC2-1, EC2-2의 웹페이지 내용이 번갈아가며 보임을 확인할 수 있다.
- 인스턴스 하나를 종료시키고 대상그룹 메뉴에서 그룹을 선택하면 ‘health status’가 healthy에서 unused로 바뀜을 확인할 수 있다.
- 이때는 DNS로 접속을 해도 하나의 EC2로만 접속됨을 확인할 수 있다.
sticky session
- 대상그룹에서 원하는 그룹을 선택 후 ‘Attributes’ 탭으로 진입해 수정을 누른다.
- Stickiness라는 메뉴가 확인되면 체크표시를 해 준다.
- 설정을 완료하면 DNS주소로 접근할 때 새로고침을 해도 최초 접속한 instance에 계속 접속됨을 확인할 수 있다.
- ALB는 쿠키 기반으로 세션을 잡아준다.
- stickiness 설정시 duration을 설정할 수 있는데, 접속 후 duration 만큼 시간이 지나면 다른 instance로도 접근이 가능해진다.
Auto Scaling
- EC2 서비스를 검색하면 auto scaling 메뉴를 확인할 수 있다.
시작구성 생성
- 시작구성 생성 메뉴를 선택해 진입한 후 시작구성 생성을 클릭한다.
- AMI 설정 : 내 AMI 혹은 market place에 해당하는 AMI를 검색해서 선택할 수 있다. 하지만 market place 이미지도 내 이미지로 당겨와서 넣는게 더 편함
- 인스턴스 유형 설정 : t2 micro로 선택한다. t2 micro로 해야 성능이 낮아 부하가 걸릴 수 있고, AZ에 영향을 받지 않고 아무곳에서나 생성이 가능하다.
- CloudWatch 모니터링을 체크한다.
- 보안그룹을 선택할 때 새로 생성하는 옵션은 없다. 기존 보안그룹을 선택한다. (보안그룹은 VPC에 의존적이다. 이후 인스턴스를 생성할 VPC에 해당하는 보안그룹을 정의해 줘야한다.)
- 시작구성 생성 메뉴를 선택해 진입한 후 시작구성 생성을 클릭한다.
auto scaling 그룹 생성
- auto scaling 그룹 메뉴를 선택해 진입, auto scaling 생성 클릭
- 시작탬플릿 혹은 구성 선택
- 시작 탬플릿을 설정해야 한다. 하지만 우리는 탬플릿을 만든적이 없다. 탬플릿 대신 구성으로 변경해 설정할 수 있다.
- 시작구성으로 전환을 선택하여 (1)에서 생성한 시작구성을 선택한다.
- 시작 탬플릿을 설정해야 한다. 하지만 우리는 탬플릿을 만든적이 없다. 탬플릿 대신 구성으로 변경해 설정할 수 있다.
- 설정 구성
- VPC는 디폴트 VPC를 선택한다. 사설 VPC를 선택하면 오류가 날 가능성이 있다(?)
- 로드밸런서를 연결해서 사용할 수도 있다. 보통은 같이 가지만 지금은 없이 설정한다.
- 고급 옵션 구성
- 상태 확인 항목에서 로드 체크 주기를 설정한다.
- CloudWatch 모니터링 체크를 한다. 4)그룹크기 및 조정 정책 설정
- 최대,최소,기본 크기(EC2개수)를 설정한다.
- 조정정책을 사용함으로 설정하고, CPU 사용량에 따른 추적을 설정한다.
- 알림 설정
- 부하가 발생할 때 알림이 오도록 설정할 수 있다.
- 태그설정
결과 확인
- EC2를 만들지 않았다. 대상 설정을 따로 하지 않았다. 하지만 Auto scaling 그룹에 들어가서 생성된 그룹을 클릭, 인스턴스 관리 탭을 들어가면 생성된 인스턴스가 있다. healthy상태의 pending 인 인스턴스가 있다.
- 시간이 지나 pending이 inService가 되면 정상적으로 세팅된 것이다.
- 인스턴스 메뉴로 들어가면 인스턴스가 생성됨을 확인할 수 있다.
- EC2 생성할 때, ‘인스턴스 구성’ 단계에서 auto scaling을 설정할 수도 있다.
강제 부하 생성, EC2 추가생성 확인
- 생성된 instance에 putty로 진입하여 아래 명령어 입력
sudo amazon-linux-extras install -y epel
sudo yum install -y stress
stress -c 1
- 생성한 그룹에서 모니터링 탭을 선택하면 현재 상태를 그래프로 확인할 수 있다. 최소 1시간단위밖에 안돼서 즉시 보기는 힘들다.
- 인스턴스 탭에서 인스턴스가 늘어났는지 확인한다. 지표를 60초 단위로 주었으니 auto scale에서 의사결정을 하여 scale out을 수행할 것이다.
- 인스턴스가 두개로 늘어났다면, 다시 putty로 돌아가 stress process를 Ctrl+C로 종료시키고, auto scale에 의해 scale in 되는것을 다시 확인한다.
- 활동 탭에 들어가면 auto scaling 동작에 대한 로그가 남아있다.
- 생성된 instance에 putty로 진입하여 아래 명령어 입력
Cloud Formation
- 검색창에 Cloud formation 검색 후 서비스 진입
- EC2 stack 생성
- 업로드할 template파일 생성
- *.template 이름으로 파일을 생성한다.
- AMI, instance type 등 세부 설정을 기입한다.
- 상세 내용은 샘플 파일을 참조한다.
- 탬플릿에는 stack에 대한 상세 설정이 묘사된다.
- 스택 메뉴를 선택하여 스택생성(새 리소스 사용)을 선택한다. 이후 준비된 템플릿 옵션을 선택하고 파일을 업로드 한다.
- 탬플릿을 디자이너로 만들거나 AWS에서 가져올 수 있는데, 우리는 탬플릿을 업로드하여 사용하도록 한다.
- 파일을 업로드하면 S3 URL이 생긴것을 확인 할 수 있는데, 이는 우리가 올린 stack 탬플릿을 S3에 자동으로 버킷이 만들어져서 업로드 된 것임을 알 수 있다.
- 스택 세부정보 입력
- 파라미터에 keyPair 이름을 넣어야 한다. 우리가 생성했던 key 이름과 같아야 한다. 현재 내가 만든 key를 보려면 ‘EC2’ 서비스에서 ‘네트워크 및 보안’ -> ‘키페어’ 를 참조한다.
- 스택 옵션 구성
- IAM에서 우리가 만들 stack이 수행할 수 있는 권한을 지정해 놓은 set을 미리 만들어 놓을 수 있는데, 지금은 그냥 넘어간다.
- 업로드할 template파일 생성
- 생성이 완료되면 상세 정보창으로 들어가진다.
- ‘이벤트’에서는 로그를 볼 수 있고,
- ‘리소스’에서는 생성된 객체들을 확인할 수 있다.
- EC2 서비스의 인스턴스를 확인해도 새로 생성된 인스턴스를 확인할 수 있다.
- S3 서비스에서 버킷 메뉴를 확인하면 cf-templates… 형태의 버킷이 확인된다. 우리가 올린 탬플릿이 든 버킷이다.
- 웹서버 stack 생성
- EC2생성 + 아파치 설치까지 적힌 탬플릿을 구성한다.
- (1-1)에서 수행한 내용을 동일하게 수행
- 인스턴스가 생성되고 해당 인스턴스의 퍼블릭IP로 진입하면 아파치 메인화면이 보임을 확인할 수 있다.
IAM
- 이전에 보안key pair를 만들었을 때 IAM을 사용하였었다. IAM -> 사용자 -> 보안자격증명 -> 액세스 키 에서 우리가 생성한 키 확인 가능
그룹 생성
- IAM 서비스에서 사용자그룹 메뉴에 진입, 그룹 생성 클릭
- 이미 생성한 사용자가 있다면 그룹 생성과 동시에 사용자 추가 가능
- 권한정책에서 원하는 권한을 검색, 체크하여 부여
사용자 생성
- 사용자 메뉴에 진입하여 사용자 생성 클릭
- 이름을 지정하고, 액세스 유형, 비밀번호 설정 후 다음
- 그룹에 사용자 추가를 클릭하고 다음
- 마지막 단계에서 생성한 내용에 대한 csv파일을 다운받을 수 있다. 이메일로 내용이 전송되게 할 수도 있다.
- 생성한 상세 메뉴에서 ARN 주소를 확인할 수 있는데, 이쪽으로 접근하면 자동으로 로그인 화면으로 접근된다.
사용자 권한 추가
- 생성 완료된 사용자를 클릭하면 상세 내용중 ‘권한’ 탭에서 ‘권한추가’ 버튼을 클릭해 추가 가능
- 사용자 생성시와 같이 원하는 권한을 검색, 추가할 수 있다.
- 부여한 권한 삭제는 상세정보의 ‘권한’ 탭에서 부여된 권한을 확인하고, 해당 row의 오른쪽 끝 X표시를 누르면 권한이 해제된다.
-> 사용자 변경하여 인스턴스 생성시 권한이 없는 항목에 대해서는 생성이 불가능함을 확인 가능
역할 생성
- AWS 개체들이 수행할 수 있는 작업을 규정한다.
- IAM서비스에 접속하여 역할 메뉴 진입, 역할 만들기 선택
- 여러 종류들 중 원하는 개체 유형을 선택한다. (AWS서비스)
- 원하는 권한을 선택(보기에서는 S3서버 전체 권한) 후 다음
- EC2를 생성하여 해당 역할을 할당
- 인스턴스 생성중 (3)인스턴스 구성 단계에서 IAM역할에 위에서 생성한 role을 설정한다.
- 인스턴스 생성
- 인스턴스에서 권한 확인
- putty로 인스턴스 접속 후 아래 명령어 수행
aws s3 ls s3://hooon.com
-> (OK)aws --region ap-northeast-2 dynamodb scan --table-name UserLeaderboard
-> (AccessDeniedException)
Cloud watch
- 인스턴스에 cloud watch 설정
- 인스턴스를 선택하여 ‘모니터링 및 문제해결’ -> ‘세부 모니터링 관리’ 진입, 모니터링 활성화 후 저장
- Cloud watch에서 알람 설정
- Cloudwatch 서비스에서 ‘경보’ -> ‘경보상태’ 메뉴 진입, 경보생성 클릭
- 지표 선택을 누르면 각 개체별 모니터링 가능한 지표들을 볼 수 있다.
- EC2를 선택 후 CPU utilization를 검색, 원하는 인스턴스의 CPU utilization 항목을 선택
- 해당 지표의 값에 대한 감지 조건 및 감지 사이클을 설정해 준 후 다음 클릭.
- 앞서 설정한 조건에 해당하면 어떤 조치를 취할지 설정
- 알람을 받을 메일 설정(이메일 인증도 있음)
- 어떤 알림을 보낼지 ‘주제’를 설정. 일반적인 주제를 보낼수도 있고, 새로운 주제 생성도 가능. 완료 후 다음 클릭
- EC2에 들어가 부하를 발생하면 지정된 메일로 경보가 날아옴을 확인할 수 있다.