๋ฐฐํฌ
ํน์ IP๋ ๋๋ฉ์ธ ๊ฐ์ ๊ณ ์ ์ ์ฃผ์๋ฅผ ๋ถ์ฌ๋ฐ์ ๋ค๋ฅธ ์ปดํจํฐ์์๋ ๊ทธ ์ฃผ์๋ก ์ ์ํ ์ ์์
๋ค๋ฅธ ์ฌ์ฉ์๋ค์ด ์ธํฐ๋ท์ ํตํด ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ
AWS
Amazon Web Services, ์๋ง์กด์ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค
S3
AWS์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ ์๋น์ค
- ํ์ผ ์ ์ฅ ๋ฐ ๋ค์ด๋ก๋ : ๊ตฌ๊ธ ๋๋ผ์ด๋ธ, icloud์ ๊ฐ์ ์๋น์ค์ ๋น์ทํจ
- ์น ํธ์คํ
๊ธฐ๋ฅ : s3๋ฅผ ํตํด์ ์นํ์ด์ง๋ฅผ ๋ฐฐํฌํ ์ ์์
์๋ฒ๋ก๋ถํฐ html, css, js ์ด๋ฏธ์ง ํ์ผ ๋ฑ์ ๋ค์ด๋ก๋ํด์ผ ํ๊ธฐ ๋๋ฌธ์ s3์ ์ด์ฉ
๋ฒํท
- s3์ ๋ชจ๋ ๊ฐ์ฒด๋ ๋ฒํท์ ์ ์ฅ๋จ
- s3์์๋ ์ฌ๋ฌ ๊ฐ์ ์ ์ฅ์๋ฅผ ๋ง๋ค ์ ์์ ⇒ ๊ทธ์ค ํ๋์ ์ ์ฅ์๋ฅผ ๋ฒํท์ด๋ผ๊ณ ํจ
* ๊ฐ์ฒด : s3์ ๋ฒํท์ ์ ๋ก๋๋ ํ์ผ์ ์๋ฏธ
์ค์ต
S3์์ ๋ฒํท ์ ํ ๋ฐ ๋ฒํท์ ์ ๋ก๋ํ๋ ๊ฐ๋จํ ์ค์ต์ด๋ค.
์ฌ์ ์ค๋น
ํ์๊ฐ์ : https://www.lainyzine.com/ko/article/how-to-create-an-amazon-web-services-account/
์ ๋ธ๋ก๊ทธ ์ฐธ๊ณ
์ด์ ๊ณต์ ํ์ด์ง๋ก ๋ค์ด๊ฐ๊ธฐ
https://ap-northeast-2.console.aws.amazon.com/s3/get-started?region=ap-northeast-2
๋ฒํท ์ ํ
1. ๋ฒํท ๋ง๋ค๊ธฐ ํด๋ฆญ
2. ๋ฒํท ๋ง๋ค๊ธฐ
- ๋ฒํท ์ด๋ฆ : ๋์ค์ ์์ ํ ์ ์์ผ๋ฏ๋ก ์ผ๋จ ์์๋ก ์ ํจ์ฑ ๊ฒ์ฌ์๋ง ๋ง๊ฒ๋ ์์ฑํด ์ฃผ๋ฉด ๋๋ค.
- ๊ฐ์ฒด ์์ ๊ถ : ๊ทธ๋ฅ ์ ๋๋ก ๋ด๋ฒ๋ ค๋๊ณ ํจ์ค
- ๋ฒํท์ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ ์ค์
: ์ต๋ช ์ ์ฌ์ฉ์๊ฐ ์ ๊ทผ์ ํ ์ ์๋์ง ์๋์ง
=> s3์ ์ ์ฅ๋ ํ์ผ์ ์กฐํํ ์ ์๋์ง ์๋์ง
=> ์ฆ ํ์ด์ง์ ์ ๊ทผํ๊ธฐ ์ํด ํ์ํ ํ์ผ๋ค์ ๋ค์ด๋ก๋ํ ์ ์๋์ง๋ฅผ ์๋ฏธํจ => ํ์ด์ง๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด ์ฐจ๋จ์ ํด์ ํด์ผ ํจ!
๊ทธ ์ธ ์๋ ์ค์ ๋ค์ ๊ธฐ๋ณธ ์ค์ ๋๋ก ๊ทธ๋๋ก ๋๊ณ ๋ฒํท ๋ง๋ค๊ธฐ ํด๋ฆญ
3. ๋ฒํท ์ ์ฑ ์ถ๊ฐ
AWS์์๋ ์ ์ฑ ์์ json ๋ฌธ์๋ฅผ ์์ฑํด ๊ถํ์ ๋ถ์ฌํจ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์์ ์ํด ๊ถํ์ด ์๋ ์ํ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์๋์ผ๋ก ๊ถํ์ ํ์ฉํด์ค์ผ ํจ
* ์์์์ ๋ฒํท๊ณผ ์ด๋ฆ์ด ๋ค๋ฅธ ์ด์ ๋... instagram-web์์ ๊ทธ๋ฅ ์ค๋ ๋ ์ง๋ก ์ด๋ฆ์ ๋ฐ๊ฟจ๋ค..
1) ๋ฒํท ํด๋ฆญ -> ๊ถํ ํญ ํด๋ฆญ -> ๋ฒํท ์ ์ฑ -> ํธ์ง ํด๋ฆญ -> ์ ๋ฌธ ์ถ๊ฐ ํด๋ฆญ
2) ํํฐ๋ง์์ S3 ๊ฒ์ ํ ์ฒดํฌ -> GetObject ๊ฒ์ ํ ์ฒดํฌ
3) ๋ฆฌ์์ค ์ถ๊ฐ
์์ ์ถ๊ฐ ๋ฐ๋ก ์๋์ ์๋ ๋ฆฌ์์ค ์ถ๊ฐ ํด๋ฆญ ํ ๋ฆฌ์์ค ์ ํ์ object๋ก ์ ํํ๋ฉด ๋ฆฌ์์ค ARN ๊ฐ์ด ์ฒซ๋ฒ์งธ ์ด๋ฏธ์ง์ฒ๋ผ ๋์ค๊ฒ ๋๋ค.
{BucketName}์ ๋ด ๋ฒํท ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ , {ObjectName}์ ์ผ๋จ์ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๋ค ํ์ฉํ๋ค๋ ์๋ฏธ๋ก *๋ก ๋์ฒด
๋ค ํ์ผ๋ฉด ๋ฆฌ์์ค ์ถ๊ฐ ํด๋ฆญ
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ์ฑ ์ ์๋ ์ฝ๋์์ "Principal"์์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ค๋ ์๋ฏธ๋ก "*"์ผ๋ก ์์
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Principal": "*",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::250526-web/*"
]
}
]
}
์ด์ ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ ํด๋ฆญ!
4. ์น ํธ์คํ ์ค์ ํ๊ธฐ
๊ฐ๋จํ๊ฒ ํ์ฌ ์๊ฐ์ ํ์ํ๋ html ํ์ผ ํ๋๋ฅผ ์์ฑํ๋ค.
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>S3์ ์
๋ก๋ํ๊ธฐ</title>
</head>
<body>
<h2>์๋
ํ์ธ์</h2>
<p>ํ์ฌ ์๊ฐ : <span id="time"></span></p>
<script>
// ํ์ฌ ์๊ฐ ์ถ๋ ฅ
const nowTime = document.getElementById('time');
const timer = function () {
const now = new Date();
// paddStart(๋ฌธ์์ด ๊ธธ์ด, (๋น์์ ๊ฒฝ์ฐ)์ฑ์ธ ๋ฌธ์์ด);
const year = now.getFullYear();
const month = now.getMonth() + 1;
const date = now.getDate();
const hour = String(now.getHours()).padStart(2, '0');
const minute = String(now.getMinutes()).padStart(2, '0');
const second = String(now.getSeconds()).padStart(2, '0');
nowTime.textContent = `${year}๋
${month}์ ${date}์ผ ${hour} : ${minute} : ${second}`;
};
timer();
setInterval(timer, 1000);
</script>
</body>
</html>
์ด์ ์ด ํ์ผ์ ์ ๋ก๋ํ๊ณ ์ ํ๋ค.
1) ๋ฒํท ์ ๋ก๋
์ด๋ฒ์ ๊ฐ์ฒด ํญ์ผ๋ก ๊ฐ์ ์ ๋ก๋๋ฅผ ํด๋ฆญํ๋ค
(๋ ธ๋์ ์ ๋ก๋๋ ํ๋์ ํ ๋๋ฆฌ ์ ๋ก๋๋ ๋ณ ์๊ด์๋ค..)
๊ทธ ๋ค์ ํ์ผ์ ๋๋๊ทธ ํ ์๋์ ์๋ ์ ๋ก๋ ๋ฒํผ ํด๋ฆญ
์ ๋์ผ๋ฉด ๋ซ๊ธฐ ๋ฒํผ ๋๋ฌ์ฃผ๊ณ ๋ค์ ๊ฐ์ฒด ํญ์ผ๋ก ๊ฐ๋ฉด ์ ์ฌ๋ผ์์๋ ๊ฒ์ ๋ณผ ์ ์๋ค
2) ์น ํธ์คํ (๋ฐฐํฌํ๊ธฐ)
์ด์ ์์ฑํญ ๋ค์ด๊ฐ์ ์คํฌ๋กค ์ญ ~~๋ด๋ ค๋ณด๋ฉด ์ ์ ์น์ฌ์ดํธ ํธ์คํ ์ด ์๋ค.
์ฌ๊ธฐ์ ํธ์ง ํด๋ฆญํ๋ฉด ์ฐ์ธก ์ด๋ฏธ์ง๊ฐ์ด ๋จ๋๋ฐ
์ ์ ์น์ฌ์ดํธ ํธ์คํ ํ์ฑํ์ ์ฒดํฌ, ์ธ๋ฑ์ค ๋ฌธ์์ index.html์ผ๋ก ์จ์ฃผ๋ฉด ์ด์ ๊ฑด๋๋ฆด ๊ฑด ์๋ค.
์ด์ ์ ์ฅ ๋๋ฅด๊ณ , ๋ค์ ์์ฑ ํญ - ์ ์ ์น ์ฌ์ดํธ ํธ์คํ ์ ๋ค์ด๊ฐ๋ณด๋ฉด ์๋์ ๊ฐ์ด ์๋ํฌ์ธํธ๊ฐ ์์ฑ๋์ด์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ค์ด๊ฐ๋ฉด index.html์ด ์ ๋ฐฐํฌ๋์ด์๋ ๊ฒ์ ๋ณผ ์ ์๋ค!
'AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AWS / ์๋น์ค๋ค ์ ๋ฆฌํ๊ธฐ (0) | 2025.05.29 |
---|---|
AWS / CI/CD (1) | 2025.05.29 |
AWS / ๋๋ฉ์ธ, HTTPS ์ค์ (0) | 2025.05.28 |
AWS / S3, Cloudfront๋ฅผ ํ์ฉํด ๋ฐฐํฌํ๊ธฐ (0) | 2025.05.28 |