일반적으로 윈도우OS에서는 nslookup을 쓰고, linux계열 OS에서는 dig 명령을 쓴다.
(따로 프로그램을 설치하면 윈도우에서도 dig 명령 쓸 순 있지만)
어떤 옵션을 쓸 수 있는지 알아보자
우선, 확인 가능한 dns의 record type을 알아보자.
# 가장 많이 사용하는 top 10 dns record type 목록
o Address Mapping record (A Record) - also known as a DNS host record, stores a hostname and its corresponding IPv4 address.
o IP Version 6 Address record (AAAA Record) - stores a hostname and its corresponding IPv6 address.
o Canonical Name record (CNAME Record) - can be used to alias a hostname to another hostname. When a DNS client requests a record that contains a CNAME, which points to another hostname, the DNS resolution process is repeated with the new hostname.
o Mail exchanger record (MX Record) - specifies an SMTP email server for the domain, used to route outgoing emails to an email server.
o Name Server records (NS Record) - specifies that a DNS Zone, such as “example.com” is delegated to a specific Authoritative Name Server, and provides the address of the name server.
o Reverse-lookup Pointer records (PTR Record) - allows a DNS resolver to provide an IP address and receive a hostname (reverse DNS lookup).
o Certificate record (CERT Record) - stores encryption certificates—PKIX, SPKI, PGP, and so on.
o Service Location (SRV Record) - a service location record, like MX but for other communication protocols.
o Text Record (TXT Record) - typically carries machine-readable data such as opportunistic encryption, sender policy framework, DKIM, DMARC, etc.
o Start of Authority (SOA Record) - this record appears at the beginning of a DNS zone file, and indicates the Authoritative Name Server for the current DNS zone, contact details for the domain administrator, domain serial number, and information on how frequently DNS information for this zone should be refreshed.
Oracle DBMS vs AWS RDS Oracle, It is slightly different how to manage. AWS RDS can't handling the DBMS system files and configuration files of DBMS. So, AWS prepared already option configurations how to change DBMS options.
Today, I will try to upgrade RDS Oracle 11 to RDS Oracle 19 with minimizing downtime. The overall flow goes like this.
step 1. Check the version of RDS DB Engine step 2. Take snapshot backup of RDS Oracle 11 step 3. Build new RDS Oracle 11 using Snapshot step 4. Prepare option set for RDS Oracle 19 step 5. Upgrade to Oracle 19
Now, let's follow the flow.
step 1. Check the version of RDS DB Engine
You can see the version of RDS DB Engine in the "Configuration" Tab.
step 2. Take snapshot backup of RDS Oracle 11
Select "(1) Action - (2) Take snapshot"
Enter "(1) Snapshot name" you choose and clieck and run "(2) Take Snapshot".
The processing time is different for each data capacity, generally takes about 15 ~20 minutes or more.
After then, you can see the new snapshot image in the "(1) Snapshot" menu.
step 3. Build new RDS Oracle 11 using Snapshot
"(1) Select your snapshot name" and do "(2) Action - Restore snapshot".
And then, (1) Select profer Engine and License. (2) Enter new "DB Instance identifier". This is the unique key that identifies a DB Instance. This parameter isn't case sensitive.
Enter "Initial database name' in the Additionan configuration area. And the rest of the setting values use default values. After then click and Run "Restore DB Instance".
It also takes about 15 ~20 minutes or more. After then, you can see the new Database in the "Database" menu.
step 4. Prepare option set for RDS Oracle 19
Before the upgrade, it is better to prepare option sets for RDS Oracle 19. Because options and parameter groups used in lower versions may cause compatibility problems in newer versions.
#First , Parameter groups.
In the "(1) Parameter groups" menu, "(2) Create Parameter group",
and Select "(3) Parameter group family" - "oracle-se2-19". - I chose 'oracle second edition'. - oracle version 19 currently only supports "oracle-ee-19 (enterprise edition)" and "oracle-se2-19 (second edition 2)". enter "(4) Group name" you choose, and "(5) Create".
The parameter group is created immediately.
After then, you can change config parameters you need. For example, I'm using version 11 of sqlclient in the PC, so I've changed sqlclient support version. If you do not change this, you can not access DB using sql-client. In the "newver-param-group-19", click "(1) Edit parameters" and search "(2) sqlnet.allowed". And next, "(3) change version numbers" and click "(4) Save changes".
#Second , Option groups. RDS will use GMT-0 timezone as default. You have to create group first and change to you time-zone, if you need.
In the "(1) Option groups" menu, click "(2) Create group".
And, enter "(3) name and (4) Description", and select "(5) Engine and (6) version", and then click "(7) Create".
And next, click the name of option group, and "Add option"
Select (1) option name "time-zone" and chose your (2) time-zone name.
(3) Apply changes immediately or wait until the next scheduled maintenance window. Note: Any subsequent Option Group modifications where Apply Immediately is checked will cause any prior queued modifications to also apply immediately. (4) click "Add option" and click again.
Now, you are ready to upgrade.
step 5. Upgrade to Oracle 19
You can upgrade in the Modify menu.
You can be specified your options in the Modify menu. Change "DB engine version", Select "DB parameter group" and "Option group". And the rest options can change if you need.
- 체계에서, "인터넷 경계"는 외부 사용자 대상의 웹 인터넷 서비스용, "내부"는 말 그대로 내부망(사설망)에서 시스템들간 요청 처리용도
- 인증서 등록 위해 "리스너 추가" 클릭하고 "HTTPS" 선택
- 가용영역은, 로드밸런싱할 EC2 host들이 포함된 모든 subnet을 선택해준다. 복수개 subnet 선택이 필수.
- 추가 서비스는, http/https 가속(액셀러레이터) 기능을 추가할 경우 선택 (요금추가)
설정 2단계 보안 설정 구성 : 기본 인증서 선택, 보안정책 선택
- 인증서 유형에서, 기존 AWS에 등록해둔 인증서가 있다면 "선택" 항목에서 선택하면 되고 신규 등록이라면 "업로드"항목을 선택하고, 빈칸에 맞는 인증서 텍스트를 복사해서 붙여준다.
인증서에서 복사할 텍스트 내용은 "-----BEGIN CERTIFICATE-----" 부터 "-----END CERTIFICATE-----"까지 포함한 텍스트를 붙여 넣어야한다.
* 주의할 점은, 인증서 발급회사마다 제공하는 파일이 조금씩 다른데, 예1) 프라이빗키(***_key.pem), 인증서본문(***_crt.pem), 인증서체인(***_chain**.pem) 파일을 각각 분리하여 제공하는 업체가 있는데, 이 경우는 각 파일을 열어서 텍스트를 붙여주면 된다.
예2) 프라이빗키파일(***_key.pem) + 인증서본문과 체인이 결합된 파일(***_crt.pem)로 제공하는 업체가 있다. 이 경우는 위 그림처럼 각 부분을 잘라서 붙여주면 된다.
- 보안정책 선택에서는, 어떤 프로토콜(SSL, TLS1.0, TLS1.1, TLS1.2 등)을 사용할지 Preset을 선택하는 부분이다. TLS 1.1과 TLS 1.2를 같이 선택하려면 아래와 같이 하면 되고,
SK브로드밴드 기본 : 221.139.13.130, 보조 : 210.94.0.73 KT 기본 : 168.126.63.1, 보조 : 168.126.63.2 LG 유플러스 기본 : 164.124.101.2, 보조 : 203.248.252.2 구글 기본 : 8.8.8.8, 보조 : 8.8.4.4 클라우드플레어 기본 : 1.1.1.1, 보조 : 1.0.0.1
DNS 서버 주소는, 이 시스템이 domain 주소로 어떤 정보를 이용할 때 쓰이는 정보로, 이 시스템이 사용하는 인터넷회선 사업자 또는 IDC사업자가 추천하는 정보를 이용하면 되고, 모른다면 위 정보중에서 선택하여 이용하면 됩니다.
2.3/etc/sysconfig/network-scripts/ifcfg-eth0 파일 설정
네트워크 인터페이스 장치명에 네트워크 정보를 설정하는 파일입니다. 장치명은 시스템에 따라, eth0, eth1, encap1, encap2 등 다양한 형태로 표시될 수 있으니, 먼저 네트워크 인터페이스 이름을 확인해두어야 합니다.
그리고, BROADCAST, NETMASK, NETWORK, IP ADDRESS 정보가 맞게 설정되어야 정상적인 IP 통신이 가능합니다.
시스템에 등록된 이더넷 설정파일들은 /etc/sysconfig/network-scripts/ 디렉토리 내에 있습니다.
네트워크 인터페이스 이름을 모른다면, 아래 명령들중에서 가능한 것으로 확인할 수 있습니다.
# nmcli d DEVICE TYPESTATECONNECTION eth0ethernetconnectedsystem eth0 loloopbackunmanaged--
웹어플리케이션 서버는 apache를 이용하지만, 인증서 설정은 bitnami 환경설정에 작성해야 한다.
절차는,
1. 인증서 파일을 특정위치에 업로드/복사
- 업로드/복사 방법은 scp, ftp, wget 등의 방법을 활용할 수 있겠다. 자세한 방법은 생략한다.
2. bitnami.conf 파일에 인증서파일 위치를 지정
- https를 사용할테니, 443 설정부분에 SSL...예제설정이 들어있는데, 이 부분을 수정해준다.
$ sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf
# bitnami.conf
...
<VirtualHost _default_:443>
DocumentRoot "/opt/bitnami/apache2/htdocs"
SSLEngine on
# SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt" // --> 예제설정을 comment 처리
# SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key" // --> 예제설정을 comment 처리
SSLCertificateFile "/opt/bitnami/apache2/conf/www.doremifa.com_crt.pem" // --> crt 파일 등록
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/www.doremifa.com_key.pem" // --> key 파일 등록
SSLCACertificateFile "/opt/bitnami/apache2/conf/www.doremifa.com_fullchain.pem" // --> chain 파일 등록
// 패스워드없는 인증서의 경우에는 chain 파일 등록이 필요없을 수도 있다
...
3. apache 재시작
$ sudo /opt/bitnami/ctlscript.sh restart apache
4. 확인
- https 도메인 주소를 웹브라우저에서 열었을 때, 주소창 옆에 자물쇠모양(secured mark)이 표시되면 정상
넌 이제, 리눅스에서 iptables 사용법도 알고, 방화벽 룰 세팅 원리도 이해하고 있는데,
AWS의 기능으로 특정한 외부 IP를 차단하는 방법을 모른다고 했지?
AWS EC2 로 리눅스 등의 서버를 사용하고 있다면, 서버 OS내에서 iptables로 ip deny 하면 되겠지.
너가 말한 것처럼, AWS의 Console에서 VPC를 제어하는 Security Group 사용법을 배웠겠지만,
Security Group에서는 왜 안되나,
Security Group의 기본 구조는 White List 방식, 즉 기본적으로 모든 것을 막아두고, 일부만 지정하여 허용한다는 구조라서, http/https 서비스를 하는 환경으로 Security Group을 만들어 둔 상태에서, 특정 IP의 http/https 액세스를 막지는 못해. 최근에 이렇게 바뀐것 같은데, 허용하는 기능만 있고, 차단하는 기능은 없는게 Security Group의 특징이라서 그래.
예를 들어, EC2 instance에 리눅스 서버로 웹서비스를 구성하고, Security Group을 만든다면,
아래와 같이 http/https를 외부( source) ip를 all로 지정해서, 해당 프로토콜&포트번호&Source IP를 허용해준다는 뜻인데, 보통 이렇게 하쟌니? (다른 방법도 있을려나? 있다면 알려줘~)
위와 같이 설정한 상태에서,
외부(source)의 특정 IP에서 우리 시스템을 공격하는 것을 차단하기 위해, 특정 IP를 막는 룰을 쓸 수가 없지.
그러면, 어떻게 할까...
첫번째 방법은,
EC2에 설치된 서버 OS에서 iptables 같은 방화벽 기능으로 특정 IP를 deny 설정할 수 있지. 이 방법이 서버 엔지니어에겐 가장 편한 방법이겠지만, iptables의 list가 너무 많아지면 OS 응답성능에 영향을 상당히 준다는 건 알고 있겠지? 그리고, 모든 서버들의 iptables에 IP deny 설정을 다 해줘야되서, 관리의 불편함이 있지.
두번째 방법은,
VPC의 Security 기능 중에, Security Group말고, Network ACLs 라는 기능이야. Network ACLs는 물리적 인프라에서 방화벽과 같은 기능이야. Security Group과는 반대 개념으로, Black List 방식으로 동작해. 즉, 모든 것은 열어두고, 지정한 것만 막아주지. 외부의 특정 IP가 우리 VPC내의 어떤 것에도 액세스하지 못하게 막을 수 있지.
IP 대역, Protocol, tcp/udp port range, deny/allow 선택이 가능해.
아래 화면의 규칙 80번과 같이, VPC를 선택하고, 인바운드규칙(Inbound rule)에서 규칙을 작성하면 되.
주의 할 점 두가지가 있는데,
첫번째 주의사항은,
규칙 번호 # 숫자가 작은 규칙이 먼저 적용된다는 점이야. 일반적인 방화벽과 동일한 구조니까.
1. OVP의 정의 1) OVP란 Online Video Platform, 즉, 인터넷환경에서 동영상서비스를 제공하는 플랫폼이다. 2) OVP는, 인터넷 혹은 네트워크 환경에서 동영상 서비스를 위해 필요한 여러가지 솔루션들 (인코딩, 동영상전송, 컨텐츠 관리, 배포, 분석 등)을 하나의 패키지로 하여 온라인상에서 쉽게 사용할 수 있도록 구성된 플랫폼 서비스이다. 즉, SaaS, PaaS에 속한다고 할 수 있다.
2. 주요 특징 1) 기존 동영상서비스 시장과의 비교 - 동영상 호스팅 : 주로, smtp방식의 동영상 스트리밍 또는 http방식의 동영상 다운로드와 같은 단순한 서비스 수행을 위해서, 특정 포맷으로 인코딩된 동영상 파일을 서버에 업로드하고, 그 서버위에 동영상전송솔루션(WMT, FMS, Wowza, IIS 등)을 탑재하여 동영상을 송출하는 가장 단순한 형태의 동영상 서비스 방식 - 동영상 CDN : 동영상 호스팅 서버를 복수개로 확장하고, 전송 대상 지역 확대를 위해 CDN 기술을 이용하는 방식으로, 동영상 호스팅서버가 원본서버가 되어, CDN 서버들이 원본서버를 캐싱 또는 Sync하여 이용자들에게 동영상을 전송하는 방식. - OVP : 단순히 동영상 전송 기술뿐 아니라, 그에 필요한 관련된 모든 솔루션을 한 곳에 집약시킨 것이며, 또한, 사용법도 단순하고 일관된 로직을 적용하여 동영상서비스 관리자가 컨텐츠 등록, 트랜스코딩, CMS, 컨텐츠 분류, 분배, 전송, 통계분석, 이용자관리, Digital Media Center 등 동영상 서비스 관리에 필요한 모든 업무를 한 시스템에서 처리할 수 있는 것으로, 주로 구축형기반이 아닌 SaaS/PaaS형태로 필요한 양만큼 이용할 수 있는 합리적인 서비스 방식
2) OVP의 장단점 비교 - 장점 : 동영상 서비스 및 관리에 필요한 모든 기능을 한 곳 집약되어 있어서 기능 통합성이 있고, 기존의 동영상 서비스 개념이었던 동영상 호스팅이나 동영상CDN 보다 쉽게 구성되어 있어서 이용 편의성을 가지며, 기존 서비스들에 비해 초기 사업전개를 빠르게 진행할 수 있어서 운영의 신속성을 확보할 수 있다. - 단점 : 서비스에 필요한 각 기능별로 이용자가 원하는 특별한 기능이 포함된 개별 솔루션을 연동하기 불편함이 있다. 최근 출시되는 OVP 서비스들에서는 API 연동기능을 제공하여 이런 불편을 해소시키고 있다.
3. OVP 선정시 고려사항 1) 편의성과 안정성 : OVP를 이용하는 가장 큰 이유는 편리하고 빠르며 안정적인 서비스 운영 목적에 있다. 안정적인 업로드, 자동 멀티 프로파일 트랜스코딩, Multi Format Encoding, CMS, 카테고리 관리, 채널 관리 등 통합된 솔루션들간에 유기적으로 잘 동작하는지 확인이 중요하다. 2) 동영상 보안 : 동영상 원본 및 배포본의 유출로 인해 사업기회의 손실을 입지 않을 수 있도록 여러 단계의 보안 과정을 거치고 복잡도가 높아서 유출이 힘든 보안 기능이 필요하다. 미디어 인증, 중복접속차단, Ontime URL, DRM, 녹화차단 등의 보안기술은 보편화된지 오래이고, 여전히 실용적이고 효과높은 기술이다. 최근에는, 컨텐츠 유출 사고 발생시 이를 추적할 수 있는 워터마킹(WaterMarking) 기술이 유료 컨텐츠 시장에서 채택되고 있다. 3) 컨텐츠 관리 : 카테고리 관리, 채널 관리, 메타데이터 관리, 검색 등과 같은 요소들이 필수적이다. 4) 다양한 플레이어 선택 : HTML5 PLAYER, FLASH PLAYER, 고객사 전용 플레이어 등의 선택폭이 넓고, 다양한 기능을 탑재한 플레이어를 선택해야 한다. 5) 광고관리, 이미지 배너 노출, 쉽고 편한 UI 관리가 가능해야 한다. 6) 배포 : 동영상 CDN과 자동 연계되거나 CDN을 자체 제공하여 CMS및 CDN이 통합관리되며, 해외 전송 지역 설정 기능이 있는 것이 서비스 운영에 편리함을 더해준다. 그리고, N-Screen, 고화질 전송, http progressive, HLS, Psedu streaming등 다양한 전송방식을 지원하는지 살펴야 한다. 또한, 컨텐츠 접속 가능 지역 설정이 가능해야 서비스 지역을 제한하는 등 동영상 서비스 배포 권리를 관리할 수 있어야 한다. 7) 통계 및 분석 : 이용량 분석, 시청자의 비디오 소비 행태와 요구를 파악할 수 있는 리포트 기능이 있어야 한다.
4. 추가 고려사항 1) Digital Media Center - 기존에는 한 컨텐츠 프로바이더(Content Provider) 혹은 컨텐츠 홀더(Content Holder)가 자신의 시스템에서만 컨텐츠를 관리하고 서비스를 제공해왔고, 컨텐츠 이용권을 다른 컨텐츠 프로바이더에게 제공할 경우에는, 컨텐츠를 데이타형태(파일, DVD 등)로 넘겨주어서 그 컨텐츠 프로바이더가 운영하는 시스템에 컨텐츠를 올려서 서비스를 제공해왔다. - 최근에는, 물리적인 파일의 추가 생성 또는 이동 없이 내가 소유하고 있는 컨텐츠의 이용권한을 다른 사람에게 대여하거나 다른 사람의 컨텐츠를 빌려와 나의 채널에 추가하여 서비스 할 수 있는 개념의 OVP가 등장하고 있다.
5. 주요 OVP 업체 - Global area : BriteCove, Ooyalla, Kollus - Korea/Japan/Asia : Kollus, istream, DataHotel - Europe/Austrailia : Akamai, Oooyalla, Level3