Share
Sign In
공부 내용
AWS EC2 개념
Y
yeji Kim
👍
참고 자료
EC2(Elastic compute cloud)
구성
컴퓨팅에 해당하는 인스턴스, 하드 디스크에 해당하는 ebi, 랜카드에 해당하는 eni
인스턴스 이름
인스턴스의 사용 목적 (서버, 머신러닝용, 게임용 등)에 따라 이름을 부여해 구분 - e.g.) t 타입, m 타입, inf 타입 등...
m5a.xlarge - m : 인스턴스 타입 / 5 - 5세대 / a : amd 기반 cpu 프로세서 / xlarge - 큰 사이즈
EBS (elastic block storage)
클라우드에서 사용하는 가상 하드디스크.
타입
MAX IOPS 순으로 ... IO2>GP3(범용)>ST1>SC1>마그네틱 (백업/비주기적 데이터 액세스)
EC2 인스턴스 구축
인스턴스 세부 정보 구성
네트워크, 서브넷, 퍼블릭 IP 자동 할당 - 나중에 VPC 섹션에서 설정한 VPC와 서브넷 등록하는 항목.
EBS 설정
보안 그룹 형성
방화벽을 설정하는 단계.
기본 값 - SSH 접속, 22번 포트. IP 0.0.0.0/0 즉 모든 IP 사용자가 접속할 수 있도록 설정.
웹에서 접속하게 하고 싶다면 HTTP(80) 포트 추가해서 열기.
인스턴스 키페어 생성
인스턴스에 접속하기 위한 물리키. .pem 파일이 꼭 있어야 함.
보안 그룹 규칙
포트
Well-known ports - 0~1023
IANA(Internet assigned numbers authority)에서 할당한 TCP/UDP 포트
22 - SSH (secure shell)
네트워크 프로토콜 중 하나로 안전하게 통신하기 위해 사용
대표적으로 데이터 전송 (git push)와 원격 제어 (EC2 인스턴스 접속)에 사용
80 - HTTP
443 - HTTPS
Registered ports - 1024~49151
특정 용도로 사용되기 위해 등록된 포트
1433 - MSSQL
3306 - MySQL
Dynamic ports - 49152~65535
사용자가 임의로 등록하여 사용 가능한 포트
인증된 IP 범위 - IPv4, IPv6
Inbound network, outbound network
통신 방법
SSL (secure sockets layer)
주로 웹서버 인증이나 서버 인증이라고 함.
브라우저와 서버 간의 통신암호화. → 중간에 패킷을 가로채도 알 수 없음.
ssl이 적용되면 https://를 통해 웹 서버에 접근.
HTTP
웹 상에서 정보를 주고 받기 위한 프로토콜. 암호화 x
https - http+ssl
SSH
Secure shell protocol → 네트워크 프로토콜.
컴퓨터 간 통신을 위해 사용.
EC2 인스턴스 웹서버 설치, 접속하기
EC2 인스턴스 연결
Session manager
SSH client
EC2 직렬 콘솔
VPC (Virtual Private Cloud)
VPC 개념
클라우드 환경을 public과 private로 분리.
구성 요소
서브넷 (Subnet, Subnetwork)
IP 네트워크의 논리적인 영역을 부분적으로 나눈 하위 망.
💬
VPC(10.0.0.0/16) 내에 퍼블릭 서브넷과 프라이빗 서브넷
[그림1]과 같이 VPC 내에 서브넷을 통해 네트워크망을 분리할 수 있다. VPC의 IP 대역인 10.0.0.0/16과 퍼블릭 서브넷, 프라이빗 서브넷의 IP 대역인 10.0.0.0/24와 10.0.1.0/24이 의미하는 것은 다음과 같다.
VPC의 IP 대역을 10.0.0.0/16으로 설정하겠다는 것은 prefix가 /16이므로 앞의 10.0. 이 네트워크 주소를 의미하며 나머지 16bit로 호스트 주소를 정할 수 있다는 의미다. 즉 10.0.0.0~10.0.255.255 IP 범위가 같은 네트워크에 속한다는 의미다.
퍼블릭 서브넷의 IP 대역을 10.0.0.0/24로 설정한다는 것은 24bit(10.0.0.)를 네트워크 주소로 사용하겠다는 의미이며 나머지 8bit를 사용해서 호스트 주소를 정할 수 있다는 의미다. 즉 10.0.0.0~10.0.0.255 IP 범위가 같은 퍼블릭 서브넷에 속한다는 의미다.
프라이빗 서브넷의 IP 대역을 10.0.1.0/24로 설정한다는 것은 24bit(10.0.1.)를 네트워크 주소로 사용하겠다는 의미이며 나머지 8bit를 사용해서 호스트 주소를 정할 수 있다는 의미다. 즉 10.0.1.0 ~ 10.0.1.255 IP 범위가 같은 퍼블릭 서브넷에 속한다는 의미다.
서브넷의 IP 대역마다 예약된 IP 주소
💬
서브넷 IP 대역에서 첫번째에서 네번째까지 그리고 마지막 IP 주소는 예약되어 있다
첫번째 주소 : 10.0.0.0 → 네트워크 주소
두번째 주소 : 10.0.0.1 → AWS VPC 가상 라우터 주소
세번째 주소 : 10.0.0.2 → AWS DNS 서버 주소
DNS 서버의 IP 주소는 해당 VPC의 IP 범위에 2를 더한 주소다. 지금처럼 CIDR 블록이 여러 개인 VPC, 즉 서브넷을 가지고 있는 VPC의 경우 DNS 서버의 IP 주소를 제외하고도 각 서브넷 IP 대역 범위에 2를 더한 모든 주소가 예약되어 있다.
네번째 주소 : 10.0.0.3 → 향후 새로운 기능에 활용할 주소
마지막 주소 : 10.0.0.255 → 네트워크 브로드캐스트 주소
가상 라우터와 라우트 테이블
VPC를 생성하면 자동으로 가상 라우터가 생성된다. 이 가상 라우터는 라우트 테이블(route table)을 가지고 있다.
IGW (internet gateway)
VPC에서 인터넷으로 나가는 관문. VPC 당 1개만 연결 가능. 즉, 퍼블릭 서브넷 내의 자원만 자신의 라우트 테이블 target 값을 IGW로 지정하게 됨.
NAT (network address translation) 게이트웨이
NAT GW가 private IP를 public IP로 변환. 이 때 NAT GW는 내부 private subnet에서 외부로만 동작.
NACL(Network Access Control List)
서브넷 레벨의 보안 기술. (c.f. 인스턴스 레벨의 보안 기술 - 보안 그룹)
접근 제어 (Access control)
식별, 인증, 권한 순서로 진행.
보안 그룹과 네트워크 ACL은 IP 주소와 프로토콜, 포트 번호를 통해 대상을 식별, 인증, 권한함.
보안 그룹과 네트워크 ACL의차이 점
보안 그룹은 인바운드 규칙 확인 후 인스턴스 접근이 허용되면, 그 정보 상태를 기억하고 아웃바운드 규칙과 상관없이 되돌아갈 수 있음.
네트워크 ACL은 상태를 저장하지 않아 인바운드와 아웃바운드 규칙을 모두 확인함.
RDS
Elastic IP
정의 - 고정적인 public IP 주소 할당.
인스턴스와 연결한 채로 인스턴스를 중지시키면 과금이 발생하니 유의할 것!!
Subscribe to '아무튼-작업일지'
Welcome to '아무튼-작업일지'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to '아무튼-작업일지'!
Subscribe
👍
Other posts in '공부 내용'See all
yeji Kim
flutter path_provider
emit? Paths.recording? yield, async* class Recording extends Equatable Cubit?
yeji Kim
앱 개발 boiler plate
UI theme.dart 만들기 assets/fonts 폴더에 폰트 파일 넣기 pubspec.yaml에 추가하기 fonts: - family: SCDream fonts: - asset: assets/fonts/SCDream-Bold.otf - asset: assets/fonts/SCDream-SemiBold.otf - asset: assets/fonts/SCDream-Regular.otf Permission 참고 pubspec.yaml에 추가하기 permission_handler: Android) flutterproject/android/app/src/main/AndroidManifest.xml <uses-permission android:name="android.permission.RECORD_AUDIO" /> IOS) info.plist 수정 <key>NSSpeechRecognitionUsageDescription</key> <string>speech</string> IOS) Podfile 수정 앱) flutter clean > flutter pub get > cd ios > pod install
yeji Kim
macOS 터미널 명령어 / 리눅스
리눅스 권한 맨 앞 글자 : d (폴더), -(파일), l(링크) 그 뒤 세글자씩 : 순서대로 소유자, 소유 그룹, 그외 모든 사용자에 대한 권한. rwx