개인 홈페이지 게시하기

ShellBeginner
지금 연습하기

소개

짧은 프로필을 수정하고 SCP로 EC2에 전송하여 실제 웹페이지의 변경을 확인합니다.

앞선 포트폴리오 실습을 먼저 완료하세요. 새 환경에는 앞 단계의 기능과 별도 리소스가 준비되어 있습니다. 이전 서버, 파일이나 자격 증명을 보관할 필요가 없습니다.

자격 시험과 연결

자격 시험 과제 실습 내용
AWS Certified Cloud Practitioner (CLF-C02) Task 3.3 EC2 앱을 운영하며 로컬과 원격 파일을 구분합니다.

실습 개요

짧은 프로필을 수정하고 SCP로 EC2에 전송하여 실제 웹페이지의 변경을 확인합니다.

로컬 프로필 준비하기

이 단계에서는 먼저 Alex Morgan 페이지를 확인합니다. 로컬은 LabEx의 파일, 원격은 EC2의 파일입니다. 로컬 수정은 자동으로 게시되지 않습니다.

프로젝트 폴더로 이동합니다.

cd /home/labex/project

name은 내비게이션과 푸터, headline은 큰 제목, about은 짧은 설명입니다. 원래 프로필은 JSON 문자열 안의 \n으로 줄을 바꿉니다. 연습 제목은 한 줄입니다.

cat profile.json

cat >는 파일에 씁니다. here-document의 JSON 시작과 끝 표식을 모두 복사하여 세 항목을 작성합니다.

cat > profile.json <<'JSON'
{
  "name": "Sam Rivera",
  "headline": "Design with purpose.",
  "about": "Brand identities and digital experiences."
}
JSON

파일을 읽고 값을 확인합니다.

cat profile.json

페이지를 새로고침해도 아직 Alex Morgan입니다. 검사에는 지정된 연습 값을 사용하고 완료 후 개인 문구를 시도할 수 있습니다.

프로필 게시하고 확인하기

이 단계에서는 SCP는 암호화된 SSH 연결로 파일을 전송합니다. ssh_config에 키와 경로가 준비되어 있으므로 비밀 키를 읽거나 복사하지 않습니다.

source로 공개 가능한 식별자를 읽고 PUBLIC_IP를 AWS View와 비교합니다. $PUBLIC_IP는 저장된 값을 사용하고 따옴표로 하나로 묶습니다.

source website.env
echo "$PUBLIC_IP"

-F는 연결 설정, ubuntu는 원격 사용자, 콜론 뒤는 대상 경로입니다. 프로필을 전송합니다.

scp -F ssh_config profile.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

페이지를 새로고침한 뒤 SSH의 원격 명령으로 게시된 파일을 읽습니다.

ssh -F ssh_config ubuntu@"$PUBLIC_IP" cat /home/ubuntu/portfolio/profile.json

첫 연결에서 호스트 키 안내가 나올 수 있고100%는 복사 완료를 뜻합니다. 새로고침하면 Sam Rivera, Design with purpose.와 Brand identities and digital experiences.가 표시됩니다. 요청마다 프로필을 읽어 재시작은 필요 없습니다. 이전 내용이면 주소, 경로와 전송을 확인하세요.

실제 실습의 확인 예시입니다. 리소스 ID는 환경마다 다릅니다.

서버 정리하기

이 단계에서는 게시 결과를 확인한 후 인스턴스를 종료합니다.

ID를 AWS View와 비교합니다.

echo "$INSTANCE_ID"

이 인스턴스만 종료합니다.

aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"

terminated를 기다립니다.

aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"

사이트가 실행되지 않음을 확인하고 네트워크와 키를 유지합니다.

요약

JSON 프로필을 만들고 SCP로 게시한 뒤 원격 파일과 페이지를 확인하고 서버를 종료했습니다.

공식 문서: Connect to a Linux instance with SSH, transfer files to an instance.