AWS EC2와 Github Actions로 프론트엔드 CI/CD 구축하기 ( 2 )

이진혁·2023년 1월 29일
3
post-thumbnail

앞 게시물에서 프로젝트를 생성하고 EC2 인스턴스 설정까지 마쳤다.

우리는 이제 EC2에서 돌아갈 우리의 프로젝트에 외부에서 접근하기 위한 도메인을 입혀줄 것이다.

도메인의 경우 다양한 사이트에서 무료 도메인을 발급 받을 수 있지만 나는 '가비아' 라는 사이트에서 도메인을 구입해 입혀줄 계획이다.

가비아에서 도메인을 구입하는 것은 어렵지 않기 때문에 따로 설명없이 가비아에서 도메인을 구입했다는 전제하에 진행하겠다.

EC2 와 도메인 연결하기

Route 53 검색 후 호스팅 영역생성

EC2 인스턴스와 구입한 도메인을 연결하기 위해 우리는 AWS의 Route 53을 이용할 것이다.

AWS에서 Route 53을 검색한 후 DNS 관리의 호스팅 영역 생성을 눌러주자.

호스팅 영역 생성 설정

도메인 이름 칸에 우리가 구입한 도메인을 입력해주고 호스팅 영역 생성 버튼을 눌러주자.

생성한 도메인의 레코드 생성

위의 단계를 통해 호스팅 영역이 성공적으로 생성되었다면 위와 같은 화면이 뜰 것이다.

이제 레코드 생성 버튼을 눌러 레코드를 생성해보자.

레코드 생성 버튼을 누르면 위와 같은 사진이 뜰텐데 여기서

값 인풋칸에 우리가 전에 생성했던 EC2 인스턴스의 퍼블릭 IPv4 주소를 입력하면 된다.

퍼블릭 IPv4 주소값은 우리가 생성한 EC2 ID를 누르면 세부정보에 나와있다.

레코드 생성완료 & 가비아와 연결할 주소 확인

위의 단계가 잘 마무리 되었다면 우리의 레코드에는 총 3개의 레코드가 생성되었을 것이다.

우리는 이제 NS(네임서버) 유형의 레코드를 가비아에서 구입한 네입서버에 등록할 것이다.

가비아 네임서버 편집

가비아 도메인 관리에 들어가면 네임서버를 설정할 수 있는데 Route53 NS 유형 4개를 등록한다.

주의할 점은 Route53 NS 유형의 주소 마지막에 .이 붙어있는데 네임서버에 등록할때는 . 을 뺀 주소를 입력한다.

어차피 .을 붙이고 등록하려고 하면 잘못된 주소라고 나오니 참고하자.

여기까지 무난하게 진행됐다면 나의 EC2 인스턴스와 도메인이 연결되었다고 보면 된다!

다만 구입한 도메인은 2~3일 내에 DNS서버에 등록되니 참고하자.

AWS IAM 설정하기

우리는 지금까지 인스턴스를 생성했고 도메인을 구입해 우리의 인스턴스에 입혀주었다.

이제 AWS의 IAM을 설정해 우리의 인스턴스에 부여할 것이다.

IAM은 AWS의 특정 기능을 사용할 수 있는 권한을 부여받은 사용자를 생성할 수 있는 기능이다.

생성하면 Access Key와 Secret Access Key를 부여받는데, 이를 통해 권한을 부여 받은 AWS 서비스를 사용할 수 있다.

사용자 생성

AWS에서 IAM을 검색해 들어가 왼쪽 패널에서 사용자를 클릭하면 위와 같은 화면이 나온다.

여기서 사용자 추가 버튼을 눌러주자.

사용자 이름은 임의로 지정해도 상관없다.

사용자 이름을 지어줬다면 다음 버튼을 눌러주자.

권한 설정

권한 옵션의 경우 직접 정책 연결을 선택하자.

밑에 권한 정책에서 EC2, S3, CodeDeploy 에 대한 권한을 부여한다.

이 때 FullAccess로 권한을 부여한다.

AmazonEC2FullAccess, AmazonS3FullAccess, AWSCodeDeployFullAccess 를 차례대로 검색해 체크해주고 다음으로 넘어가자.

검토 및 생성

설정을 성공적으로 설정해주었다면 위와 같이 3개의 권한을 갖고 있는 IAM이 생성되었을 것이다.

태그는 혹시 몰라 생성해두었다.

과금이 발생하는 것은 아니니 추가해두고 사용자 생성 버튼을 누르자.

액세스 키 발급

IAM이 성공적으로 생성되었다.

우리는 이제 AWS 서비스에 접근하기 위한 Access key와 Access Secret key를 발급받아야 한다.

생성한 IAM을 클릭해보자.

하단에 보안 자격 증명을 누르자.

보안 자격 증명 탭에서 스크롤을 내리다 보면 액세스 키 탭이 있다.

액세스 키 만들기 버튼을 누르자.

액세스 키 모범 사례 및 대안

CLI를 선택하고 넘어가면 태그 이름을 설정할 수 있는데 옵션이니 그냥 넘어가자.

액세스 키가 성공적으로 생성되었다면 생성이 액세스 키 (Access Key) 와 비밀 액세스 키 (Secret Access Key) 가 발급된다.

csv 파일로 다운받던지 따로 복붙하던지 해서 꼭 저장해두고, 절대로 외부에 노출하지 말자.

EC2 역할 생성

역할은 어떤 서비스를 사용할 수 있는지를 설정해놓은 하나의 자격 (Identity) 이다.

사용자와 매우 유사하지만 차이가 있다.

사용자는 AWS 계정 내에서 생성된 특정 사용자에게만 귀속되는 것이라면, 역할은 이 역할을 부여받은 사용자는 모두 해당 서비스에 접근할 수 있다는 차이가 있다.

왼쪽 패널에서 역할탭을 찾아 들어가 역할 만들기 버튼을 눌러주자.

엔터티 유형 선택

EC2와 관련된 역할이기 때문에 엔터티를 다음과 같이 설정한다.
(AWS 서비스 및 EC2)

권한 추가

IAM 역할 권한 정책에서 EC2, S3, CodeDeploy 에 대한 권한을 FullAccess로 부여해 주었다.

마찬가지로 동일하게 권한을 부여해 주어야 한다.

AmazonEC2FullAccess, AmazonS3FullAccess, AWSCodeDeployFullAccess 를 차례대로 검색해 체크해주자.

권한 경계 설정은 따로 건드리지 않았다.

이름 지정, 검토 및 생성

위의 단계들을 잘 따라왔다면 다음과 같이 화면에 뜰 것이다.

태그는 혹시 모르니 하나 추가해두자.

성공적으로 역할이 생성되었다.

Code Deploy 역할 생성

엔터티 유형 선택

다시 역할 만들기 버튼을 누르고 위의 사진과 같이 설정한다.

엔터티는 그대로 AWS 서비스로 선택하되, 이번에는 사용 사례에서 CodeDeploy를 검색해서 선택하고 다음을 누른다.

권한 추가

권한 정책은 AWSCodeDeployRole로 되어있을 것이다.
그대로 다음으로 넘어가자.

이름 지정, 검토 및 생성

보통 태그는 다른 서비스에서 지금 이 서비스를 사용해야할 때, 이 서비스를 식별하기 위한 용도로 사용한다.

나중에 사용하지 않을 수도 있지만 돈 드는거 아니니까 하나씩 추가해주는 것이 좋을 것 같다.

태그까지 작성했다면 역할 생성 버튼을 눌러주자.

이렇게 총 2개의 역할이 생성되었다.

EC2에 IAM 역할 연결

지금까지 위에서 만들었던 IAM 역할을 우리가 생성한 EC2에 연결해주어야 한다.

먼저 우리 EC2에서 오른쪽 마우스 버튼을 눌러 보안 탭에서 IAM 역할 수정을 누른다.

우리가 만들었던 역할을 선택해주고 IAM 역할 업데이트를 눌러주자.

다음과 같이 역할이 성공적으로 부여되었다.

profile
개발 === 99%의 노력과 1%의 기도

0개의 댓글