IAM 권한 설정
우선 배포에 필요한 몇 가지 권한들을 설정해야 한다. IAM 서비스에 접속해, "기존 정책에서 권한 추가"를 통해 다음의 권한들을 추가해준다.
•
CloudFrontFullAccess
•
AmazonS3FullAccess
AWS CLI 설치 및 설정
AWS CLI 설치 매뉴얼을 참고해 AWS Client를 설치하자. 이는 콘솔을 통해 AWS 작업을 처리할 수 있게 해 주는데, 나중에 이를 통해 매우 간단하게 배포를 실행할 수 있기 때문에 깔아두도록 하자. 물론 AWS Client를 통하지 않아도 배포는 가능하다.
설치가 완료되었다면, 다음의 명령어를 통해 유저를 추가해 주자.
aws configure --profile [user_name]
AWS Access Key ID [None]: [유저를 생성할 때 다운받은 .csv 파일에서 붙여넣는다]
AWS Secret Access Key [None]: [유저를 생성할 때 다운받은 .csv 파일에서 붙여넣는다]
Default region name [None]: ap-northeast-2
Default output format [None]: json
Shell
복사
S3 버킷 생성 및 설정
AWS의 S3 서비스에 접속하여, 고유한 이름을 입력한 후 버킷을 생성해준다. 이 때, 퍼블릭 액세스 차단을 해제하도록 하자.
버킷이 생성된 이후에 해당 버킷에 접속해 권한 - 버킷 정책에 다음과 같은 코드를 설정해주자.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:BucketList",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::[BUCKET_NAME]",
"arn:aws:s3:::[BUCKET_NAME]/*"
]
}
]
}
JSON
복사
그 후 속성에서 정적 웹 사이트 호스팅을 클릭한 후 해당 버켓을 이용해 정적 웹 사이트를 호스팅하기로 하고, 기본 페이지와 오류 페이지에 모두 index.html을 입력한다. 물론 오류 페이지는 다른 것을 설정해도 좋다.
배포
이제 프로젝트 루트 디렉토리에서 다음 명령어를 실행하여 프로젝트 코드를 S3로 배포할 수 있다. 계속 이용해야 하는 귀찮은 코드이니 프로젝트의 package.json의 scripts에 추가해 두자.
aws s3 sync ./build s3://[BUCKET_NAME] --profile=[AWS_CLI_USER_NAME]
Plain Text
복사
E.O.D.