반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

가끔 보자, 하늘.

서버리스 서비스 예제 - 03 [S3에 도메인 연동하기] 본문

개발 이야기/인프라 구축 및 운영

서버리스 서비스 예제 - 03 [S3에 도메인 연동하기]

가온아 2020. 5. 8. 13:07

이 글의 일부는 AWS 공식 문서( 링크 )를 참고하였습니다. 단계별 상세 내용은 해당 문서를 참고하시기 바랍니다.

 

1. 도메인 등록하기

- whois.co.kr 등에서 도메인을 먼저 구매하세요.

 

도메인 네임은 알파벳과 숫자, 그리고 -(하이픈) 으로 구성할 수 있습니다. 도메인은 단순한 조합이 아닌 계층적인 구조로 이루어집니다. 

 

helloworld. co. kr(실제 생성 하실 때는 각자 원하는 이름으로 사용해야 합니다.)로 예를 들어보면... 

 

kr은 1단계로 최상위 도메인으로 국가도메인(kr, us 등)을 나타냅니다.

co는 2단계로 해당 도메인을 운영하는 기관의 성격을 나타냅니다.(co: 기업 , or:비영리기관 등)

helloworld 는 3 단계로 도메인 네임을 사용하는 기관이나 개인이 원하는 이름을 등록합니다. 

1단계의 종류에 따라 계층이 다를 수 있으며, 대표적으로 com 을 사용할 경우 1/2단계만으로 구성되기도 합니다.

위 예에서 없는 프로토콜, 예를들어 www, ftp 등은 발급된 도메인을 어떻게 활용할지에 따라 사용할 수 있습니다. 

 

이 1단계 종류의 인기에 따라 각 도메인 발급 기관은 가격을 다르게 측정하기도 합니다.

참고로 whois의 경우 io의 경우 1년 기준으로 6만원대이고 com의 경우 2만원대입니다. 

 

이후 등록인 정보 / 연장 책임자 정보를 입력 후 결제를 하면 해당 도메인을 소유할 수 있습니다. 

 

 

2. S3에 서비스를 위한 버킷 생성하기

 

S3에 helloworld.co.kr이라는 이름의 루트 도메인 버킷과 www.helloworld.co.kr이라는 이름의 서브 도메인 버킷을 만들어 보겠습니다.

 

루트 도메인 버킷에는 실제 컨텐츠를, 서브 도메인 버킷에서는 루트  도메인으로 리디렉션 되도록 설정해야 합니다. 

 

먼저 루트 도메인 버킷을 생성합니다. AWS S3 Console로 접속해서 helloworld.co.kr라는 이름으로 새로운 버킷을 생성합니다. 생성 시 컨텐츠로 사용될 파일들에 대해서는 퍼블릭 액세스를 허용하기 위해 "모든 퍼블릭 액세스 차단"을 해체하고 생성합니다. 

 

생성이 되었다면 버킷의 "속성" 탭으로 가서 "정적 웹 사이트 호스팅" 을 선택 후 아래와 같이 설정합니다. 해당 탭의 상단에 있는 엔드포인트는 여러분의 컨텐츠로 접근할 수 있는 주소입니다. html 컨텐츠를 업로드 후 이 주소로 접속하여 확인할 수 있습니다. 개인적으로 사용하거나 제한된 용도로 사용할 때는 별도의 도메인 설정없이 이 endpoint만을 사용할 수도 있습니다.

다음으로 "www.helloworld.co.kr"이라는 이름으로 서브 도메인 버킷을 만듭니다. 이 버킷은 루트 도메인 버킷으로 리디렉션하는 용도로 사용합니다. 버킷 생성 후 "정적 웹 사이트 호스팅" 설정에서 "요청 리디렉션"을 선택 후 루트 도메인 버킷 명을 입력하고 프로토콜에는 http를 입력하면 됩니다. 

공식 문서에는 "웹 사이트 트래픽용 로깅 구성"이 있지만, 추후 "구글 애널리틱스"를 예정이기 때문에 이 부분은 넘어가겠습니다. 필요하신 분들은 공식 문서를 참고하세요.

 

이제 "index.html"파일을 생성 후 아래 코드를 삽입합니다. 

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>My Website Home Page</title>
</head>
<body>
  <h1>Welcome to my website</h1>
  <p>Now hosted on Amazon S3!</p>
</body>
</html>

이 파일을 "루드 도메인 버킷"에 업로드합니다. 

파일 추가 후 "다음" 버튼을 누르고 속성 중 "퍼블릭 권한 관리"에서 "이 객체에 퍼블릭 읽기 엑세스 권한을 부여함"을 선택 후 "업로드"버튼을 선택하여 컨텐츠 업로드를 완료합니다. 

파일 업로드를 할때마다 이렇게 지정할 수도 있지만 버킷의 정책을 변경하는 방법도 있습니다. 버킷의 "권한" -> "버킷 정책"을 눌러 아래 정책을 복사해서 넣고 저장하시면 helloworld.co.kr 에 업데이트되는 모든 컨텐츠를 누구나 읽을 수 있게 됩니다. 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::helloworld.co.kr/*"
            ]
        }
    ]
}

 

이제 "루트 도메인 버킷"의 엔드포인트와 "서브 도메인 버킷"의 엔드포인트로 접근을 테스트 해보시기 바랍니다. 두 엔드포인트 모두 "루트 도메인 버킷"의 index.html의 내용을 출력한다면 모두 정상적으로 성정된 것입니다.

 

이제 등록한 도메인을 "루트 도메인 버킷"으로 연결되도록 설정해 보겠습니다.

 

3. 도메인 연결하기

 

다시 whois로 돌아가 "내 도메인 자산 관리" 화면에서 "루트 도메인 버킷"으로 연결할 도메인을 선택 후 화면 하단의 "포워딩 서비스"를 선택합니다. 

"루트 도메인 버킷"의 엔드 포인트를 복사해 포워딩 URL에 복사해서 넣은 후 "주소창에 도메인명 유지"를 선택해야 합니다. 

"주소창에 포워딩 URL 표기"를 선택하면 도메인 주소를 입력 후 aws s3의 엔드포인트 주소를 주소창에 출력하게 됩니다.

 

금일 내용 중 "서브 도메인 버킷"을 같이 만들었는데 이어지는 다음 글에서 사용될 예정입니다. 

 

그럼 다음 글에서 다시 뵈요!!

 

 

반응형