Amazon EBS卷的使用
知识文档:
创建 Amazon EBS 卷
将 Amazon EBS 卷附加到实例
创建 Amazon EBS 快照
Amazon Elastic Block Store (Amazon EBS) 提供了块级存储卷以用于 EC2 实例。EBS 卷的行为类似于原始、未格式化的块储存设备。您可以将这些卷作为设备挂载在实例上。附加到 EBS 实例的卷公开为独立于实例生命周期而持续存在的存储卷。您可以在这些卷上创建文件系统,或者以使用块储存设备(如硬盘)的任何方式使用这些卷。您可以动态更改附加到实例的卷的配置。
建议为必须能够快速访问且需要长期保存的数据使用 Amazon EBS。EBS 卷特别适合用作文件系统和数据库的主存储,还适用于任何需要细粒度更新及访问原始的、未格式化的块级存储的应用程序。Amazon EBS 非常适合依赖随机读写操作的数据库式应用程序以及执行长期持续读写操作的吞吐量密集型应用程序。
Amazon EBS卷的使用创建卷的方法
在指定块储存设备映射用以启动实例时,创建并附加 EBS 卷。
创建空 EBS 卷并将其附加到运行的实例。
从以前创建的快照中创建 EB ...
AWS 实例生命周期管理
知识文档:
EC2增删启停
EC2系统基础配置
创建创建实例常用的几种方式:
从控制台向导启动实例:一般是用于建立一个全新的EC2
从现有实例启动类似实例:操作》映像和模板》启动更多类似实例
从启动模板启动实例:控制台向导启动实例》从模板启动实例
停止和启动您只能停止由 Amazon EBS 支持的实例。当您停止运行实例时,将出现以下情况:
所有 Amazon EBS 卷保持连接至实例,而且其数据将保留下来。
存储在主机 RAM 或主机实例存储卷中的所有数据都不复存在。
大多数情况下,实例在启动时会迁移到新的底层主机(尽管在某些情况下,它仍会保留在当前主机上)。
实例会在停止和启动时保留其私有 IPv4 地址以及任何 IPv6 地址。我们会释放公有 IPv4 地址并在您启动实例时为其分配新的 IPv4 地址。
实例会保留其关联的弹性 IP 地址。您需要对所有与已停止实例关联的弹性 IP 地址付费。借助 EC2-Classic,弹性 IP 地址会在您停止实例时取消与其的关联。
如果您的实例处于 Auto Scaling 组中,则 Amazon EC2 Auto Scali ...
创建一个EC2的步骤
准备工作创建密钥对AWS 使用公共密钥密码术来保护您的实例的登录信息。Linux 实例没有密码;您可以使用密钥对安全地登录您的实例。 使用 SSH 登录时,您在启动实例时指定密钥对的名称,然后提供私有密钥。如果您尚未创建密钥对,则可以通过 Amazon EC2 控制台自行创建。请注意,如果您计划在多个区域中启动实例,则需要在每个区域中创建密钥对。
将私有密钥文件保存在安全位置,这是您保存私有密钥文件的唯一机会。
创建安全组安全组用作相关实例的防火墙,可在实例级别控制入站和出站的数据流。您必须在安全组中添加规则,以便能够使用 SSH 从您的 IP 地址连接到实例。您还可以添加允许来自任意位置的入站和出站 HTTP 和 HTTPS 访问的规则。
EC2创建步骤(more)
Amazon EC2 的最佳实践(more)
实例类型及收费方式
如何选择实例类型和购买选项实例类型:
通用实例
计算优化型实例
内存优化型实例
存储优化型实例
加速计算实例
更多详情请查看官方文档
实例购买选择:
按需实例(On-Demand Instances ) 按秒为启动的实例付费。
预留实例 (Reserved Instances)以大幅折扣购买一年期到三年期的始终可用的实例。
计划实例 (Scheduled Instances)以一年为期限购买按指定重复计划始终可用的实例。
Spot 实例 (Spot Instances)请求未使用的 EC2 实例,这可能会显著降低您的 Amazon EC2 成本。
专用主机 (Dedicated Hosts)为完全专用于运行您的实例的物理主机付费,让您现有的按插槽、按内核或按 VM 计费的软件许可证降低成本。
专用实例 (Dedicated Instances)为在单一租户硬件上运行的实例按小时付费。
容量预留 (Capacity Reservations)可在特定可用区中为 EC2 实例预留容量,持续时间不限。
计算器:https://calculator.aws/#/createCalcul ...
Centos忘记root密码
重置忘记的 root 用户密码如果你忘记了 root 的密码,可以按照如下方法重新设置一个:
CentOS-6 指引(亦适用于 CentOS 5):
在 GRUB 阶段中断开机程序,当你看到一个含有 Booting CentOS (2.6.32-…) in X seconds 的选单时,利用以下步骤进入 runlevel 1,也就是单用户模式。
按 Esc 键来中断 GRUB,接著输入 “a” 来添加内容到内核参数
按 Backspace 删除 “rhgb quiet” 的内容(假如存在的话)
增加一个空格,然后输入 1 字
按 Enter 开机这将会提供给你一个不需登录的 root 指令壳。此时你可以使用 passwd 指令来设置一个新的 root 用户口令。
CentOS-7 及 CentOS-8 请遵照上游的指引: https://www.redhat.com/sysadmin/recover-root-passwd
如果 SELinux 的模式是 enforcing 而上游的指引有所指示,别忘了在事后重新标签你的文件系统,否则你将不能登录,直至你重新开机,重复上述步骤并进行 ...
烧烤撒料配比
烧烤撒料配比:
桃酥50克
腰果30克
熟黄豆50克
油炸花生米80克
熟芝麻80克
干辣椒40克
小茴香50克
放入料理机打碎抓匀,再放入:
孜然粉80克
味精40克
胡椒粉30
十三香10克
麻辣鲜50克
go基础之函数进阶
函数进阶变量作用域全局变量全局变量是定义在函数外部的变量,它在程序整个运行周期内都有效
12345678910111213package mainimport "fmt"// 定义全局变量numvar num int64 = 10func testGlobalVar() { fmt.Printf("num=%d\n", num) // 函数中可以访问全局变量num}func main() { testGlobalVar() // num=10}
局部变量函数内定义的变量无法在该函数外使用,例如下面的示例代码main函数中无法使用testLocalVar函数中定义的变量x:
12345678910func testLocalVar() { // 定义一个函数局部变量x,仅在该函数内生效 var x int64 = 100 fmt.Printf(&quo ...
go基础之函数
函数函数是组织好的、可重复使用的、用于执行指定任务的代码块。Go语言中支持函数、匿名函数和闭包
函数的定义使用func关键字定义函数:
123func 函数名(参数)(返回值){ 函数体}
其中:
函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。
返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。
函数体:实现指定功能的代码块。
示例:定义一个求两个数之和的函数
123func intSum(x int, y int) int { return x + y}
函数的参数和返回值都是可选的,例如我们可以定义一个既没有参数也没有返回值的函数:
123func sayHIHI() { fmt.Println("Hello Mr.GaO")}
函数的调用我们可以通过函数名()的方式调用函数。例如调 ...
go基础之map
map 是Go语言中提供的映射关系容器,其内部使用散列表(hash)实现。
mapmap是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。
map的定义语法1map[KeyType]ValueType
其中,
KeyType:表示键的类型。
ValueType:表示键对应的值的类型。
map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为:
1make(map[KeyType]ValueType, cap)
其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。
map的使用map中的数据都是成对出现的,map的基本使用示例代码如下:
123456789101112131415161718192021func main() { scoreMap := make(map[string]int, 8) scoreMap["张三"] = 90 scoreMap["小明"] & ...
go基础之切片
知识文档:
切片Slice
切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。切片一般用于快速地操作一块数据集合。
1. 切片:切片是数组的一个引用,因此切片是引用类型,它的内部结构包含地址、长度和容量。
2. 切片的长度可以改变,因此,切片是一个可变的数组。
3. 切片遍历方式和数组一样,可以用len()求长度。表示可用元素数量,读写操作不能超过该限制。
4. cap可以求出slice最大扩张容量,不能超出数组限制。0 <= len(slice) <= len(array),其中array是slice引用的数组。
5. 切片的定义:var 变量名 []类型,比如 var str []string var arr []int。
6. 如果 slice == nil,那么 len、cap 结果都等于 0。
切片定义声明切片类型的基本语法如下:
1var name []T
其中,
name:表示变量名
T:表示切片中的元素类型
举个例子:
1234567891011121314func main() { ...