쌩로그
AWS S3 본문
목차
- 포스팅 개요
- 본론
2-1. S3란?
2-1-1. Standard 클래스
2-1-2. Glacier 클래스
2-2. S3의 이점
2-2-1. 정적 웹 사이트 호스팅
2-3. 버킷
2-3-1. 객체
2-4. S3 구축
2-4-1. S3 버킷 생성
2-4-2. 정적 웹 페이지 파일 업로드
2-4-3. 퍼블릭 액세스 설정
2-4-4. 정책 생성 - 요약
1. 포스팅 개요
S3에 대해 간략히 알아보고 구축하는 방법에 대한 포스팅이다.
1-1. S3가 필요한 이유
현재 나에게 S3가 필요한 이유는 Github Actoins를 이용해서 CI/CD 자동 배포가 되도록 구축하는데,
Github Actions에서 빌드를 진행하고,
빌드된 jar파일은 S3 - CodeDeploy를 거쳐 EC2에서 실행되어 배포되기 때문에 S3가 필요하다. 그래서 S3를 구축하게 되었다.
따라서 S3가 무엇인지 간략하게 알아보고 S3 구축해보도록 하겠다.
2. 본론
2-1. S3란?
- S3는 Simple Storage Service의 약자로 AWS에서 제공하는 클라우드 스토리지 서비스이다.
- S3는 다양한 스토리지를 제공하는데, 어떤 목적으로 활용할 지에 따라 효율적으로 선택할 수 있는 스토리지 클래스가 다르다.
- 대표적으로 많이 선택하는 스토리지 클래스는 두가지가 있는데, Standard 클래스와 Glacier 클래스이다.
2-1-1. Standard 클래스
- 범용적이다.
데이터에 빠른 속도로 접근
할 수 있다.데이터 접근 요청에 대한 처리 속도도 빠르다.
데이터를 오래 보관
하는 경우비용이 높게 발생
한다.
2-1-2. Glacier 클래스
- 오래 보관할 때 높은 비용이 발생하는 Standard와는 다르게 장기적인 보관 목적으로는 효율적인 선택
데이터에 액세스하는 속도는 느림.
- Standard와 달리 데이터를 보관하는
비용은 매우 저렴
2-2. S3의 이점
2-2-1. 정적 웹 사이트 호스팅
- 정적 파일 : 서버의 개입 없이 생성된 파일을 의미
- 웹 호스팅 : 서버의 한 공간을 임대해 주 서비스를 의미
S3는 버킷을 통해서 정적 웹 호스팅을 지원한다..
2-3. 버킷
- 버킷은
S3에 저장되는 파일들이 담기는 최상위 디렉터리
이다. - S3에 저장되는 모든 파일은 버킷 안에 저장되어야 한다.
- 버킷에는
무한한 양의 파일을 저장
할 수 있다. 버킷은 각각의 이름
을 가지는데 이 이름은 버킷이 속해 있는 리전(버킷이 생성되는 지역)에서 고유해야한다.버킷 정책
을 생성하여 버킷에 대한 다른유저의 접근 권한을 수정할 수 있다.
2-3-1. 객체
버킷에 담기는 파일
을 의미키-값 형식으로 데이터가 저장됨.
- S3에 저장되는 객체는
파일
과메타데이터
로 구성됨. - 파일
파일의 키
는객체
를 고유하게 만들어주는식별자 역할
을 한다키
를 이용하여원하는 객체를 검색
할 수 있다.
- 메타데이터
객체를 설명하는 데이터
2-4. S3 구축
이제 S3를 대략적으로 구축해보자!
2-4-1. S3 버킷 생성
S3 버킷에서 버킷 만들기를 해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/c61e5bae-e6e6-4c44-9677-ffeebe1806ef/image.png)
이름을 지정해주는데,
주의 사항이 있다. 이름이 알맞지 않으면 알려주긴 하지만,
- 대문자는 쓸 수 없고, 오직 소문자로만 구성되어야 한다.
- 이름도 아무도 쓰지 않은 고유한 이름을 써야한다.
일단 여기까지 해주고, 화면 최하단으로 이동해서 버킷을 만들어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/d889a232-44cf-4365-a136-7c48bf99a137/image.png)
버킷 이름을 클릭해서 들어가준다.
(화면상 가려놓은 곳이다.)
![](https://velog.velcdn.com/images/tjdtn4484/post/184723a2-af77-415d-bcdd-9b6a9e1ac709/image.png)
속성으로 이동한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/22f5263f-5acf-4807-b80e-ecb531984287/image.png)
페이지 최하단에 정적 웹 사이트 호스팅
탭에서 편집을 클릭한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/8109588b-9715-4527-bb87-4f70f017a3c5/image.png)
비활성화 되어있는 부분을 활성화 해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/fa8fbed4-e60f-496d-9c50-179e2527c6c8/image.png)
활성화를 하면 아래와 같은 화면이 보이는데.
![](https://velog.velcdn.com/images/tjdtn4484/post/f1cdf179-4407-4f0f-819a-4edb4b8a6dde/image.png)
아래의 인덱스 문서 쪽에 기본 페이지로 저장할 정적 파일이름을 지정한다.
일단은 인덱스문서, 그리고 오류가 발생했을 때 렌더링되는 페이지를 둘 다 index.html로 설정해주고, 경 사항을 저장한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/aa137ec0-62ca-4e04-a6af-092843f469af/image.png)
변경 사항을 저장하면, 페이지가 이동하는데,
가장 아래쪽에 정적 웹 사이트 호스팅
을 확인하면, 버킷 웹 사이트 엔드포인트
가 있다.
해당 주소를 누르면, 정적 페이지가 나온다.
![](https://velog.velcdn.com/images/tjdtn4484/post/53500a84-0a6b-419b-8f6b-7ba46ad2e278/image.png)
그런데 지금은 아래와 같은 페이지가 나온다.
![](https://velog.velcdn.com/images/tjdtn4484/post/d86496e0-bcbd-4dda-b55b-c6dbc39e4bf7/image.png)
해당 페이지가 나오는 이유는 다음과 같다.
- 버킷에 정적 웹 페이지 파일을 아직 업로드하지 않았음.
- 퍼블릭 액세스 설정이 모두 차단으로 되어있음.
- 정책 생성을 해주지 않았기 때문.
즉, 이 세 가지를 해결하면, 제대로 된 정적페이지가 나온다.
2-4-2. 정적 웹 페이지 파일 업로드
먼저 정적 웹 페이지 파일 업로드부터 해보자.객체
탭으로 이동한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/a644de00-0d9b-4d42-b86e-e47c3018bfb1/image.png)
업로드를 하는데, 파란글씨는 equal이라고 쓴 건데, 이 둘은 똑같은 거다.
아무거나 클릭해서 업로드를 진행해주면된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/1d273f69-3d6b-4ea4-a474-dca11e1aa238/image.png)
파일을 업로드 할 때 드래그가 가능하다.
✅여기서 주의할 점이 있다.
- 폴더를 넣는 것이 아니라 파일 자체를 넣어주어야 한다는 점을 주의하자!!
![](https://velog.velcdn.com/images/tjdtn4484/post/336440b6-7d5c-4470-8744-6da508c71c82/image.png)
그리고 파일을 올려주면, 아래와 같이 파일이 들어가게된다.(대상은 S3 버킷 이름이 나와서 가렸다.)
업로드를 진행해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/c1e12623-d2d1-49c8-8fbf-857fbf7d9498/image.png)
업로드가 완료되면 화면 상단에 아래와 같은 문구가 나온다.
![](https://velog.velcdn.com/images/tjdtn4484/post/da6c1b41-7de0-4957-b616-3ddc94d659f2/image.png)
2-4-3. 퍼블릭 액세스 설정
다음은 퍼블릭 액세스 설정을 해줘야 한다.권한
탭으로 이동하자.
![](https://velog.velcdn.com/images/tjdtn4484/post/695a3fca-00b7-4a09-ad24-073e6109ff2e/image.png)
퍼블릭 액세스 차단(버킷 설정)이 기본적으로 모두 차단되도록 설정되어있다.편집
을 눌러서 차단을 해제해주자.
편집
- 모든 퍼블릭 액세스 차단 해제
- 변경 사항 저장
순으로 진행해주면된다.
(아래 그림 참고)
![](https://velog.velcdn.com/images/tjdtn4484/post/e9dd8ced-ad77-4da6-bb6b-bdf52e597626/image.png)
![](https://velog.velcdn.com/images/tjdtn4484/post/53e13936-0576-4620-b326-a530b075090e/image.png)
확인도 해준다..;;ㅋㅋ
![](https://velog.velcdn.com/images/tjdtn4484/post/d5d74eed-6e43-4154-ae63-f8a921ccc0d5/image.png)
2-4-4. 정책 생성
이제 정책 생성을 해주면 되는데,
버킷 정책
의 편집
을 눌러준다.
(참고 : 편집 버튼은 화면의 크기에 따라 위치가 달라진다.)
![](https://velog.velcdn.com/images/tjdtn4484/post/c6b43b12-96a6-4b32-8205-c072c5795494/image.png)
정책 생성기로 정책을 생성해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/58fef2a9-79e9-41c7-923b-f62b5f95454e/image.png)
정책 타입을 설정해준다.
S3 Bucket Policy를 선택해주면 된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/43300e98-a354-42b8-a841-59821ec42b2b/image.png)
Principal옵션은 권한을 적용할 사용자를 지정하는 것인데,
일단 모두를 허용하도록 한다.*(Asterisk)
을 입력해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/75ff2b33-ef8c-48d9-a2de-aed452800ae8/image.png)
그리고 Actions에는 GetObject
를 선택해주면된다.
- 이 옵션은 버킷에 접근하는 모든 사용자가 버킷 내에 저장된 객체 데이터를 읽을 수 있게 된다.
- 버킷을 웹 사이트 용도로 구성할 때 선택하면 좋다.
한 가지만 선택했기 때문에1 Action(s) Selected
로 표시된다.
그리고,Amazon Resource Name(ARN)
에는 아래와 같은 형식으로 입력해준다.
> > arn:aws:s3:::버킷이름/*
![](https://velog.velcdn.com/images/tjdtn4484/post/cfbdd42e-1dcb-4a53-84fe-c97b17975bab/image.png)
참고로 /*
전 까지는 버킷 정책 생성기
를 클릭한 곳에 ARN으로 잘 표시되어있다.
(아래 사진 참고)
![](https://velog.velcdn.com/images/tjdtn4484/post/d315e251-a914-4c71-8c0d-91bf6f0279cd/image.png)
그리고 Add Statement
로 정책 구문을 만들고, Generate Policy
를 눌러 정책을 생성해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/ae64da81-a3e2-4d31-8f97-3def991cb5ce/image.png)
그러면 이제 아래에 JSON 형태로 정책 구문이 생성된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/e0db795e-3180-4916-affa-55e7b7aa0ae6/image.png)
이 JSON 구문을 복사해서 정책 편집 창
에 붙여넣기 해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/369bcfe8-81cc-403a-8a8a-e0cfa0ba6cbb/image.png)
그리고 아래에 변경 사항 저장
을 눌러 정책을 적용해준다.
다시 속성
탭의 최하단에 있는는 엔드포인트에서 index.html이 제대로 나오는지 확인해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/4c3ce48e-5b4e-450e-b55b-b7c44e4fbf00/image.png)
![](https://velog.velcdn.com/images/tjdtn4484/post/6b7bd98b-7dea-465d-a3bb-c62a35f0df3a/image.png)
![](https://velog.velcdn.com/images/tjdtn4484/post/8402a5d0-4e9a-4ecd-8671-e55026ff3b88/image.png)
이렇게 화면이 잘 나오는 것을 확인할 수 있다.
3. 요약
S3는 버킷을 이용해서 정적 파일을 업로드하여 정적 파일을 접근하게 해주는 AWS에서 제공하는 기능이다.
그리고 그것을 생성하는 대략적인 방법에 대해 알아보았다...
끝.
내가 성장하는 것이 다른 사람에게 좋은 영향을 줄 수 있다.
그래서 나는 잘 되야만 한다.
나는 진짜 ㄹㅇ 조만간 잘 될 사람이다.
어차피 잘 될 것이고, 지금도 잘 된 사람이다..
요즘 폭풍 성장 중이다.
어쨋든간 나는 어잘될사다.
'Deploy > AWS' 카테고리의 다른 글
AWS CodeDeploy 구축 (0) | 2023.06.29 |
---|---|
IAM 서비스 역할과 사용자 생성 (0) | 2023.06.28 |
AWS 보안 그룹 설정 (0) | 2023.06.27 |
AWS RDS 연결 방법 (0) | 2023.06.13 |
AWS EC2 인스턴스 생성(with 탄력적 IP) (0) | 2023.06.13 |