## 創建EIP ##
1. ECS公網IP 與eip 區別
序號 |功能| ECS公網IP | EIP
:-: | :-: | :-: | :-:
1 |支持的網絡環境 |專有網絡 |專有網絡 經典網絡
2|是否能夠單獨持有|否|是
3|是否支持在ECS上的彈性插拔|否|是
4|ECS實例網卡上是否能看到該IP|經典網絡:能看到;專有網絡VPC:看不到|多EIP網卡可見模式下可見
2. 創建Eip
EIP是一種NAT IP。它實際位于阿里云的公網網關上,通過NAT方式映射到了被綁定的云資源上。和云資源綁定后,云資源可以通過EIP與公網通信。
● 可獨立持有的公網IP
● 可用于VPC中的 ECS實例、NAT網關、私網負載均衡SLB等產品
● 可動態綁定和解綁
● 可自帶IP地址上云,系統架構變動小,IP品牌信譽不變
```
resource "alicloud_eip" "eip" {
bandwidth = "10"
# Internet charge type of the EIP, Valid values are PayByBandwidth, PayByTraffic. Default to PayByBandwidth. From version 1.7.1, default to PayByTraffic. It is only PayByBandwidth when instance_charge_type is PrePaid
internet_charge_type = "PayByTraffic"
# Elastic IP instance charge type. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
instance_charge_type = "PostPaid"
}
resource "alicloud_eip_association" "eip_asso" {
allocation_id = alicloud_eip.eip.id
instance_id = alicloud_instance.server.id
}
```
出現執行錯誤的問題,這是因為eip之前服務器已經有了ip了
```
Error: [ERROR] terraform-provider-alicloud/alicloud/resource_alicloud_eip_association.go:99: Resource alicloud_eip_association AssociateEipAddress Failed!!! [SDK alibaba-cloud-sdk-go ERROR]:
│ SDK.ServerError
│ ErrorCode: EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP
│ Recommend: https://error-center.aliyun.com/status/search?Keyword=EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP&source=PopGw
│ RequestId: F0830361-B3B9-4049-9724-482EC5E2C526
│ Message: instance already bind natpublicip,cannot bind eip.
│
│ with alicloud_eip_association.eip_asso,
│ on eip.tf line 12, in resource "alicloud_eip_association" "eip_asso":
│ 12: resource "alicloud_eip_association" "eip_asso" {
```
首先要更改internet_max_bandwidth_out,讓ecs主機創建的時候不要分配公網IP
```
variable "internet_max_bandwidth_out" {
default = 0
}
```
然后更改
```
# 使用file provisioner 拷貝文件到服務器
resource "null_resource" "copy" {
# 等待server eip eip綁定完畢后再執行拷貝文件的操作
depends_on = [alicloud_instance.server,alicloud_eip.eip]
triggers = {
key = "${uuid()}"
}
provisioner "file" {
source = "./html/"
destination = "/usr/share/nginx/html/"
connection {
type = "ssh"
user = "root"
password = var.ecs_password
host = "${alicloud_eip.eip.ip_address}"
}
}
}
```
- 【概要簡介】1.001-簡介-本課程體系簡介
- 【概要簡介】1.002-簡介-云的發展趨勢
- 【概要簡介】1.003-簡介-國內主流的云服務平臺
- 【概要簡介】1.004-簡介-Terraform云平臺devops的瑞士軍刀
- 【快速入門】2.000-快速入門-云后臺創建主機
- 【快速入門】2.001-快速入門-創建主機-先查詢資源
- 【快速入門】2.002-快速入門-創建主機-阿里云
- 【快速入門】2.003-快速入門-創建主機-亞馬遜aws
- 【快速入門】2.100-快速入門-官方網站學習資料
- 【快速入門】2.101-快速入門-Terraform主要的文件.
- 【快速入門】2.102-快速入門-創建虛擬網絡
- 【快速入門】1.103-快速入門-創建安全和規則
- 【快速入門】2.104-快速入門-創建云盤
- 【快速入門】2.105-快速入門-創建Ecs主機服務
- 【快速入門】2.200-快速入門-搭建Nginx
- 【快速入門】2.201-快速入門-搭建Nginx-分拆main文件
- 【快速入門】2.203-快速入門-購買固定IP并綁定到主機
- 【快速入門】2.204-快速入門-綁定域名到自己的主頁
- 【快速入門】2.205-快速入門-申請免費的https證書并綁定TODO
- 【快速入門】2.300-快速入門-創建Oss存儲并搭建靜態網站
- 【快速入門】2.300-快速入門-Cdn-TODO
- 【中級進階】3.101-中級進階-用Packer創建Wordpress的主機鏡像
- 【中級進階】3.102-中級進階-利用自己的鏡像創建Ecs主機
- 【中級進階】3.104-中級進階-用自己鏡像搭建負載均衡的Wordpress網站
- 【中級進階】3.105-中級進階-利用彈性伸縮ESS創建SLB對應的動態數量的ECS服務器
- 【中級進階】3.106-中級進階-自定義Module搭建多個負載均衡的Wordpress網站
- 【中級進階】3.200-中級進階-備份多個Wordpress服務器的日志到ossTODO
- 【中級進階】3.300-中級進階-創建Ecs快照服務
- 【中級進階】3.400-中級進階-Datasource查詢
- 【中級進階】3.500-中級進階-保存Terraform的state文件
- 【中級進階】3.600-中級進階-Variables and environment variables
- 【中級進階】3.700-中級進階-Terraform命令解析
- 【高級深入】4.000-高級深入-創建容器鏡像服務
- 【高級深入】4.001-高級深入-編譯自己的docker鏡像并上傳到Aliyun cr
- 【高級深入】4.002-高級深入-Terraform創建Kubernetes集群
- 【高級深入】4.003-高級深入-Terraform在Kubernetes集群中部署Wordpress應用
- 【高級深入】4.100-高級深入-使用云服務平臺提供的module來創建服務資源
- 【高級深入】4.200-高級深入-同步Terraform的狀態.到terraform cloud
- 【高級深入】4.300-高級深入-Terraform的語法
- 【高級深入】4.400-高級深入-Terraform與其Ansible一起使用
- 【高級深入】4.500-高級深入-Terraform的provisioner
- 【高級深入】4.600-高級深入-Snat
- 【高級深入】4.601-高級深入-Dnat
- 4.602-高級深入-Vpc-vpc通信
- 【高級深入】4.603-高級深入-Switch與switch-通信