我有一个基于云的(Amazon AWS、Rackspace 等)多租户 SaaS 应用程序,我需要支持多个不相关租户域的 HTTPS 通信。
作为说明性示例,假设我们的 SaaS 可在以下位置获得:
https://foo.com
Run Code Online (Sandbox Code Playgroud)
租户可以通过以下方式访问其租户特定的 UI 和服务端点:
https://tenantA.foo.com
https://tenantB.foo.com
...
Run Code Online (Sandbox Code Playgroud)
这在今天很容易通过一个通配符 SSL 证书来支持。
然而,使用我们的 SaaS,我们的租户可能希望直接向他们自己的用户公开我们的 UI(但为他们打上品牌)。
这会导致一个问题:假设 John Smith 是 的现有客户tenantA
(并且不知道foo.com
)。如果 John Smith 被定向到https://tenantA.foo.com
,他们很容易混淆(例如“谁他妈的是 foo.com?我为什么在这里?我被黑客入侵了吗?啊哈!”)。
为了避免这个问题,我们的租户会设置一个子域,如:
https://foo.tenantA.com
Run Code Online (Sandbox Code Playgroud)
这避免了许多最终用户的困惑:tenantA
的用户可以看到他们认为拥有的 URL,tenantA
并且将更容易使用该应用程序。但是tenantA
希望我们托管有关应用程序的所有内容,这意味着foo.com
的基础架构需要为 SSL 连接提供服务。
为此,我们希望支持以下内容:
foo.tenantA.com
。foo.tenantA.com
为 CNAME 重定向到tenantA.foo.com
.这样,我们的负载均衡器池将提供/终止所有 …
假设我有 20 个正在运行的 EC2 实例和 10 个活动预留实例预留。
使用 AWS 控制台或AWS CLI确定哪些正在运行的 EC2 实例未被预留实例预留“覆盖”的最快方法是什么?
为了更清楚地了解所需的结果,请考虑以下事项(据我所知,在 AWS 控制台中不可能实现):
running
获取某个区域中所有实例的列表。您现在可以在 AWS 控制台中通过 AWS CLI 执行此操作。active
获取同一区域中所有预留实例预留的列表。您现在可以在 AWS 控制台中通过 AWS CLI执行此操作。running
在区域 Y 中看到大小为 X 的实例,并且区域 Y 中存在大小为 X 的预留实例预留时,请将其从列表中删除running
。running
都是预留实例预留未涵盖的实例。我正在寻找一种获得#4 的方法,而无需手动将 AWS 控制台中可用的两个列表复制到 Excel,并running
在看到相应的 RI 预留时手动划掉实例。我也可以编写一个使用 CLI 的脚本来执行此操作,但我假设可能已经存在某些东西,因为这是分析成本效率的明显方法。