수업 50일차 AWS SSH로 인스턴스 접속, AWS CloudWatch, Vargrant 설치, Ansible 구축, SSH로 Git Hub 접속

유동우·2022년 11월 28일
1

인스턴스 만들기
aws08-exercise-instance
내 AMI
aws08-exercise-image
키페어
aws08-key
보안그룹
SSH,WEB

AWS Secrets Manager : AWS에서 제공하는 비밀 값 관리 서비스

먼저 보안자격증명에 권한추가를 해야함

권한추가 - 기존 정책 직접 연결
SecretsManagerReadWrite , AWSKeyManagementServicePowerUser 권한 추가

Secrets Manager - 새 보안암호저장
다른 유형의 보안 암호
admin_password // p@$w0rdsecretkey//secretw0rd secret_key // secret%^

aws08-production/aws-exercise

자동교체비활성화

=======================

■ 비밀 사용하기

SSH로 인스턴스 접속

cd /var/www
rm -rf aws-exercise-a/
git clone https://github.com/deopard/aws-exercise-a.git
cd aws-exercise-a/
git checkout secrets-manager
vi app.js

액세스키,시크릿 액세스키 입력해주고

npm install

sudo service nginx restart

인스턴스 공개키를 도메인주소에 입력하면
결과값이 나옴

======================

■ AWS CloudWatch

AWS CloudWatch는 AWS에서 제공하는 AWS 내 자원과 애플리케이션에 대한
모니터링 및 관리 서비스다.
모든 로그와 지표 정보들을 수집해서 난운에 볼 수 있도록 시각화하는 모니터링 서비스의 역할을 한다

※ ASG : AutoScaling Group의 약자

■ CloudWatch 지표

먼저 보안자격증명에 권한추가를 해야함

CloudWatchEventsFullAccess 권한 추가

SSH로 인스턴스 접속

aws configure
AWS Access Key ID [None]: AKIATX2F25H7WE3ZT4EZ
AWS Secret Access Key [None]: ~~~
Default region name [None]: ap-northeast-2
Default output format [None]: json
aws sts get-caller-identity

{
"Account": "257307634175",
"UserId": "AIDATX2F25H72GORUXTOY",
"Arn": "arn:aws:iam::257307634175:user/aws08"
}

vi test_data.json
https://git.io/JeMFH 에서 코딩값복사해서 붙혀넣기
날짜는 수정해서 저장

aws cloudwatch put-metric-data --namespace "AWS08 Exercise People" --metric-data file://test_data.json

지표확인해보기

실습 환경 정리
cd /var/www
rm -rf cloudwatch-custom/

================================

■ CloudWatch Agent로 메모리, 디스크 사용량 지표, 로그 기록

인스턴스에 IAM 역할 추가

역할추가 AWS 서비스, EC2 - 다음
CloudWatchAgentServerPolicy 정책추가 - 다음

aws08-exercise-cloudwatch-agent-service-role
역할 생성

인스턴스로가서 보안 - IAM 역할 연결/바꾸기

SSH로 인스턴스 접속

cd /var/www
sudo yum install amazon-cloudwatch-agent -y

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
1 - 1 - 2 - 2 - 1 - 2 - 1 - 2 - 4 - 1 - 2 - 2 - 2

sudo amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

sudo amazon-cloudwatch-agent-ctl -m ec2 -a status

CloudWatch - 지표 - CWAgent - Imageld, Instanceld, InstanceType 지표확인

==========================

■ CloudWatch Log에 로그 적재

로그그룹생성 - aws08-exercise-nginx-access-logs

sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json

agent 아래에 추가하기

"logs": {
"logs_collected": {
"files": {
"collect_list":[
{
"file_path": "/opt/nginx/logs/access.log",
"log_group_namd": "aws08-exercise-nginx-access-logs",
"log_stream_name": "{instance_id}"
}
]
}
}
},

sudo amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

sudo service nginx restart

===============================

■ Vagrant 설치

vagrant : 개발 환경 공유와 가상 머신 관리를 위한 커맨드라인 도구

Windows I686 다운로드

설치할때 next로 그냥 설치

재부팅

=============================

Terraform(테라폼) - AWS작업
Ansible(앤서블) - VirtualBox VM
Vagrant(베이그란트) - 가상머신 관리

■ Ansible 작업 환경 구축 연습해보기

Ansible은 리눅스에서만 작업가능
vagrant로 윈도우에서 가상머신 만든후에 Ansible로 작업

Windows PowerShell에 들어가서
cd c:\HashiCorp\

Visual Studio Code켜서 파일 - 작업영역에 폴더추가 - C 드라이버에 HashiCorp 추가

vagrant init // vagrant 사용하겠다고 선언

확장팩에 Ansible , YAML 설치

https://github.com/s4616/aws02/blob/main/02-ansible/first/Vagrantfile 들어가서

복사해서 Visual Studio Code에 Vagrantfile에 붙혀넣기

Windows PowerShell에 vagrant up 치면 Ansible 다운로드 됨

vagrant destroy 로 구축환경제거

============================

■ SSH를 사용해서 Git hub 원격접속해보기

c드라이브 사용자 .ssh폴더에
config를 메모장에 옮겨서

Host github.com
User git
IdentityFiile ~/.ssh/git_client

저장하고

.ssh폴더에 우클릭 Git bash here켜서

ssh-keygen -t ed25519 -C "cjstkehddn11@naver.com"

git_client

엔터

깃허브가서 setting

SSh and GPG keys

new ssh key

이름 : git_client

.ssh 폴더에 git_client.pub를 메모장에옮겨서 나온 공개키를 복사해서 키값에 넣기

Git bash here가서
ssh -T github.com

cd c:/HashiCorp/

git init // 로컬저장소로 지정

※ 연습

HashiCorp 폴더에 .gitignore Git Ignore형식의 파일 만들기
파일안에 HashiCorp폴더에있는 .git폴더를 제외한 폴더를 삽입후 저장

Git bash here켜서
git config --global user.name "Ryu-dongwoo"
git config --global user.email "cjstkehddn11@naver.com"
git config --global --add safe.directory C:/HashiCorp

git remote add origin git@github.com:Ryu-dongwoo/ansible.git

└ origin 뒤에값은 깃허브에 ansible들어가서 ssh주소 복사해서 넣기

git add Vagrantfile
echo "# ansible" >> README.md
git add README.md
git commit -m "first commit"
git branch -M main
git push -u origin main

profile
클라우드 엔지니어가 되고싶은 클린이

0개의 댓글