[OCI] 자원 관리자를 사용하여 MYSQL Database Service를 작성해 보았습니다 (2020/11/15)
12731 단어 MySQLResourceManagerociTerraform
리소스 관리자란?
Oracle Cloud Infrastructure 리소스를 프로비저닝하는 프로세스를 자동화할 수 있는 Oracle Cloud Infrastructure 서비스
Infrastructure-as-code 모델을 사용하여 리소스를 설치, 구성 및 관리하는 데 도움이되는 Terraform 관리 환경
자원 관리자 기능
리소스 매니저는 다음과 같은 특징, 기능이 있습니다 (2020/11/15 시점)
- 인프라 자동화 및 표준화, 환경 복제를 용이하게 수행
- Terraform 엔진의 완전 관리 서비스
- 지정된 구획의 리소스를 Terraform 구성 파일 생성(Resource Discovery)
- GitLab에서 관리되는 Terraform 구성 파일에서 리소스 관리자 스택 생성(구성 소스 공급자)
- 스택의 마지막에 실행된 구성과 실제(현재) 인프라 상태 간의 차분 추출(드리프트 검출)
- 샘플 구성을 사용한 환경 구축
- 사용 가능한 Terraform 형식은 v0.11/v0.12/v0.13
다음 샘플은 Terraform v0.12 형식으로 설명되어 있습니다.
MYSQL Database Service 생성 샘플
사용하는 변수
사용하는 변수
지정한 이름
그 외에는 기본 설정 지정
mysql.tf
resource oci_mysql_mysql_db_system export_MySQL1 {
admin_password = var.mysql_password
admin_username = "admin"
availability_domain = data.oci_identity_availability_domain.TGjA-AD-1.name
backup_policy {
is_enabled = "true"
retention_in_days = "7"
window_start_time = "00:00"
}
compartment_id = var.compartment_ocid
configuration_id = var.mysql_configuration_id
data_storage_size_in_gb = "50"
display_name = "MySQL1"
fault_domain = "FAULT-DOMAIN-1"
hostname_label = "mysql1"
maintenance {
window_start_time = "WEDNESDAY 04:22"
}
# mysql_version = "8.0.22-u2-cloud"
port = "3306"
port_x = "33060"
shape_name = var.mysql_shape
state = "ACTIVE"
subnet_id = var.privateSubnet_id
lifecycle {
ignore_changes = [admin_password, admin_username]
}
}
data oci_identity_availability_domain export_TGjA-AD-1 {
compartment_id = var.compartment_ocid
ad_number = "1"
}
샘플 환경 만들기
MySQL Database Service를 빌드하는 예로 다음 구성을 만듭니다.
컴퓨팅 인스턴스에 nginx와 php를 설치하고 wordpress 모듈을 배포하고 MySQL Database Service에 Database와 사용자를 만듭니다.
Terraform 구성 파일은 github에서 다운로드할 수 있습니다.
환경 구축 실행
1. 웹 콘솔 메뉴에서 자원 관리자 > 스택을 열고 스택 작성을 클릭하십시오.
2. github에서 얻은 tf 파일을 압축 한 ZIP 파일 또는 폴더를 지정하여 리소스 관리자 스택을 만듭니다.
3. 계획 작업/적용 작업 실행
샘플 파일 보충
예약된 공용 IP 사용
컴퓨팅 인스턴스와 로드 밸런서에 각각 예약된 공용 IP를 할당해 보았습니다.
예약된 공용 IP 생성
publicip.tfresource oci_core_public_ip publicip_lb {
compartment_id = var.compartment_ocid
display_name = "lb01"
lifetime = "RESERVED"
}
컴퓨팅 인스턴스에 할당
퍼블릭 IP 할당 VNIC, 프라이빗 IP OCID를 획득하고 예약된 퍼블릭 IP 할당
publicip_compute.tfdata oci_identity_availability_domain AD-1 {
compartment_id = var.compartment_ocid
ad_number = "1"
}
data oci_core_vnic_attachments instance1_vnics {
availability_domain = data.oci_identity_availability_domain.AD-1.name
compartment_id = var.compartment_ocid
instance_id = oci_core_instance.ap1.id
}
data oci_core_vnic instance1_primary_vnic {
vnic_id = data.oci_core_vnic_attachments.instance1_vnics.vnic_attachments[0].vnic_id
}
data oci_core_private_ips instance1_ip {
vnic_id = data.oci_core_vnic.instance1_primary_vnic.id
}
resource oci_core_public_ip publicip_ap {
compartment_id = var.compartment_ocid
display_name = "ap01"
lifetime = "RESERVED"
private_ip_id = data.oci_core_private_ips.instance1_ip.private_ips[0].id
}
로드 밸런서에 할당
publicip_lb.tfresource oci_load_balancer_load_balancer LB1 {
compartment_id = var.compartment_ocid
display_name = "LB1"
ip_mode = "IPV4"
is_private = "false"
reserved_ips {
id = oci_core_public_ip.publicip_lb.id
}
network_security_group_ids = [
oci_core_network_security_group.export_Network-Security-Group-for-AP.id,
]
shape = "100Mbps"
subnet_ids = [
oci_core_subnet.export_PublicSubnet.id,
]
}
적용 작업 로그
적용 작업 로그에 로드 밸런서, AP 서버의 공용 IP 주소 및 AP 서버에 대한 ssh 로그인 비밀 키 파일 내용이 출력됩니다.
wordpress 초기 설정
컴퓨팅 인스턴스의 공용 IP 주소에 브라우저에서 http 액세스하여 wordpress 초기 화면이 표시되는지 확인
http://<컴퓨트 인스턴스 퍼블릭 IP 주소>/
결론
OCI의 Terraform Managed Services 리소스 관리자를 사용하여 MySQL Database Service 및 액세스 컴퓨팅 인스턴스에 wordpress 환경을 배포했습니다.
Reference
이 문제에 관하여([OCI] 자원 관리자를 사용하여 MYSQL Database Service를 작성해 보았습니다 (2020/11/15)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenwatan/items/a7dde25954c5f1f5d92b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 웹 콘솔 메뉴에서 자원 관리자 > 스택을 열고 스택 작성을 클릭하십시오.
2. github에서 얻은 tf 파일을 압축 한 ZIP 파일 또는 폴더를 지정하여 리소스 관리자 스택을 만듭니다.
3. 계획 작업/적용 작업 실행
샘플 파일 보충
예약된 공용 IP 사용
컴퓨팅 인스턴스와 로드 밸런서에 각각 예약된 공용 IP를 할당해 보았습니다.
예약된 공용 IP 생성
publicip.tfresource oci_core_public_ip publicip_lb {
compartment_id = var.compartment_ocid
display_name = "lb01"
lifetime = "RESERVED"
}
컴퓨팅 인스턴스에 할당
퍼블릭 IP 할당 VNIC, 프라이빗 IP OCID를 획득하고 예약된 퍼블릭 IP 할당
publicip_compute.tfdata oci_identity_availability_domain AD-1 {
compartment_id = var.compartment_ocid
ad_number = "1"
}
data oci_core_vnic_attachments instance1_vnics {
availability_domain = data.oci_identity_availability_domain.AD-1.name
compartment_id = var.compartment_ocid
instance_id = oci_core_instance.ap1.id
}
data oci_core_vnic instance1_primary_vnic {
vnic_id = data.oci_core_vnic_attachments.instance1_vnics.vnic_attachments[0].vnic_id
}
data oci_core_private_ips instance1_ip {
vnic_id = data.oci_core_vnic.instance1_primary_vnic.id
}
resource oci_core_public_ip publicip_ap {
compartment_id = var.compartment_ocid
display_name = "ap01"
lifetime = "RESERVED"
private_ip_id = data.oci_core_private_ips.instance1_ip.private_ips[0].id
}
로드 밸런서에 할당
publicip_lb.tfresource oci_load_balancer_load_balancer LB1 {
compartment_id = var.compartment_ocid
display_name = "LB1"
ip_mode = "IPV4"
is_private = "false"
reserved_ips {
id = oci_core_public_ip.publicip_lb.id
}
network_security_group_ids = [
oci_core_network_security_group.export_Network-Security-Group-for-AP.id,
]
shape = "100Mbps"
subnet_ids = [
oci_core_subnet.export_PublicSubnet.id,
]
}
적용 작업 로그
적용 작업 로그에 로드 밸런서, AP 서버의 공용 IP 주소 및 AP 서버에 대한 ssh 로그인 비밀 키 파일 내용이 출력됩니다.
wordpress 초기 설정
컴퓨팅 인스턴스의 공용 IP 주소에 브라우저에서 http 액세스하여 wordpress 초기 화면이 표시되는지 확인
http://<컴퓨트 인스턴스 퍼블릭 IP 주소>/
결론
OCI의 Terraform Managed Services 리소스 관리자를 사용하여 MySQL Database Service 및 액세스 컴퓨팅 인스턴스에 wordpress 환경을 배포했습니다.
Reference
이 문제에 관하여([OCI] 자원 관리자를 사용하여 MYSQL Database Service를 작성해 보았습니다 (2020/11/15)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenwatan/items/a7dde25954c5f1f5d92b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
resource oci_core_public_ip publicip_lb {
compartment_id = var.compartment_ocid
display_name = "lb01"
lifetime = "RESERVED"
}
data oci_identity_availability_domain AD-1 {
compartment_id = var.compartment_ocid
ad_number = "1"
}
data oci_core_vnic_attachments instance1_vnics {
availability_domain = data.oci_identity_availability_domain.AD-1.name
compartment_id = var.compartment_ocid
instance_id = oci_core_instance.ap1.id
}
data oci_core_vnic instance1_primary_vnic {
vnic_id = data.oci_core_vnic_attachments.instance1_vnics.vnic_attachments[0].vnic_id
}
data oci_core_private_ips instance1_ip {
vnic_id = data.oci_core_vnic.instance1_primary_vnic.id
}
resource oci_core_public_ip publicip_ap {
compartment_id = var.compartment_ocid
display_name = "ap01"
lifetime = "RESERVED"
private_ip_id = data.oci_core_private_ips.instance1_ip.private_ips[0].id
}
resource oci_load_balancer_load_balancer LB1 {
compartment_id = var.compartment_ocid
display_name = "LB1"
ip_mode = "IPV4"
is_private = "false"
reserved_ips {
id = oci_core_public_ip.publicip_lb.id
}
network_security_group_ids = [
oci_core_network_security_group.export_Network-Security-Group-for-AP.id,
]
shape = "100Mbps"
subnet_ids = [
oci_core_subnet.export_PublicSubnet.id,
]
}
OCI의 Terraform Managed Services 리소스 관리자를 사용하여 MySQL Database Service 및 액세스 컴퓨팅 인스턴스에 wordpress 환경을 배포했습니다.
Reference
이 문제에 관하여([OCI] 자원 관리자를 사용하여 MYSQL Database Service를 작성해 보았습니다 (2020/11/15)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenwatan/items/a7dde25954c5f1f5d92b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)