[CodeDeploy]CodeDeploy EC2/온프레미스 배포에 대한 로그 데이터 위치

참고: AWS Lambda 또는 Amazon ECS 배포에는 로그가 지원되지 않는다.

개별 인스턴스에 대한 CodeDeploy 배포 로그 데이터를 보려면 아래의 경로를 참고한다. Windows Server를 제외한 Amazon Linux, RHEL, Ubuntu Server 인스턴스에서 확인할 수 있다.

경로: /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log

CodeDeploy가 설치되어 있는 인스턴스에서 CodeDeploy Agent의 로그를 확인하려면 아래의 경로를 확인한다.

경로: /var/log/aws/codedeploy-agent

참고로 CodeDeploy Agent가 설치되어 있는 경로는 /opt/codedeploy-agent 이다.

아래의 명령어를 통해 agent의 상태를 확인할 수 있다.

1
sudo service codedeploy-agent status

[참고]
https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/deployments-view-logs.html#deployments-view-logs-instance-unix
https://americanopeople.tistory.com/284

Share

[CodeDeploy]AWS CodeDeploy 배포 후 bash script 실행하기

AWS의 codeDeploy로 서버에 코드 배포 후 shell script 실행하는 법을 정리한다.

appspec.yml 파일로 codeDeploy의 설정을 할 수 있다. hooks 섹션에 적어주어야 하며 codeDeploy를 통해 app을 설치하기 전 / 후로 작업을 수행할 수 있다. hooks 섹션에는 여러 개의 실행 순서가 있는데 여기를 참고하자.

주의해야 할 점으로는 실행할 쉘 스크립트는 EC2가 아닌 배포하려는 프로젝트 안에 존재해야 한다는 것이다.

appspec.yml 예시

1
2
3
4
5
6
7
8
9
10
11
version: 0.0
os: linux
files:
- source: /
destination: /srv/app

hooks:
AfterInstall:
# EC2경로가 아니라 배포할 소스 코드에 shell script가 있어야 함에 유의!!
- location: scripts/after_deploy.sh
runas: root

[참고]
https://suwoni-codelab.com/aws/2018/03/24/aws-after-script/

Share

[AWS]AWS CLI Tool을 설치하고 기본적인 설정하기

AWS CLI는 커맨드라인 인터페이스 툴로써 cli를 기반으로 AWS의 리소스를 관리할 수 있게 해준다. aws cli를 통해 여러 개의 aws 제품을 사용할 수 있고 스크립트를 통해 자동화할 수도 있다.

설치

기본적으로 AWS CLI는 파이썬으로 만들어져있다. 맥에서는 brew를 통해 편리하게 설치할 수 있다.

1
2
3
4
5
6
7
8
brew update
brew install awscli # 설치

# 업데이트
brew upgrade awscli

# 설치 확인
awscli --v

우분투 리눅스 배포판을 사용중이라면 먼저 파이썬을 설치하고 파이썬의 패키지 매니저인 pip3를 이용하여 설치한다. 개인적으로 pyenv를 사용하는데 awscli의 경우 특정한 가상환경에서 실행되는 것보다 전역적으로 설치되는 것이 낫다고 생각하여 글로벌하게 설치하고 사용한다.

1
2
3
4
pip3 install awscli

# 설치 확인
awscli --v

기본 설정

AWS에 접속하여 관리콘솔을 사용하듯이 awscli에서도 인증 정보를 추가해야 한다. AWS IAM에서 사용자를 생성하여 액세스 키와 시크릿 키를 발급받자. 관리 콘솔을 통해 IAM에 접속하면 아래와 같은 메뉴를 볼 수 있다.

image

사용자 추가 버튼을 누르면 아래와 같은 화면을 볼 수 있는데 사용자 이름을 적고 AWS 엑세스 유형프로그래밍 방식 엑세스를 선택하도록 한다.

image

적절한 권한을 설정하고 사용자 추가를 마무리하면 액세스 키와 시크릿 키를 아래와 같이 받을 수 있다. 엑세스 키는 외부에 노출되어도 되지만 시크릿 키는 안되며 사용자 생성시 한 번만 볼 수 있기 때문에 다른데에 적어 두거나 csv 파일로 받아 두는 것이 좋다. 시크릿키 관리에 유의하자!!!

image

엑세스 키와 시크릿 키를 발급 받았다면 awscli를 사용하려는 환경에 등록해야 한다. 엑세스 키를 등록하는 방법은 두 가지로 첫 번째, configure 명령어를 사용하는 것과 두 번째, 직접 파일을 수정하는 방법이 있다.

1. configure 명령어

configure 명령어를 사용하면 커맨드라인에서 인터렉티브하게 설정을 할 수 있다.

1
2
3
4
5
6
7
aws configure

# 아래의 네 가지를 설정할 수 있다.
AWS Access Key ID # 엑세스 키
AWS Secret Access Key # 시크릿 키
Default region name # 기본 리전
Default output format # 기본 출력 포멧

엑세스 키와 시크릿 키는 IAM을 통해 받은 키 값을 넣으면 된다. region의 경우 사용하고픈 리전을 선택하면 되는데 서울 리전은 ap-northeast-2 을 이용하면 된다.

2. 파일 직접 수정

awscli와 관련된 정보들은 두 가지 파일에 나뉘어서 저장된다.

  • ~/.aws/credentials

credentials 파일에는 인증과 관련된 정보들이 저장되어있다. 대표적으로 aws_secret_access_key와 aws_access_key_id이 저장되어 있을 것이다.

  • ~/.aws/config

인증 관련 정보 이외의 모든 설정이 저장된다.

정리

직접 파일을 만들어서 설정해도 무방하지만 configure 명령어를 사용하면 좀 더 편리하게 할 수 있을 것 같다. 여러 개의 IAM 사용자 계정을 한 번에 사용할 수도 있는데, 이는 추후에 정리할 계획이다.


[참고]
https://aws.amazon.com/ko/cli/
https://www.44bits.io/ko/post/aws_command_line_interface_basic#%EB%A7%A5osmacos

Share