├── .editorconfig ├── .gitignore ├── .gitmodules ├── .metadata ├── .nojekyll ├── .pre-commit-config.yaml ├── .taskcat.yml ├── CODEOWNERS ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── docs ├── generated │ ├── parameters │ │ └── index.adoc │ ├── regions │ │ └── index.adoc │ └── services │ │ ├── index.adoc │ │ └── metadata.adoc ├── images │ ├── apache-superset-architecture-diagram.png │ ├── apache-superset-architecture-diagram.pptx │ ├── apache-superset-icon.png │ ├── architecture_diagram.png │ ├── architecture_diagram_2.png │ ├── aws-quickstart-graphic.png │ ├── cfn_outputs.png │ ├── launch_options.png │ ├── login_page.png │ └── result_dashboard.png ├── languages │ └── docs-cn │ │ ├── _layout_cfn.adoc │ │ ├── index.adoc │ │ ├── partner_editable │ │ ├── _settings.adoc │ │ ├── additional_info.adoc │ │ ├── architecture.adoc │ │ ├── deploy_steps.adoc │ │ ├── deployment_options.adoc │ │ ├── faq_troubleshooting.adoc │ │ ├── licenses.adoc │ │ ├── overview_target_and_usage.adoc │ │ ├── pre-reqs.adoc │ │ ├── product_description.adoc │ │ ├── regions.adoc │ │ ├── service_limits.adoc │ │ └── specialized_knowledge.adoc │ │ └── translate-only │ │ ├── LICENSE │ │ ├── _layout_cfn_cdk_module.adoc │ │ ├── _layout_cfn_eks_module.adoc │ │ ├── cost.adoc │ │ ├── deployment_steps.adoc │ │ ├── deployment_steps_cdk_module.adoc │ │ ├── deployment_steps_eks_module.adoc │ │ ├── disclaimer.adoc │ │ ├── index-docinfo-footer.html │ │ ├── introduction.adoc │ │ ├── overview.adoc │ │ ├── planning_deployment.adoc │ │ └── planning_deployment_eks_module.adoc └── partner_editable │ ├── _settings.adoc │ ├── additional_info.adoc │ ├── architecture.adoc │ ├── deploy_steps.adoc │ ├── deployment_options.adoc │ ├── faq_troubleshooting.adoc │ ├── licenses.adoc │ ├── overview_target_and_usage.adoc │ ├── pre-reqs.adoc │ ├── product_description.adoc │ ├── regions.adoc │ ├── service_limits.adoc │ └── specialized_knowledge.adoc └── templates ├── superset-entrypoint-existing-vpc.template.yaml ├── superset-entrypoint-new-vpc.template.yaml └── superset-new-vpc-workload.template.yaml /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = false 9 | max_line_length = 120 10 | tab_width = 4 11 | trim_trailing_whitespace = true 12 | ij_continuation_indent_size = 8 13 | ij_formatter_off_tag = @formatter:off 14 | ij_formatter_on_tag = @formatter:on 15 | ij_formatter_tags_enabled = false 16 | ij_smart_tabs = false 17 | ij_visual_guides = none 18 | ij_wrap_on_typing = false 19 | 20 | [.editorconfig] 21 | ij_editorconfig_align_group_field_declarations = false 22 | ij_editorconfig_space_after_colon = false 23 | ij_editorconfig_space_after_comma = true 24 | ij_editorconfig_space_before_colon = false 25 | ij_editorconfig_space_before_comma = false 26 | ij_editorconfig_spaces_around_assignment_operators = true 27 | 28 | [{*.ad,*.adoc,*.asciidoc,.asciidoctorconfig}] 29 | ij_asciidoc_blank_lines_after_header = 1 30 | ij_asciidoc_blank_lines_keep_after_header = 1 31 | ij_asciidoc_formatting_enabled = true 32 | ij_asciidoc_one_sentence_per_line = true 33 | 34 | [{*.bash,*.sh,*.zsh}] 35 | indent_size = 2 36 | tab_width = 2 37 | ij_shell_binary_ops_start_line = false 38 | ij_shell_keep_column_alignment_padding = false 39 | ij_shell_minify_program = false 40 | ij_shell_redirect_followed_by_space = false 41 | ij_shell_switch_cases_indented = false 42 | ij_shell_use_unix_line_separator = true 43 | 44 | [{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}] 45 | indent_size = 2 46 | ij_json_keep_blank_lines_in_code = 0 47 | ij_json_keep_indents_on_empty_lines = false 48 | ij_json_keep_line_breaks = true 49 | ij_json_space_after_colon = true 50 | ij_json_space_after_comma = true 51 | ij_json_space_before_colon = true 52 | ij_json_space_before_comma = false 53 | ij_json_spaces_within_braces = false 54 | ij_json_spaces_within_brackets = false 55 | ij_json_wrap_long_lines = false 56 | 57 | [{*.markdown,*.md}] 58 | ij_markdown_force_one_space_after_blockquote_symbol = true 59 | ij_markdown_force_one_space_after_header_symbol = true 60 | ij_markdown_force_one_space_after_list_bullet = true 61 | ij_markdown_force_one_space_between_words = true 62 | ij_markdown_keep_indents_on_empty_lines = false 63 | ij_markdown_max_lines_around_block_elements = 1 64 | ij_markdown_max_lines_around_header = 1 65 | ij_markdown_max_lines_between_paragraphs = 1 66 | ij_markdown_min_lines_around_block_elements = 1 67 | ij_markdown_min_lines_around_header = 1 68 | ij_markdown_min_lines_between_paragraphs = 1 69 | 70 | [{*.py,*.pyw}] 71 | ij_python_align_collections_and_comprehensions = true 72 | ij_python_align_multiline_imports = true 73 | ij_python_align_multiline_parameters = true 74 | ij_python_align_multiline_parameters_in_calls = true 75 | ij_python_blank_line_at_file_end = true 76 | ij_python_blank_lines_after_imports = 1 77 | ij_python_blank_lines_after_local_imports = 0 78 | ij_python_blank_lines_around_class = 1 79 | ij_python_blank_lines_around_method = 1 80 | ij_python_blank_lines_around_top_level_classes_functions = 2 81 | ij_python_blank_lines_before_first_method = 0 82 | ij_python_call_parameters_new_line_after_left_paren = false 83 | ij_python_call_parameters_right_paren_on_new_line = false 84 | ij_python_call_parameters_wrap = normal 85 | ij_python_dict_alignment = 0 86 | ij_python_dict_new_line_after_left_brace = false 87 | ij_python_dict_new_line_before_right_brace = false 88 | ij_python_dict_wrapping = 1 89 | ij_python_from_import_new_line_after_left_parenthesis = false 90 | ij_python_from_import_new_line_before_right_parenthesis = false 91 | ij_python_from_import_parentheses_force_if_multiline = false 92 | ij_python_from_import_trailing_comma_if_multiline = false 93 | ij_python_from_import_wrapping = 1 94 | ij_python_hang_closing_brackets = false 95 | ij_python_keep_blank_lines_in_code = 1 96 | ij_python_keep_blank_lines_in_declarations = 1 97 | ij_python_keep_indents_on_empty_lines = false 98 | ij_python_keep_line_breaks = true 99 | ij_python_method_parameters_new_line_after_left_paren = false 100 | ij_python_method_parameters_right_paren_on_new_line = false 101 | ij_python_method_parameters_wrap = normal 102 | ij_python_new_line_after_colon = false 103 | ij_python_new_line_after_colon_multi_clause = true 104 | ij_python_optimize_imports_always_split_from_imports = false 105 | ij_python_optimize_imports_case_insensitive_order = false 106 | ij_python_optimize_imports_join_from_imports_with_same_source = false 107 | ij_python_optimize_imports_sort_by_type_first = true 108 | ij_python_optimize_imports_sort_imports = true 109 | ij_python_optimize_imports_sort_names_in_from_imports = true 110 | ij_python_space_after_comma = true 111 | ij_python_space_after_number_sign = true 112 | ij_python_space_after_py_colon = true 113 | ij_python_space_before_backslash = true 114 | ij_python_space_before_comma = false 115 | ij_python_space_before_for_semicolon = false 116 | ij_python_space_before_lbracket = false 117 | ij_python_space_before_method_call_parentheses = false 118 | ij_python_space_before_method_parentheses = false 119 | ij_python_space_before_number_sign = true 120 | ij_python_space_before_py_colon = false 121 | ij_python_space_within_empty_method_call_parentheses = false 122 | ij_python_space_within_empty_method_parentheses = false 123 | ij_python_spaces_around_additive_operators = true 124 | ij_python_spaces_around_assignment_operators = true 125 | ij_python_spaces_around_bitwise_operators = true 126 | ij_python_spaces_around_eq_in_keyword_argument = false 127 | ij_python_spaces_around_eq_in_named_parameter = false 128 | ij_python_spaces_around_equality_operators = true 129 | ij_python_spaces_around_multiplicative_operators = true 130 | ij_python_spaces_around_power_operator = true 131 | ij_python_spaces_around_relational_operators = true 132 | ij_python_spaces_around_shift_operators = true 133 | ij_python_spaces_within_braces = false 134 | ij_python_spaces_within_brackets = false 135 | ij_python_spaces_within_method_call_parentheses = false 136 | ij_python_spaces_within_method_parentheses = false 137 | ij_python_use_continuation_indent_for_arguments = false 138 | ij_python_use_continuation_indent_for_collection_and_comprehensions = false 139 | ij_python_use_continuation_indent_for_parameters = true 140 | ij_python_wrap_long_lines = false 141 | 142 | [{*.yaml,*.yml,.taskcat.yml.org}] 143 | indent_size = 2 144 | ij_yaml_align_values_properties = do_not_align 145 | ij_yaml_autoinsert_sequence_marker = true 146 | ij_yaml_block_mapping_on_new_line = false 147 | ij_yaml_indent_sequence_value = true 148 | ij_yaml_keep_indents_on_empty_lines = false 149 | ij_yaml_keep_line_breaks = true 150 | ij_yaml_sequence_on_new_line = false 151 | ij_yaml_space_before_colon = false 152 | ij_yaml_spaces_within_braces = true 153 | ij_yaml_spaces_within_brackets = true 154 | 155 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /taskcat_outputs 3 | /venv 4 | /.venv 5 | .DS_Store 6 | /.taskcat 7 | /output 8 | __pycache__ 9 | /docs/generated/ 10 | /.python-version 11 | /.taskcat_overrides.yml 12 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs/boilerplate"] 2 | path = docs/boilerplate 3 | url = https://github.com/aws-quickstart/quickstart-documentation-base-common.git 4 | 5 | [submodule "submodules/quickstart-aws-vpc"] 6 | path = submodules/quickstart-aws-vpc 7 | url = https://github.com/aws-quickstart/quickstart-aws-vpc.git 8 | branch = main 9 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | language_type: cloudformation -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/.nojekyll -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | fail_fast: false 4 | minimum_pre_commit_version: "2.6.0" 5 | 6 | repos: 7 | - 8 | repo: https://github.com/pre-commit/pre-commit-hooks 9 | rev: 8fe62d14e0b4d7d845a7022c5c2c3ae41bdd3f26 # frozen: v4.1.0 10 | hooks: 11 | - id: check-added-large-files 12 | - id: check-case-conflict 13 | - id: check-merge-conflict 14 | - id: check-executables-have-shebangs 15 | - id: check-json 16 | - id: check-symlinks 17 | - id: check-vcs-permalinks 18 | - id: check-xml 19 | - id: check-yaml 20 | exclude: "templates/.*" 21 | 22 | - # see https://github.com/antonbabenko/pre-commit-terraform 23 | # Temporary, pending approval/merge of https://github.com/antonbabenko/pre-commit-terraform/pull/347 24 | # repo: https://github.com/antonbabenko/pre-commit-terraform 25 | # rev: v1.64.0 26 | repo: https://github.com/aws-ia/pre-commit-terraform 27 | rev: c3fb6c23f30a7951bd2eee6a756a6696824e5e53 # frozen: v1.65.0.pre1 28 | hooks: 29 | # see https://github.com/antonbabenko/pre-commit-terraform#terraform_fmt 30 | - id: terraform_fmt 31 | 32 | # see https://github.com/antonbabenko/pre-commit-terraform#terraform_validate 33 | - id: terraform_validate 34 | exclude: examples/.* 35 | 36 | # see https://github.com/antonbabenko/pre-commit-terraform#terraform_docs 37 | - id: terraform_docs 38 | args: 39 | - "--args=--config=.terraform-docs.yaml" 40 | - "--args=--lockfile=false" 41 | 42 | # see https://github.com/antonbabenko/pre-commit-terraform#terraform_providers_lock 43 | - id: terraform_providers_lock 44 | 45 | # see https://github.com/antonbabenko/pre-commit-terraform#terraform_tflint 46 | - id: terraform_tflint 47 | exclude: 'examples/.*' 48 | args: 49 | - "--args=--config=__GIT_WORKING_DIR__/.tflint.hcl" 50 | 51 | - id: terraform_tfsec 52 | args: 53 | - "--args=--exclude-downloaded-modules" 54 | - "--args=--custom-check-dir=__GIT_WORKING_DIR__/.tfsec" 55 | files: \.tf$ 56 | exclude: \.terraform\/.*$ 57 | - repo: https://github.com/aws-quickstart/qs-cfn-lint-rules 58 | rev: 195c1c9825b1b911b2384e45c6cd18af14e7307d # frozen: v1.1 59 | hooks: 60 | # Inverse flag passed to effectively enforce that CFN templates must be in `templates/` 61 | - id: files-are-not-cfn 62 | name: Validating no CFN files exist outside of templates/ 63 | verbose: true 64 | types_or: [json,yaml] 65 | require_serial: true 66 | args: 67 | - '-i' 68 | exclude: 'templates/.*' 69 | - id: files-are-cfn 70 | name: Validating only CFN files exist in templates/ 71 | verbose: true 72 | require_serial: true 73 | files: 'templates/.*' 74 | - id: qs-cfn-lint-wrapped 75 | files: 'templates/.*' 76 | - repo: https://github.com/aws-ia/pre-commit-hooks 77 | rev: 16be3ef859223383f402c8523bfd3bbb5f750894 # frozen: v1.0 78 | hooks: 79 | - id: git-submodule-sanity-check 80 | always_run: true 81 | - repo: local 82 | hooks: 83 | - id: restricted-filenames 84 | name: Check commits for unexpected file extensions 85 | entry: These files are prohibited and should be removed. 86 | language: fail 87 | files: '.*\.(taskcat_overrides.yml)' 88 | -------------------------------------------------------------------------------- /.taskcat.yml: -------------------------------------------------------------------------------- 1 | project: 2 | name: quickstart-apache-superset 3 | owner: quickstart-eng@amazon.com 4 | package_lambda: false 5 | s3_regional_buckets: true 6 | parameters: 7 | QSS3BucketName: $[taskcat_autobucket] 8 | QSS3BucketRegion: $[taskcat_current_region] 9 | QSS3KeyPrefix: 'quickstart-apache-superset/' 10 | regions: 11 | - af-south-1 12 | - ap-east-1 13 | - ap-south-1 14 | - ap-northeast-3 15 | - ap-northeast-2 16 | - ap-southeast-1 17 | - ap-southeast-2 18 | - ap-northeast-1 19 | - ca-central-1 20 | # - cn-north-1 21 | # - cn-northwest-1 22 | - eu-central-1 23 | - eu-west-1 24 | - eu-west-2 25 | - eu-south-1 26 | - eu-west-3 27 | - eu-north-1 28 | - me-south-1 29 | - sa-east-1 30 | - us-east-1 31 | - us-east-2 32 | - us-west-1 33 | - us-west-2 34 | tests: 35 | default: 36 | parameters: 37 | AvailabilityZones: $[taskcat_getaz_2] 38 | SuperSetUserPassword: P!$[taskcat_genpass_12A] 39 | ClusterName: $[taskcat_genpass_8] 40 | template: templates/superset-entrypoint-new-vpc.template.yaml 41 | regions: 42 | - us-east-1 43 | - us-west-2 44 | - eu-central-1 45 | - eu-north-1 46 | - ap-south-1 47 | - ap-southeast-1 48 | - ap-northeast-1 49 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @troy-ameigh @aws-quickstart/aws_quickstart_team 2 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2016-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at 4 | 5 | http://aws.amazon.com/apache2.0/ 6 | 7 | or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # quickstart-apache-superset 2 | ## Deprecation Notice 3 | 4 | :x: This repository is subject to deprecation in Q4 2024. For more details, [please review this announcement](https://github.com/aws-ia/.announcements/issues/1). 5 | 6 | ## This repository has been deprecated in favor of https://github.com/aws-ia/cfn-ps-apache-superset. 7 | ***We will archive this repository and keep it publicly available until May 1, 2024.*** 8 | -------------------------------------------------------------------------------- /docs/generated/parameters/index.adoc: -------------------------------------------------------------------------------- 1 | 2 | === Parameters for deploying into an new VPC 3 | include::superset-entrypoint-new-vpc.template.adoc[] 4 | 5 | === Parameters for deploying into an existing VPC 6 | include::superset-entrypoint-existing-vpc.template.adoc[] 7 | 8 | === Parameters for deploying into an Existing VPC 9 | include::superset-new-vpc-workload.template.adoc[] 10 | -------------------------------------------------------------------------------- /docs/generated/regions/index.adoc: -------------------------------------------------------------------------------- 1 | // placeholder 2 | -------------------------------------------------------------------------------- /docs/generated/services/index.adoc: -------------------------------------------------------------------------------- 1 | // placeholder 2 | -------------------------------------------------------------------------------- /docs/generated/services/metadata.adoc: -------------------------------------------------------------------------------- 1 | // placeholder 2 | -------------------------------------------------------------------------------- /docs/images/apache-superset-architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/apache-superset-architecture-diagram.png -------------------------------------------------------------------------------- /docs/images/apache-superset-architecture-diagram.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/apache-superset-architecture-diagram.pptx -------------------------------------------------------------------------------- /docs/images/apache-superset-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/apache-superset-icon.png -------------------------------------------------------------------------------- /docs/images/architecture_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/architecture_diagram.png -------------------------------------------------------------------------------- /docs/images/architecture_diagram_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/architecture_diagram_2.png -------------------------------------------------------------------------------- /docs/images/aws-quickstart-graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/aws-quickstart-graphic.png -------------------------------------------------------------------------------- /docs/images/cfn_outputs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/cfn_outputs.png -------------------------------------------------------------------------------- /docs/images/launch_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/launch_options.png -------------------------------------------------------------------------------- /docs/images/login_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/login_page.png -------------------------------------------------------------------------------- /docs/images/result_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/images/result_dashboard.png -------------------------------------------------------------------------------- /docs/languages/docs-cn/_layout_cfn.adoc: -------------------------------------------------------------------------------- 1 | 2 | [.text-center] 3 | [discrete] 4 | == {partner-product-name} on the AWS Cloud 5 | :doctitle: {partner-product-name} on the AWS Cloud 6 | :!toc: 7 | [.text-left] 8 | include::translate-only/introduction.adoc[] 9 | 10 | == Overview 11 | include::translate-only/overview.adoc[] 12 | 13 | 14 | == {partner-product-name} on AWS 15 | ifndef::production_build[] 16 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/product_description.adoc`**_ 17 | [.preview_mode] 18 | |=== 19 | a| 20 | endif::production_build[] 21 | include::{specificdir}/product_description.adoc[] 22 | ifndef::production_build[] 23 | |=== 24 | endif::production_build[] 25 | 26 | == Cost 27 | include::translate-only/cost.adoc[] 28 | 29 | ifndef::disable_licenses[] 30 | == Software licenses 31 | ifndef::production_build[] 32 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/licenses.adoc`**_ 33 | [.preview_mode] 34 | |=== 35 | a| 36 | endif::production_build[] 37 | include::{specificdir}/licenses.adoc[] 38 | ifndef::production_build[] 39 | |=== 40 | endif::production_build[] 41 | endif::disable_licenses[] 42 | 43 | == Architecture 44 | ifndef::production_build[] 45 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/architecture.adoc`**_ 46 | [.preview_mode] 47 | |=== 48 | a| 49 | endif::production_build[] 50 | include::{specificdir}/architecture.adoc[] 51 | ifndef::production_build[] 52 | |=== 53 | endif::production_build[] 54 | 55 | == Planning the deployment 56 | include::translate-only/planning_deployment.adoc[] 57 | 58 | == Deployment steps 59 | include::translate-only/deployment_steps.adoc[] 60 | 61 | // == Parameters 62 | // include::../{generateddir}/parameters/index.adoc[] 63 | 64 | // additional_info.adoc contains 3 sections: Best Practice, Security & Other information 65 | 66 | ifndef::production_build[] 67 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/additional_info.adoc`**_ 68 | ++++ 69 |
70 | ++++ 71 | endif::production_build[] 72 | include::{specificdir}/additional_info.adoc[] 73 | 74 | 75 | 76 | ifndef::production_build[] 77 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/faq_troubleshooting.adoc`**_ 78 | ++++ 79 |
80 | ++++ 81 | endif::production_build[] 82 | include::{specificdir}/faq_troubleshooting.adoc[] 83 | ifndef::production_build[] 84 | ++++ 85 |
86 | ++++ 87 | endif::production_build[] 88 | 89 | ifndef::no_parameters[] 90 | ifdef::parameters_as_appendix[] 91 | == Parameter reference 92 | 93 | NOTE: Unless you are customizing the Quick Start templates for your own deployment projects, we recommend that you keep the default settings for the parameters labeled `Quick Start S3 bucket name`, `Quick Start S3 bucket 94 | Region`, and `Quick Start S3 key prefix`. Changing these parameter settings automatically updates code references to point to a new Quick Start location. For more information, see the https://aws-quickstart.github.io/option1.html[AWS Quick Start Contributor’s Guide^]. 95 | 96 | include::../../{generateddir}/parameters/index.adoc[] 97 | endif::parameters_as_appendix[] 98 | endif::no_parameters[] 99 | 100 | == Send us feedback 101 | 102 | To post feedback, submit feature ideas, or report bugs, use the *Issues* section of the https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] for this Quick Start. To submit code, see the https://aws-quickstart.github.io/[Quick Start Contributor’s Guide^]. 103 | 104 | == Quick Start reference deployments 105 | 106 | See the https://aws.amazon.com/quickstart/[AWS Quick Start home page]. 107 | 108 | 109 | == GitHub repository 110 | 111 | Visit our https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] to download 112 | the templates and scripts for this Quick Start, to post your comments, 113 | and to share your customizations with others. 114 | 115 | ''' 116 | include::translate-only/disclaimer.adoc[] 117 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/index.adoc: -------------------------------------------------------------------------------- 1 | :imagesdir: images 2 | :includedir: boilerplate 3 | :specificdir: partner_editable 4 | :generateddir: generated 5 | :langdir: docs-cn 6 | :icons: font 7 | :toc2: left 8 | :toc-title: 9 | :toclevels: 2 10 | :stylesheet: ../../{includedir}/.css/quickstart.css 11 | :project_cfn: 12 | :template_services_ec2: 13 | include::{specificdir}/_settings.adoc[] 14 | 15 | // the next two lines are needed for quickstarts that are not built with a partner, if removed, footer text is mangled for those quickstarts. They must be below _settings.adoc 16 | ifdef::partner-company-name[:partner-company-footer: {sp}and {partner-company-name}] 17 | ifndef::partner-company-name[:partner-company-footer:] 18 | 19 | // the next 3 lines must remain below partner-company-footer definitions 20 | :nofooter: 21 | :docinfodir: boilerplate 22 | :docinfo: 23 | 24 | :title: {partner-product-name} on the AWS Cloud 25 | ifdef::project_cfn[include::_layout_cfn.adoc[]] 26 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/_settings.adoc: -------------------------------------------------------------------------------- 1 | // Change the following attributes. 2 | :quickstart-project-name: quickstart-documentation-base 3 | :partner-product-name: Example Product Name 4 | // For the following attribute, if you have no short name, enter the same name as partner-product-name. 5 | :partner-product-short-name: Example Product Name 6 | // If there's no partner, comment partner-company-name. 7 | :partner-company-name: Example Company Name, Ltd. 8 | :doc-month: Month of launch or significant update (spelled out) 9 | :doc-year: Year 10 | // Uncomment the following "contributor" attributes as appropriate. If the partner agrees to include names, enter contributor names for every line we use. If partner doesn't want to include names, delete all placeholder names and keep only "{partner-company-name}" and "AWS Quick Start team." 11 | //:partner-contributors: Shuai Ye, Michael McConnell, and John Smith, {partner-company-name} 12 | //:other-contributors: Akua Mansa, Trek10 13 | //:aws-contributors: Janine Singh, AWS IoT Partner team 14 | :quickstart-contributors: Toni Jones, AWS Quick Start team 15 | // For deployment_time, use minutes if deployment takes an hour or less, 16 | // for example, 30 minutes or 60 minutes. 17 | // Use hours for deployment times greater than 60 minutes (rounded to a quarter hour), 18 | // for example, 1.25 hours, 2 hours, 2.5 hours. 19 | :deployment_time: 15 minutes / 60 minutes / 1.5 hours 20 | :default_deployment_region: us-east-1 21 | :parameters_as_appendix: 22 | // Uncomment the following two attributes if you are using an AWS Marketplace listing. 23 | // Additional content will be generated automatically based on these attributes. 24 | // :marketplace_subscription: 25 | // :marketplace_listing_url: https://example.com/ 26 | // Uncomment the following attribute to add a statement about AWS and our stance on compliance-related Quick Starts. 27 | // :compliance-statement: Deploying this Quick Start does not guarantee an organization’s compliance with any laws, certifications, policies, or other regulations. 28 | // Uncomment the following two attributes if you are deploying a CDK Quick Start. Make sure to comment out :parameters_as_appendix: also. 29 | // :cdk_qs: 30 | // :no_parameters: 31 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/additional_info.adoc: -------------------------------------------------------------------------------- 1 | // Add steps as necessary for accessing the software, post-configuration, and testing. Don’t include full usage instructions for your software, but add links to your product documentation for that information. 2 | //Should any sections not be applicable, remove them 3 | 4 | == Test the deployment 5 | // If steps are required to test the deployment, add them here. If not, remove the heading 6 | 7 | == Post-deployment steps 8 | // If post-deployment steps are required, add them here. If not, remove the heading 9 | 10 | == Best practices for using {partner-product-short-name} on AWS 11 | // Provide post-deployment best practices for using the technology on AWS, including considerations such as migrating data, backups, ensuring high performance, high availability, etc. Link to software documentation for detailed information. 12 | 13 | _Add any best practices for using the software._ 14 | 15 | == Security 16 | // Provide post-deployment best practices for using the technology on AWS, including considerations such as migrating data, backups, ensuring high performance, high availability, etc. Link to software documentation for detailed information. 17 | 18 | _Add any security-related information._ 19 | 20 | == Other useful information 21 | //Provide any other information of interest to users, especially focusing on areas where AWS or cloud usage differs from on-premises usage. 22 | 23 | _Add any other details that will help the customer use the software on AWS._ 24 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/architecture.adoc: -------------------------------------------------------------------------------- 1 | :xrefstyle: short 2 | 3 | Deploying this Quick Start for a new virtual private cloud (VPC) with 4 | default parameters builds the following {partner-product-short-name} environment in the 5 | AWS Cloud. 6 | 7 | // Replace this example diagram with your own. Follow our wiki guidelines: https://w.amazon.com/bin/view/AWS_Quick_Starts/Process_for_PSAs/#HPrepareyourarchitecturediagram. Upload your source PowerPoint file to the GitHub {deployment name}/docs/images/ directory in this repo. 8 | 9 | [#architecture1] 10 | .Quick Start architecture for {partner-product-short-name} on AWS 11 | image::../images/architecture_diagram.png[Architecture] 12 | 13 | As shown in <>, the Quick Start sets up the following: 14 | 15 | * A highly available architecture that spans two Availability Zones.* 16 | * A VPC configured with public and private subnets, according to AWS 17 | best practices, to provide you with your own virtual network on AWS.* 18 | * In the public subnets: 19 | ** Managed network address translation (NAT) gateways to allow outbound 20 | internet access for resources in the private subnets.* 21 | ** A Linux bastion host in an Auto Scaling group to allow inbound Secure 22 | Shell (SSH) access to EC2 instances in public and private subnets.* 23 | * In the private subnets: 24 | ** . 25 | ** . 26 | // Add bullet points for any additional components that are included in the deployment. Make sure that the additional components are also represented in the architecture diagram. End each bullet with a period. 27 | * . 28 | 29 | [.small]#* The template that deploys the Quick Start into an existing VPC skips the components marked by asterisks and prompts you for your existing VPC configuration.# 30 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/deploy_steps.adoc: -------------------------------------------------------------------------------- 1 | === Confirm your AWS account configuration 2 | 3 | . Sign in to your AWS account at https://aws.amazon.com with an IAM user role that has the necessary permissions. For details, see link:#_planning_the_deployment[Planning the deployment] earlier in this guide. 4 | . Make sure that your AWS account is configured correctly, as discussed in the link:#_technical_requirements[Technical requirements] section. 5 | 6 | // Optional based on Marketplace listing. Not to be edited 7 | ifdef::marketplace_subscription[] 8 | === Subscribe to the {partner-product-short-name} AMI 9 | 10 | This Quick Start requires a subscription to the AMI for {partner-product-short-name} in AWS Marketplace. 11 | 12 | . Sign in to your AWS account. 13 | . Open the page for the {marketplace_listing_url}[{partner-product-short-name} AMI in AWS Marketplace^], and then choose *Continue to Subscribe*. 14 | . Review the terms and conditions for software usage, and then choose *Accept Terms*. + 15 | A confirmation page loads, and an email confirmation is sent to the account owner. For detailed subscription instructions, see the https://aws.amazon.com/marketplace/help/200799470[AWS Marketplace documentation^]. 16 | 17 | . When the subscription process is complete, exit out of AWS Marketplace without further action. *Do not* provision the software from AWS Marketplace—the Quick Start deploys the AMI for you. 18 | endif::marketplace_subscription[] 19 | // \Not to be edited 20 | 21 | === Launch the Quick Start 22 | // Adapt the following warning to your Quick Start. 23 | WARNING: If you’re deploying {partner-product-short-name} into an existing VPC, make sure that your VPC has two private subnets in different Availability Zones for the workload instances and that the subnets aren’t shared. This Quick Start doesn’t support https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html[shared subnets^]. These subnets require https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html[NAT gateways^] in their route tables to allow the instances to download packages and software without exposing them to the internet. Also make sure that the domain name option in the DHCP options is configured as explained in http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html[DHCP options sets^]. You provide your VPC settings when you launch the Quick Start. 24 | 25 | Each deployment takes about {deployment_time} to complete. 26 | 27 | . Sign in to your AWS account, and choose one of the following options to launch the AWS CloudFormation template. For help with choosing an option, see link:#_deployment_options[Deployment options] earlier in this guide. 28 | + 29 | [cols="3,1"] 30 | |=== 31 | ^|http://qs_launch_permalink[Deploy {partner-product-short-name} into a new VPC on AWS^] 32 | ^|http://qs_template_permalink[View template^] 33 | 34 | ^|http://qs_launch_permalink[Deploy {partner-product-short-name} into an existing VPC on AWS^] 35 | ^|http://qs_template_permalink[View template^] 36 | |=== 37 | + 38 | . Check the AWS Region that’s displayed in the upper-right corner of the navigation bar, and change it if necessary. This Region is where the network infrastructure for {partner-product-short-name} is built. The template is launched in the {default_deployment_region} Region by default. For other choices, see link:#_supported_regions[Supported Regions] earlier in this guide. 39 | . On the *Create stack* page, keep the default setting for the template URL, and then choose *Next*. 40 | . On the *Specify stack details* page, change the stack name if needed. Review the parameters for the template. Provide values for the parameters that require input. For all other parameters, review the default settings and customize them as necessary. For details on each parameter, see the link:#_parameter_reference[Parameter reference] section of this guide. When you finish reviewing and customizing the parameters, choose *Next*. 41 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/deployment_options.adoc: -------------------------------------------------------------------------------- 1 | // Edit this placeholder text to accurately describe your architecture. 2 | 3 | This Quick Start provides two deployment options: 4 | 5 | * *Deploy {partner-product-short-name} into a new VPC*. This option builds a new AWS environment consisting of the VPC, subnets, NAT gateways, security groups, bastion hosts, and other infrastructure components. It then deploys {partner-product-short-name} into this new VPC. 6 | * *Deploy {partner-product-short-name} into an existing VPC*. This option provisions {partner-product-short-name} in your existing AWS infrastructure. 7 | 8 | The Quick Start provides separate templates for these options. It also lets you configure Classless Inter-Domain Routing (CIDR) blocks, instance types, and {partner-product-short-name} settings, as discussed later in this guide. 9 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/faq_troubleshooting.adoc: -------------------------------------------------------------------------------- 1 | // Add any tips or answers to anticipated questions. 2 | 3 | == FAQ 4 | 5 | *Q.* I encountered a *CREATE_FAILED* error when I launched the Quick Start. 6 | 7 | *A.* If AWS CloudFormation fails to create the stack, relaunch the template with *Rollback on failure* set to *Disabled*. This setting is under *Advanced* in the AWS CloudFormation console on the *Configure stack options* page. With this setting, the stack’s state is retained, and the instance keeps running so that you can troubleshoot the issue. (For Windows, look at the log files in `%ProgramFiles%\Amazon\EC2ConfigService` and `C:\cfn\log`.) 8 | // Customize this answer if needed. For example, if you’re deploying on Linux instances, either provide the location for log files on Linux or omit the final sentence. If the Quick Start has no EC2 instances, revise accordingly (something like "and the assets keep running"). 9 | 10 | WARNING: When you set *Rollback on failure* to *Disabled*, you continue to incur AWS charges for this stack. Delete the stack when you finish troubleshooting. 11 | 12 | For more information, see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html[Troubleshooting AWS CloudFormation^]. 13 | 14 | *Q.* I encountered a size-limitation error when I deployed the AWS CloudFormation templates. 15 | 16 | *A.* Launch the Quick Start templates from the links in this guide or from another S3 bucket. If you deploy the templates from a local copy on your computer or from a location other than an S3 bucket, you might encounter template-size limitations. For more information, see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html[AWS CloudFormation quotas^]. 17 | 18 | 19 | == Troubleshooting 20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/licenses.adoc: -------------------------------------------------------------------------------- 1 | // Include details about any licenses and how to sign up. Provide links as appropriate. If no licenses are required, clarify that. The following paragraphs provide examples of details you can provide. Remove italics, and rephrase as appropriate. 2 | 3 | _No licenses are required to deploy this Quick Start. All AWS service resources consumed during the launch of the Quick Start incur AWS service usage costs._ 4 | 5 | _Some configurations of the {partner-product-short-name} Quick Start involve the use of third-party software. You are responsible for obtaining a license directly from the software vendor._ 6 | 7 | _This Quick Start requires a license for {partner-product-short-name}. To use the Quick Start in your production environment, sign up for a license at . When you launch the Quick Start, place the license key in an S3 bucket and specify its location._ 8 | 9 | _If you don’t have a license, the Quick Start deploys with a trial license. The trial license gives you days of free usage in a non-production environment. After this time, you can upgrade to a production license by following the instructions at ._ 10 | 11 | // Or, if the deployment uses an AMI, update this paragraph. If it doesn’t, remove the paragraph. 12 | _The Quick Start requires a subscription to the Amazon Machine Image (AMI) for {partner-product-short-name}, which is available from https://aws.amazon.com/marketplace/[AWS Marketplace^]. Additional pricing, terms, and conditions may apply. For instructions, see link:#step-2.-subscribe-to-the-software-ami[step 2] in the deployment section._ 13 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/overview_target_and_usage.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // Identify your target audience and explain how/why they would use this Quick Start. 3 | //Avoid borrowing text from third-party websites (copying text from AWS service documentation is fine). Also, avoid marketing-speak, focusing instead on the technical aspect. 4 | 5 | This guide provides instructions for deploying the {partner-product-short-name} Quick Start reference architecture on the AWS Cloud. 6 | 7 | This Quick Start is for users who 8 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/pre-reqs.adoc: -------------------------------------------------------------------------------- 1 | // If no preperation is required, remove all content from here 2 | 3 | ==== Prepare your AWS account 4 | 5 | _Describe any setup required in the AWS account prior to template launch_ 6 | 7 | ==== Prepare your {partner-company-name} account 8 | 9 | _Describe any setup required in the partner portal/account prior to template launch_ 10 | 11 | ==== Prepare for the deployment 12 | 13 | _Describe any preparation required to complete the product build, such as obtaining licenses or placing files in S3_ -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/product_description.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // Briefly describe the software. Use consistent and clear branding. 3 | // Include the benefits of using the software on AWS, and provide details on usage scenarios. 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/regions.adoc: -------------------------------------------------------------------------------- 1 | This Quick Start supports the following Regions: 2 | 3 | * us-east-1, US East (N. Virginia) (EXAMPLE) 4 | * us-east-2, US East (Ohio) (EXAMPLE) 5 | 6 | //Full list: https://docs.aws.amazon.com/general/latest/gr/rande.html 7 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/service_limits.adoc: -------------------------------------------------------------------------------- 1 | // Replace the in each row to specify the number of resources used in this deployment. Remove the rows for resources that aren’t used. 2 | |=== 3 | |Resource |This deployment uses 4 | 5 | // Space needed to maintain table headers 6 | |VPCs | 7 | |Elastic IP addresses | 8 | |Security groups | 9 | |AWS Identity and Access Management (IAM) roles | 10 | |Auto Scaling groups | 11 | |Application Load Balancers | 12 | |Network Load Balancers | 13 | | instances | 14 | |=== 15 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/partner_editable/specialized_knowledge.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // For example: “familiarity with basic concepts in networking, database operations, and data encryption” or “familiarity with .” 3 | // Include links if helpful. 4 | // You don't need to list AWS services or point to general info about AWS; the boilerplate already covers this. 5 | 6 | This Quick Start also assumes familiarity with . 7 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | . 203 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/_layout_cfn_cdk_module.adoc: -------------------------------------------------------------------------------- 1 | 2 | [.text-center] 3 | [discrete] 4 | == {partner-product-name} on the AWS Cloud 5 | :doctitle: {partner-product-name} on the AWS Cloud 6 | :!toc: 7 | [.text-left] 8 | include::../{includedir}/introduction.adoc[] 9 | 10 | == Overview 11 | include::../{includedir}/overview.adoc[] 12 | 13 | 14 | == {partner-product-name} on AWS 15 | ifndef::production_build[] 16 | _**This portion of the deployment guide is located at `docs/{specificdir}/product_description.adoc`**_ 17 | [.preview_mode] 18 | |=== 19 | a| 20 | endif::production_build[] 21 | include::../{specificdir}/product_description.adoc[] 22 | ifndef::production_build[] 23 | |=== 24 | endif::production_build[] 25 | 26 | == AWS costs 27 | include::../{includedir}/cost.adoc[] 28 | 29 | ifndef::disable_licenses[] 30 | == Software licenses 31 | ifndef::production_build[] 32 | _**This portion of the deployment guide is located at `docs/{specificdir}/licenses.adoc`**_ 33 | [.preview_mode] 34 | |=== 35 | a| 36 | endif::production_build[] 37 | include::../{specificdir}/licenses.adoc[] 38 | ifndef::production_build[] 39 | |=== 40 | endif::production_build[] 41 | endif::disable_licenses[] 42 | 43 | == Architecture 44 | ifndef::production_build[] 45 | _**This portion of the deployment guide is located at `docs/{specificdir}/architecture.adoc`**_ 46 | [.preview_mode] 47 | |=== 48 | a| 49 | endif::production_build[] 50 | include::../{specificdir}/architecture.adoc[] 51 | ifndef::production_build[] 52 | |=== 53 | endif::production_build[] 54 | 55 | //== Planning the deployment 56 | 57 | //include::../{includedir}/planning_deployment.adoc[] 58 | 59 | == Planning the deployment 60 | 61 | include::../{includedir}/planning_deployment.adoc[] 62 | 63 | == Deployment steps 64 | include::../{includedir}/deployment_steps_cdk_module.adoc[] 65 | 66 | // == Parameters 67 | // include::../{generateddir}/parameters/index.adoc[] 68 | 69 | // additional_info.adoc contains 3 sections: Best Practice, Security & Other information 70 | 71 | ifndef::production_build[] 72 | _**This portion of the deployment guide is located at `docs/{specificdir}/additional_info.adoc`**_ 73 | ++++ 74 |
75 | ++++ 76 | endif::production_build[] 77 | include::../{specificdir}/additional_info.adoc[] 78 | 79 | 80 | 81 | ifndef::production_build[] 82 | _**This portion of the deployment guide is located at `docs/{specificdir}/faq_troubleshooting.adoc`**_ 83 | ++++ 84 |
85 | ++++ 86 | endif::production_build[] 87 | include::../{specificdir}/faq_troubleshooting.adoc[] 88 | ifndef::production_build[] 89 | ++++ 90 |
91 | ++++ 92 | endif::production_build[] 93 | 94 | //ifndef::no_parameters[] 95 | //ifdef::parameters_as_appendix[] 96 | 97 | //== Parameter reference 98 | 99 | //NOTE: Unless you are customizing the Quick Start templates for your own deployment projects, we recommend that you keep the default settings for the parameters labeled `Quick Start S3 bucket name`, `Quick Start S3 bucket 100 | //Region`, and `Quick Start S3 key prefix`. Changing these parameter settings automatically updates code references to point to a new Quick Start location. For more information, see the https://aws-quickstart.github.io/option1.html[AWS Quick Start Contributor’s Guide^]. 101 | 102 | //include::../{generateddir}/parameters/index.adoc[] 103 | //endif::parameters_as_appendix[] 104 | //endif::no_parameters[] 105 | 106 | == Send us feedback 107 | 108 | To post feedback, submit feature ideas, or report bugs, use the *Issues* section of the https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] for this Quick Start. To submit code, see the https://aws-quickstart.github.io/[Quick Start Contributor’s Guide^]. 109 | 110 | == Quick Start reference deployments 111 | 112 | See the https://aws.amazon.com/quickstart/[AWS Quick Start home page]. 113 | 114 | 115 | == GitHub repository 116 | 117 | Visit our https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] to download 118 | the templates and scripts for this Quick Start, to post your comments, 119 | and to share your customizations with others. 120 | 121 | ''' 122 | include::../{includedir}/disclaimer.adoc[] 123 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/_layout_cfn_eks_module.adoc: -------------------------------------------------------------------------------- 1 | :parameters_as_appendix: 2 | [.text-center] 3 | [discrete] 4 | == {partner-product-name} 5 | :doctitle: {partner-product-name} 6 | :!toc: 7 | [.text-left] 8 | include::../{includedir}/introduction.adoc[] 9 | 10 | == Overview 11 | include::../{includedir}/overview.adoc[] 12 | 13 | ifndef::disable_licenses[] 14 | == Software licenses 15 | ifndef::production_build[] 16 | _**This portion of the deployment guide is located in `docs/{specificdir}/licenses.adoc`**_ 17 | [.preview_mode] 18 | |=== 19 | a| 20 | endif::production_build[] 21 | include::../{specificdir}/licenses.adoc[] 22 | ifndef::production_build[] 23 | |=== 24 | endif::production_build[] 25 | endif::disable_licenses[] 26 | 27 | == Architecture 28 | Deploying this Quick Start with default parameters into an existing Amazon EKS cluster builds the following environment. For a diagram of the new virtual private cloud (VPC) and Amazon EKS cluster, see https://aws-quickstart.github.io/quickstart-amazon-eks/[Amazon EKS on the AWS Cloud^]. 29 | 30 | [#architecture1] 31 | .Quick Start architecture for _{partner-product-name}_ 32 | [link=images/architecture_diagram.png] 33 | image::../images/architecture_diagram.png[Architecture] 34 | 35 | As shown in Figure 1, the Quick Start sets up the following: 36 | 37 | ifndef::production_build[] 38 | _**This portion of the deployment guide is located in `docs/{specificdir}/architecture.adoc`**_ 39 | [.preview_mode] 40 | |=== 41 | a| 42 | endif::production_build[] 43 | include::../{specificdir}/architecture.adoc[] 44 | ifndef::production_build[] 45 | |=== 46 | endif::production_build[] 47 | 48 | == Planning the deployment 49 | 50 | include::../{includedir}/planning_deployment_eks_module.adoc[] 51 | 52 | == Deployment steps 53 | include::../{includedir}/deployment_steps_eks_module.adoc[] 54 | 55 | 56 | ifndef::production_build[] 57 | _**This portion of the deployment guide is located in `docs/{specificdir}/additional_info.adoc`**_ 58 | ++++ 59 |
60 | ++++ 61 | endif::production_build[] 62 | include::../{specificdir}/additional_info.adoc[] 63 | 64 | 65 | 66 | ifndef::production_build[] 67 | _**This portion of the deployment guide is located in `docs/{specificdir}/faq_troubleshooting.adoc`**_ 68 | ++++ 69 |
70 | ++++ 71 | endif::production_build[] 72 | include::../{specificdir}/faq_troubleshooting.adoc[] 73 | ifndef::production_build[] 74 | ++++ 75 |
76 | ++++ 77 | endif::production_build[] 78 | 79 | == Parameter reference 80 | 81 | === Deploy into a new VPC and new Amazon EKS cluster 82 | 83 | The full list of parameters for this entrypoint are documented in https://aws-quickstart.github.io/quickstart-amazon-eks/#_launch_into_a_new_vpc[Amazon EKS on the AWS Cloud^]. 84 | 85 | 86 | === Deploy into a new Amazon EKS cluster in an existing VPC 87 | 88 | The full list of parameters for this entrypoint are documented in https://aws-quickstart.github.io/quickstart-amazon-eks/#_launch_into_an_existing_vpc[Amazon EKS on the AWS Cloud^]. 89 | 90 | include::../{generateddir}/parameters/index.adoc[] 91 | 92 | == Send us feedback 93 | 94 | To post feedback, submit feature ideas, or report bugs, use the *Issues* section of the https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] for this Quick Start. If you want to submit code, review the https://aws-quickstart.github.io/[Quick Start Contributor’s Guide^]. 95 | 96 | == Quick Start reference deployments 97 | 98 | See the https://aws.amazon.com/quickstart/[AWS Quick Start home page^]. 99 | 100 | 101 | == GitHub repository 102 | 103 | See the https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] to download 104 | the templates and scripts for this Quick Start, post comments, 105 | and share customizations with others. 106 | 107 | ''' 108 | include::../{includedir}/disclaimer.adoc[] 109 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/cost.adoc: -------------------------------------------------------------------------------- 1 | 2 | You are responsible for the cost of the AWS services and any third-party licenses used while running this Quick Start. There is no additional cost for 3 | using the Quick Start. 4 | 5 | The AWS CloudFormation templates for Quick Starts include 6 | configuration parameters that you can customize. Some of the settings, 7 | such as the instance type, affect the cost of deployment. For cost estimates, 8 | see the pricing pages for each AWS service you use. Prices are subject to change. 9 | 10 | TIP: After you deploy the Quick Start, https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-gettingstarted-turnonreports.html[create AWS Cost and Usage Reports^] to deliver billing metrics to an Amazon Simple Storage Service (Amazon S3) bucket in your account. These reports provide cost estimates based on usage throughout each month and aggregate the data at the end of the month. For more information, see https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html[What are AWS Cost and Usage Reports?^] 11 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/deployment_steps.adoc: -------------------------------------------------------------------------------- 1 | :xrefstyle: short 2 | 3 | ifndef::production_build[] 4 | _**This portion of the deployment guide is located at `docs/{specificdir}/deploy_steps.adoc`**_ 5 | ++++ 6 |
7 | ++++ 8 | endif::production_build[] 9 | include::../{specificdir}/deploy_steps.adoc[] 10 | ifndef::production_build[] 11 | ++++ 12 |
13 | ++++ 14 | endif::production_build[] 15 | + 16 | ifndef::custom_number_of_deploy_steps[] 17 | ifndef::no_parameters[] 18 | ifndef::parameters_as_appendix[] 19 | In the following tables, parameters are listed by category and described separately for the deployment options. When you finish reviewing and customizing the parameters, choose *Next*. 20 | + 21 | NOTE: Unless you are customizing the Quick Start templates for your own deployment projects, keep the default settings for the parameters *Quick Start S3 bucket name*, *Quick Start S3 bucket Region*, and *Quick Start S3 key prefix*. Changing these settings automatically updates code references to point to a new Quick Start location. For more information, see the https://aws-quickstart.github.io/option1.html[AWS Quick Start Contributor’s Guide^]. 22 | + 23 | // Parameter tables linked in here 24 | include::../{generateddir}/parameters/index.adoc[] 25 | endif::parameters_as_appendix[] 26 | endif::no_parameters[] 27 | + 28 | . On the *Configure stack options* page, you can https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html[specify tags^] (key-value pairs) for resources in your stack and https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html[set advanced options^]. When you’re finished, choose *Next*. 29 | . On the *Review* page, review and confirm the template settings. Under *Capabilities*, select the two check boxes to acknowledge that the template creates IAM resources and might require the ability to automatically expand macros. 30 | . Choose *Create stack* to deploy the stack. 31 | ifndef::partner-product-short-name[. Monitor the status of the stack. When the status is *CREATE_COMPLETE*, the {partner-product-name} deployment is ready.] 32 | ifdef::partner-product-short-name[. Monitor the status of the stack. When the status is *CREATE_COMPLETE*, the {partner-product-short-name} deployment is ready.] 33 | . Use the values displayed in the *Outputs* tab for the stack, as shown in <>, to view the created resources. 34 | 35 | [#cfn_outputs] 36 | ifndef::partner-product-short-name[.{partner-product-name} outputs after successful deployment] 37 | ifdef::partner-product-short-name[.{partner-product-short-name} outputs after successful deployment] 38 | [link=images/cfn_outputs.png] 39 | image::../images/cfn_outputs.png[cfn_outputs,width=100%,height=100%] 40 | endif::custom_number_of_deploy_steps[] 41 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/deployment_steps_cdk_module.adoc: -------------------------------------------------------------------------------- 1 | 2 | ifndef::production_build[] 3 | _**This portion of the deployment guide is located at `docs/{specificdir}/deploy_steps.adoc`**_ 4 | ++++ 5 |
6 | ++++ 7 | endif::production_build[] 8 | include::../{specificdir}/deploy_steps.adoc[] 9 | ifndef::production_build[] 10 | ++++ 11 |
12 | ++++ 13 | endif::production_build[] 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/deployment_steps_eks_module.adoc: -------------------------------------------------------------------------------- 1 | :xrefstyle: short 2 | 3 | === Prepare an existing EKS cluster 4 | NOTE: This step is only required if you launch this Quick Start into an existing Amazon EKS cluster that was not created using the https://aws-quickstart.github.io/quickstart-amazon-eks/[Amazon EKS on the AWS Cloud^] deployment. If you want to create a new EKS cluster with your deployment, skip to step 3. 5 | 6 | . Sign in to your AWS account at https://aws.amazon.com[https://aws.amazon.com^] with an IAM user role that has the necessary permissions. For details, see link:#_planning_the_deployment[Planning the deployment], earlier in this guide. 7 | . Launch the https://us-east-2.console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/create/template?stackName=Amazon-EKS&templateURL=https://aws-quickstart.s3.us-east-1.amazonaws.com/quickstart-amazon-eks/templates/amazon-eks-entrypoint-existing-cluster.template.yaml[cluster preparation template^]. 8 | . The template launches in the US East (Ohio) Region by default. To change the Region, choose another Region from the list in the upper-right corner of the navigation bar. 9 | . On the *Create stack* page, keep the default setting for the template URL, and then choose *Next*. 10 | . On the *Specify stack details* page, change the stack name if needed. Enter the name of the Amazon EKS cluster you want to deploy to in addition to the subnet IDs and security group ID associated with the cluster. These can be obtained from the EKS cluster console. 11 | . On the *Options* page, specify the key-value pairs for resources in your stack, and set advanced options. When you’re done, choose *Next*. 12 | . On the *Review* page, review and confirm your template settings. Under *Capabilities*, select the two check boxes to acknowledge that the template creates IAM resources and might require the ability to automatically expand macros. 13 | . Choose *Create stack* to deploy the stack. 14 | . Monitor the stack's status until it is *CREATE_COMPLETE*. 15 | . From the *Outputs* section of the stack, note the `KubernetesRoleArn` and `HelmRoleArn` roles. 16 | . Add the roles to the `aws-auth config` map in your cluster, specifying `system:masters` for the groups. This allows the Quick Start to manage your cluster via AWS CloudFormation. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html[Managing users or IAM roles for your cluster^]. 17 | 18 | NOTE: Unless you are customizing the Quick Start templates for your own deployment projects, we recommend that you keep the default settings for the parameters labeled `Quick Start S3 bucket name`, `Quick Start S3 bucket 19 | Region`, and `Quick Start S3 key prefix`. Changing these parameter settings automatically updates code references to point to a new Quick Start location. For more information, see the https://aws-quickstart.github.io/option1.html[AWS Quick Start Contributor’s Guide^]. 20 | 21 | include::../{specificdir}/pre-launch-steps.adoc[] 22 | 23 | 24 | === Launch the Quick Start 25 | 26 | NOTE: You are responsible for the cost of the AWS services used while running this Quick Start reference deployment. There is no additional cost for using this Quick Start. For full details, see the pricing pages for each AWS service used by this Quick Start. Prices are subject to change. 27 | 28 | . Sign in to your AWS account, and choose one of the following options to launch the AWS CloudFormation template. For help with choosing an option, see the link:#_deployment_options[Deployment options] section, earlier in this guide. 29 | 30 | [cols=3*] 31 | |=== 32 | ^|{launch_new_vpc}[Deploy into a new VPC and new Amazon EKS cluster^] 33 | ^|{launch_existing_vpc}[Deploy into a new Amazon EKS cluster in an existing VPC^] 34 | ^|{launch_existing_cluster}[Deploy into an existing Amazon EKS cluster^] 35 | 36 | ^|{template_new_vpc}[View template^] 37 | ^|{template_existing_vpc}[View template^] 38 | ^|{template_existing_cluster}[View template^] 39 | |=== 40 | New clusters take about 1.5 hours to deploy. Existing clusters take about {deployment_time} to deploy. 41 | 42 | WARNING: If you deploy {partner-product-short-name} into an existing VPC, ensure that any private subnets have https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html[NAT gateways^] in their route tables to allow the Quick Start to download packages and software. Also, ensure that the domain name in the DHCP options is configured. For more information, see http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html[DHCP options sets^]. 43 | 44 | [start=2] 45 | . Check the AWS Region that’s displayed in the upper-right corner of the navigation bar, and change it if necessary. This is where the network infrastructure for {partner-product-short-name} is built. The template launches in the {default_deployment_region} Region by default. 46 | . On the *Create stack* page, keep the default setting for the template URL, and then choose *Next*. 47 | . On the *Specify stack details* page, change the stack name if needed. Review the parameters for the template. Provide values for the parameters that require input. For all other parameters, review the default settings, and customize them as necessary. For details on each parameter, see the link:#_parameter_reference[Parameter reference] section of this guide. When you finish reviewing and customizing the parameters, choose *Next*. 48 | 49 | . On the *Options* page, specify the https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html[key-value pairs^] for resources in your stack, and https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html[set advanced options^]. When you’re done, choose *Next*. 50 | . On the *Review* page, review and confirm the template settings. Under *Capabilities*, select the two check boxes to acknowledge that the template creates IAM resources and might require the ability to automatically expand macros. 51 | . Choose *Create stack* to deploy the stack. 52 | ifndef::partner-product-short-name[. Monitor the status of the stack. When the status is *CREATE_COMPLETE*, the {partner-product-name} deployment is ready.] 53 | ifdef::partner-product-short-name[. Monitor the status of the stack. When the status is *CREATE_COMPLETE*, the {partner-product-short-name} deployment is ready.] 54 | . Use the values displayed in the *Outputs* tab for the stack, as shown in the following figure. 55 | 56 | [#cfn_outputs] 57 | ifndef::partner-product-short-name[.{partner-product-name} outputs after successful deployment] 58 | ifdef::partner-product-short-name[.{partner-product-short-name} outputs after successful deployment] 59 | [link=images/cfn_outputs.png] 60 | image::../images/cfn_outputs.png[cfn_outputs,width=648,height=439] 61 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/disclaimer.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Notices 3 | 4 | This document is provided for informational purposes only. It represents AWS’s current product offerings and practices as of the date of issue of this document, which are subject to change without notice. Customers are responsible for making their own independent assessment of the information in this document and any use of AWS’s products or services, each of which is provided “as is” without warranty of any kind, whether expressed or implied. This document does not create any warranties, representations, contractual commitments, conditions, or assurances from AWS, its affiliates, suppliers, or licensors. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers. 5 | 6 | The software included with this paper is licensed under the Apache License, version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/[http://aws.amazon.com/apache2.0/^] or in the accompanying "license" file. This code is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied. See the License for specific language governing permissions and limitations. 7 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/index-docinfo-footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/introduction.adoc: -------------------------------------------------------------------------------- 1 | [.text-center] 2 | [discrete] 3 | == Quick Start Reference Deployment 4 | 5 | // Do not change the URL below. The aws-quickstart-graphic.png icon needs to come from the aws-quickstart S3 bucket. 6 | [.text-center] 7 | image::https://aws-quickstart.s3.amazonaws.com/{quickstart-project-name}/docs/boilerplate/.images/aws-quickstart-graphic.png[QS,80,80] 8 | 9 | ifndef::production_build[] 10 | [.text-center] 11 | [discrete] 12 | === DRAFT DOCUMENT / UNOFFICIAL GUIDANCE 13 | _**This portion of the deployment guide is located at `docs/{specificdir}/__settings_.adoc`**_ 14 | [.preview_mode] 15 | |=== 16 | a| 17 | endif::production_build[] 18 | [.text-center] 19 | *{doc-month} {doc-year}* + 20 | ifdef::partner-contributors[] 21 | _{partner-contributors}_ + 22 | endif::partner-contributors[] 23 | ifdef::other-contributors[] 24 | _{other-contributors}_ + 25 | endif::other-contributors[] 26 | ifdef::aws-contributors[] 27 | _{aws-contributors}_ + 28 | endif::aws-contributors[] 29 | _{quickstart-contributors}_ 30 | [.text-left] 31 | 32 | ifndef::production_build[] 33 | |=== 34 | endif::production_build[] 35 | 36 | TIP: Visit our https://github.com/aws-quickstart/{quickstart-project-name}[GitHub repository^] for source files and to post feedback, 37 | report bugs, or submit feature ideas for this Quick Start. 38 | 39 | ifdef::partner-company-name[] 40 | [.text-left] 41 | This Quick Start was created by {partner-company-name} in collaboration with Amazon Web Services (AWS). http://aws.amazon.com/quickstart/[Quick Starts^] are automated reference deployments that use AWS CloudFormation templates to deploy key technologies on AWS, following AWS best practices. 42 | endif::[] 43 | 44 | ifndef::partner-company-name[] 45 | [.text-left] 46 | This Quick Start was created by Amazon Web Services (AWS). http://aws.amazon.com/quickstart/[Quick Starts^] are automated reference deployments that use AWS CloudFormation templates to deploy key technologies on AWS, following AWS best practices. 47 | endif::[] 48 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/overview.adoc: -------------------------------------------------------------------------------- 1 | 2 | 3 | ifndef::production_build[] 4 | _**This portion of the deployment guide is located at `docs/{specificdir}/overview_target_and_usage.adoc`**_ 5 | [.preview_mode] 6 | |=== 7 | a| 8 | endif::production_build[] 9 | include::../{specificdir}/overview_target_and_usage.adoc[] 10 | ifndef::production_build[] 11 | |=== 12 | endif::production_build[] 13 | 14 | ifdef::partner-company-name[] 15 | NOTE: Amazon may share user-deployment information with the AWS Partner that collaborated with AWS on the Quick Start. 16 | endif::partner-company-name[] 17 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/planning_deployment.adoc: -------------------------------------------------------------------------------- 1 | === Specialized knowledge 2 | 3 | This deployment requires a moderate level of familiarity with AWS services. If you’re new to AWS, visit https://aws.amazon.com/getting-started/[Getting Started with AWS^] and https://aws.amazon.com/training/[Training and Certification^]. These sites provide materials for learning how to design, deploy, and operate your infrastructure and applications on the AWS Cloud. 4 | 5 | ifndef::production_build[] 6 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/specialized_knowledge.adoc`**_ 7 | [.preview_mode] 8 | |=== 9 | a| 10 | endif::production_build[] 11 | include::../{specificdir}/specialized_knowledge.adoc[] 12 | ifndef::production_build[] 13 | |=== 14 | endif::production_build[] 15 | 16 | === AWS account 17 | 18 | If you don’t already have an AWS account, create one at https://aws.amazon.com/[https://aws.amazon.com^] by following the on-screen instructions. Part of the sign-up process involves receiving a phone call and entering a PIN using the phone keypad. 19 | 20 | Your AWS account is automatically signed up for all AWS services. You are charged only for the services you use. 21 | 22 | ifndef::disable_requirements[] 23 | === Technical requirements 24 | 25 | Before you launch the Quick Start, review the following information and ensure that your account is properly configured. Otherwise, deployment might fail. 26 | endif::disable_requirements[] 27 | 28 | ==== Resource quotas 29 | If necessary, request https://console.aws.amazon.com/servicequotas/home?region=us-east-2#!/[service quota increases^] for the following resources. You might need to request increases if your existing deployment currently uses these resources and if this Quick Start deployment could result in exceeding the default quotas. The https://console.aws.amazon.com/servicequotas/home?region=us-east-2#!/[Service Quotas console^] displays your usage and quotas for some aspects of some services. For more information, see https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html[What is Service Quotas?^] and https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html[AWS service quotas^]. 30 | 31 | ifndef::production_build[] 32 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/service_limits.adoc`**_ 33 | ++++ 34 |
35 | ++++ 36 | endif::production_build[] 37 | include::../{specificdir}/service_limits.adoc[] 38 | ifndef::production_build[] 39 | ++++ 40 |
41 | ++++ 42 | endif::production_build[] 43 | include::../../../{generateddir}/services/metadata.adoc[] 44 | 45 | ifndef::disable_regions[] 46 | // We can also pull in Regions automatically. 47 | ==== Supported Regions 48 | 49 | ifdef::template_not_all_regions[] 50 | This deployment includes , which isn’t currently supported in https://aws.amazon.com/about-aws/global-infrastructure/[all AWS Regions^]. 51 | endif::template_not_all_regions[] 52 | 53 | ifdef::auto_populate_regions[] 54 | The following Regions are currently supported by this Quick Start. 55 | include::../{generateddir}/regions/index.adoc[] 56 | endif::auto_populate_regions[] 57 | 58 | ifndef::auto_populate_regions[] 59 | 60 | ifndef::production_build[] 61 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/regions.adoc`**_ 62 | ++++ 63 |
64 | ++++ 65 | endif::production_build[] 66 | include::../{specificdir}/regions.adoc[] 67 | ifndef::production_build[] 68 | ++++ 69 |
70 | ++++ 71 | endif::production_build[] 72 | 73 | endif::auto_populate_regions[] 74 | 75 | TIP: Certain Regions are available on an opt-in basis. See https://docs.aws.amazon.com/general/latest/gr/rande-manage.html[Managing AWS Regions^]. 76 | 77 | endif::disable_regions[] 78 | ifdef::template_deterministic_ec2_instances[] 79 | ==== EC2 key pairs 80 | ifndef::production_build[====] 81 | ifndef::production_build[_This section applies only if the Cloudformation templates include EC2 instances._] 82 | ifndef::production_build[====] 83 | Make sure that at least one https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html[Amazon EC2 key pair^] exists in your AWS account in the Region where you plan to deploy the Quick Start. Make note of the key pair name. You need it during deployment. To create a key pair, see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html[Amazon EC2 key pairs and Linux instances^]. 84 | 85 | For testing or proof-of-concept purposes, we recommend creating a new key pair instead of using one that’s already being used by a production instance. 86 | endif::template_deterministic_ec2_instances[] 87 | 88 | ==== IAM permissions 89 | //todo: scope of least-privilege 90 | Before launching the Quick Start, you must sign in to the AWS Management Console with IAM permissions for the resources that the templates deploy. The _AdministratorAccess_ managed policy within IAM provides sufficient permissions, although your organization may choose to use a custom policy with more restrictions. For more information, see https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html[AWS managed policies for job functions^]. 91 | 92 | ifndef::production_build[] 93 | _**This portion of the deployment guide is located at `docs/languages/{langdir}/{specificdir}/pre-reqs.adoc`**_ 94 | [.preview_mode] 95 | |=== 96 | a| 97 | endif::production_build[] 98 | include::../{specificdir}/pre-reqs.adoc[] 99 | ifndef::production_build[] 100 | |=== 101 | endif::production_build[] 102 | 103 | ==== Deployment options 104 | ifndef::production_build[] 105 | _**This portion of the deployment guide is located at `_**This portion of the deployment guide is located at `docs/languages/docs-{LANG_CODE}/{specificdir}/pre-reqs.adoc`**_ 106 | /{specificdir}/deployment_options.adoc`**_ 107 | [.preview_mode] 108 | |=== 109 | a| 110 | endif::production_build[] 111 | include::../{specificdir}/deployment_options.adoc[] 112 | ifndef::production_build[] 113 | |=== 114 | endif::production_build[] 115 | -------------------------------------------------------------------------------- /docs/languages/docs-cn/translate-only/planning_deployment_eks_module.adoc: -------------------------------------------------------------------------------- 1 | === Specialized knowledge 2 | 3 | This deployment guide requires a moderate level of familiarity with 4 | AWS services. If you’re new to AWS, see the https://aws.amazon.com/getting-started/[Getting Started Resource Center^] 5 | and https://aws.amazon.com/training/[AWS Training and Certification^]. These sites provide materials for learning how to design, 6 | deploy, and operate your infrastructure and applications on the AWS Cloud. 7 | 8 | ifndef::production_build[] 9 | _**This portion of the deployment guide is located at `docs/{specificdir}/specialized_knowledge.adoc`**_ 10 | [.preview_mode] 11 | |=== 12 | a| 13 | endif::production_build[] 14 | include::../{specificdir}/specialized_knowledge.adoc[] 15 | ifndef::production_build[] 16 | |=== 17 | endif::production_build[] 18 | 19 | === AWS account 20 | 21 | If you don’t already have an AWS account, create one at https://aws.amazon.com/[https://aws.amazon.com^] by following the on-screen instructions. Part of the sign-up process involves receiving a phone call and entering a PIN using your phone's keypad. 22 | 23 | Your AWS account is automatically signed up for all AWS services. You are charged only for the services you use. 24 | 25 | === Amazon EKS cluster 26 | 27 | If you deploy your cluster into an existing Amazon EKS cluster that was not created by the https://aws-quickstart.github.io/quickstart-amazon-eks/[Amazon EKS on the AWS Cloud^] Quick Start, you must configure your cluster to allow this Quick Start to manage it. For more information, see the link:#_deployment_steps[Deployment steps] section. 28 | 29 | 30 | === IAM permissions 31 | //TODO: scope of least-privilege 32 | Before launching the Quick Start, you must log in to the AWS Management Console with https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html[AWS Identity and Access Management (IAM)^] permissions for the resources and actions that each template deploys. 33 | 34 | The _AdministratorAccess_ managed policy within IAM provides sufficient permissions, although your organization may choose to use a custom policy with more restrictions. 35 | 36 | === Deployment options 37 | 38 | This Quick Start provides three deployment options: 39 | 40 | * *Deploy {partner-product-short-name} into a new VPC (end-to-end deployment)*. This option builds a new AWS environment consisting of the VPC, subnets, NAT gateways, security groups, bastion hosts, EKS cluster, a node group, and other infrastructure components. It then deploys {partner-product-short-name} into this new EKS cluster. 41 | * *Deploy {partner-product-short-name} into a new EKS cluster of an existing VPC*. This option builds a new Amazon EKS cluster, node group, and other infrastructure components into an existing VPC. It then deploys {partner-product-short-name} into this new EKS cluster. 42 | * *Deploy {partner-product-short-name} into an existing EKS cluster*. This option provisions {partner-product-short-name} in your existing AWS infrastructure. Note that when deploying into an EKS cluster that was not created by the https://aws-quickstart.github.io/quickstart-amazon-eks/[Amazon EKS on the AWS Cloud^] Quick Start, you must prepare the cluster as described in the link:#_deployment_steps[Deployment steps] section. 43 | -------------------------------------------------------------------------------- /docs/partner_editable/_settings.adoc: -------------------------------------------------------------------------------- 1 | // Change the following attributes. 2 | :quickstart-project-name: quickstart-apache-superset 3 | :partner-product-name: Apache Superset 4 | // For the following attribute, if you have no short name, enter the same name as partner-product-name. 5 | :partner-product-short-name: Apache Superset 6 | // If there's no partner, comment partner-company-name. 7 | :partner-company-name: AWS Great China Region Solution team 8 | :doc-month: August 9 | :doc-year: 2021 10 | // Uncomment the following "contributor" attributes as appropriate. If the partner agrees to include names, enter contributor names for every line we use. If partner doesn't want to include names, delete all placeholder names and keep only "{partner-company-name}" and "AWS Quick Start team." 11 | :aws-contributors: Ke Yi, AWS Great China Region Solution team 12 | :quickstart-contributors: Troy Ameigh, AWS Integration & Automation team 13 | // For deployment_time, use minutes if deployment takes an hour or less, 14 | // for example, 30 minutes or 60 minutes. 15 | // Use hours for deployment times greater than 60 minutes (rounded to a quarter hour), 16 | // for example, 1.25 hours, 2 hours, 2.5 hours. 17 | :deployment_time: 30 minutes 18 | :default_deployment_region: us-east-1 19 | :parameters_as_appendix: 20 | // Uncomment the following two attributes if you are using an AWS Marketplace listing. 21 | // Additional content will be generated automatically based on these attributes. 22 | // :marketplace_subscription: 23 | // :marketplace_listing_url: https://example.com/ 24 | // Uncomment the following attribute to add a statement about AWS and our stance on compliance-related Quick Starts. 25 | // :compliance-statement: Deploying this Quick Start does not guarantee an organization’s compliance with any laws, certifications, policies, or other regulations. 26 | // Uncomment the following two attributes if you are deploying a CDK Quick Start. Make sure to comment out :parameters_as_appendix: also. 27 | // :cdk_qs: 28 | // :no_parameters: 29 | -------------------------------------------------------------------------------- /docs/partner_editable/additional_info.adoc: -------------------------------------------------------------------------------- 1 | == Best practices for using {partner-product-short-name} on AWS 2 | If you choose *Yes* for the *WithExample* option, you can explore a sample dashboard with a predefined dataset after you log in to the Superset console. Otherwise, you must connect to your datasource (for example, Amazon Redshift or Amazon S3), customize your data, and create a dashboard from the provided visualization plugins. For more information, see the https://superset.apache.org/docs[Superset documentation^]. 3 | 4 | == Security 5 | Apache Superset provides a granular security model through users, roles, and customized permissions. You can associate multiple roles that comprise sets of permissions to access different Superset resources, including *Model & Action*, *Views*, *Data Sources*, and *Databases*. By creating filters assigned to a particular table, the granularity of data access is row level, which means you can specify rows that meet only certain conditions for your users. For more information, see https://superset.apache.org/docs/security[Superset Security^]. 6 | -------------------------------------------------------------------------------- /docs/partner_editable/architecture.adoc: -------------------------------------------------------------------------------- 1 | :xrefstyle: short 2 | 3 | Deploying this Quick Start for a new virtual private cloud (VPC) with 4 | default parameters builds the following {partner-product-short-name} environment in the 5 | AWS Cloud. 6 | 7 | [#architecture1] 8 | .Quick Start architecture for {partner-product-short-name} on AWS 9 | image::../images/architecture_diagram_2.png[Architecture] 10 | 11 | As shown in <>, the Quick Start sets up the following: 12 | 13 | * A highly available architecture that spans two Availability Zones.* 14 | * A VPC configured with public and private subnets, according to AWS 15 | best practices, to provide you with your own virtual network on AWS.* 16 | * A managed internet gateway to direct inbound traffic to an Application Load Balancer, which manages traffic to the AWS Fargate cluster. 17 | * In the public subnets, managed network address translation (NAT) gateways to provide outbound internet access for resources in the private subnets.* 18 | * In the private subnets: 19 | ** An Amazon ECS cluster using AWS Fargate to provide all Superset functions, including the core system, cache, database, message queue, and frontend. 20 | ** Amazon EFS to provide metadata, query cached-data persistency, and share service modules. 21 | ** AWS Cloud Map, a discovery service for application resources. 22 | ** AWS Secrets Manager gerete and store a key as "SECRET_KEY" for securely signing the session cookie and encrypting sensitive information on the database. 23 | * Amazon Athena, a serverless, interactive service to query data and analyze big data in Amazon S3 using standard SQL. 24 | * Amazon Redshift, a fully managed, data-warehouse service. 25 | * Supported database systems, such as Amazon Athena, Amazon Redshift, Amazon DynamoDB, ClickHouse, MySQL, and PostgreSQL. 26 | 27 | [.small]#* The template that deploys the Quick Start into an existing VPC skips the components marked by asterisks and prompts you for your existing VPC configuration.# 28 | -------------------------------------------------------------------------------- /docs/partner_editable/deploy_steps.adoc: -------------------------------------------------------------------------------- 1 | === Confirm your AWS account configuration 2 | 3 | . Sign in to your AWS account at https://aws.amazon.com[https://aws.amazon.com^] (for China Regions, sign in at https://www.amazonaws.cn/en/[https://www.amazonaws.cn/en/^]) with an IAM user role that has the necessary permissions. For more information, see link:#_planning_the_deployment[Planning the deployment], earlier in this guide. 4 | . Ensure that your AWS account is configured correctly, as discussed in the link:#_technical_requirements[Technical requirements] section. 5 | 6 | ifdef::marketplace_subscription[] 7 | === Subscribe to the {partner-product-short-name} AMI 8 | 9 | This Quick Start requires a subscription to the AMI for {partner-product-short-name} in AWS Marketplace. 10 | 11 | . Sign in to your AWS account. 12 | . Open the page for the {marketplace_listing_url}[{partner-product-short-name} AMI in AWS Marketplace^], and then choose *Continue to Subscribe*. 13 | . Review the terms and conditions for software usage, and then choose *Accept Terms*. + 14 | A confirmation page loads, and an email confirmation is sent to the account owner. For detailed subscription instructions, see the https://aws.amazon.com/marketplace/help/200799470[AWS Marketplace documentation^]. 15 | 16 | . When the subscription process is complete, exit out of AWS Marketplace without further action. *Do not* provision the software from AWS Marketplace—the Quick Start deploys the AMI for you. 17 | endif::marketplace_subscription[] 18 | // \Not to be edited 19 | 20 | === Launch the Quick Start 21 | // Adapt the following warning to your Quick Start. 22 | WARNING: If you deploy {partner-product-short-name} into an existing VPC, ensure that your VPC has two private subnets in different Availability Zones for the workload instances and that the subnets are not shared. This Quick Start does not support https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html[shared subnets^]. The subnets require https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html[NAT gateways^] in their route tables to allow the instances to download packages and software without exposing them to the internet. Also ensure that the domain name in the DHCP options is configured, as explained in http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html[DHCP options sets for your VPC^]. Provide your VPC settings when you launch the Quick Start. 23 | 24 | Each deployment takes about {deployment_time} to complete. 25 | 26 | . Sign in to your AWS account, and choose one of the following options to launch the AWS CloudFormation template. For help with choosing an option, see link:#_deployment_options[Deployment options], earlier in this guide. 27 | + 28 | [cols="3,1"] 29 | |=== 30 | ^|https://fwd.aws/q7qnb?[Deploy {partner-product-short-name} into a new VPC on AWS^] 31 | ^|https://fwd.aws/J5d9j?[View template^] 32 | 33 | ^|https://fwd.aws/jWBdy?[Deploy {partner-product-short-name} into an existing VPC on AWS^] 34 | ^|https://fwd.aws/XbeE7?[View template^] 35 | |=== 36 | + 37 | . Check the AWS Region that’s displayed in the upper-right corner of the navigation bar, and change it if necessary. This Region is where the network infrastructure for {partner-product-short-name} is built. The template launches in the {default_deployment_region} Region by default. For other choices, see link:#_supported_regions[Supported Regions], earlier in this guide. 38 | . On the *Create stack* page, keep the default setting for the template URL, and then choose *Next*. 39 | . On the *Specify stack details* page, change the stack name if needed. Review the parameters for the template. Provide values for the parameters that require input. For all other parameters, review the default settings and customize them as necessary. For details about each parameter, see the link:#_parameter_reference[Parameter reference] section of this guide. When you finish reviewing and customizing the parameters, choose *Next*. 40 | + 41 | .. For initial exploration, use the following default settings: 42 | + 43 | image::../images/launch_options.png[Launch Options] 44 | + 45 | .. After the stack is deployed successfully, check the outputs for the Superset dashboard address. 46 | + 47 | image::../images/result_dashboard.png[Result Output] 48 | + 49 | .. Log in to the Superset dashboard using your preconfigured user name and password. 50 | + 51 | image::../images/login_page.png[Login Page] -------------------------------------------------------------------------------- /docs/partner_editable/deployment_options.adoc: -------------------------------------------------------------------------------- 1 | // Edit this placeholder text to accurately describe your architecture. 2 | 3 | This Quick Start provides two deployment options: 4 | 5 | * *Deploy {partner-product-short-name} into a new VPC*. This option builds a new AWS environment consisting of the VPC, subnets, NAT gateways, security groups, and other infrastructure components. It then deploys {partner-product-short-name} into this new VPC. 6 | * *Deploy {partner-product-short-name} into an existing VPC*. This option provisions {partner-product-short-name} in your existing AWS infrastructure. 7 | 8 | This Quick Start provides separate templates for these options. It also lets you configure Classless Inter-Domain Routing (CIDR) blocks, instance types, and {partner-product-short-name} settings, as discussed later in this guide. 9 | -------------------------------------------------------------------------------- /docs/partner_editable/faq_troubleshooting.adoc: -------------------------------------------------------------------------------- 1 | == FAQ 2 | 3 | *Q.* I encountered a *CREATE_FAILED* error when I launched the Quick Start. 4 | 5 | *A.* If AWS CloudFormation fails to create the stack, relaunch the template with *Rollback on failure* set to *Disabled*. This setting is under *Advanced* in the AWS CloudFormation console on the *Configure stack options* page. With this setting, the stack’s state is retained, and the instance remains running so that you can troubleshoot the issue. (For Windows, look at the log files in `%ProgramFiles%\Amazon\EC2ConfigService` and `C:\cfn\log`.) 6 | 7 | WARNING: When you set *Rollback on failure* to *Disabled*, you continue to incur AWS charges for this stack. Ensure that you delete the stack when you finish troubleshooting. For more information, see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html[Troubleshooting AWS CloudFormation^]. 8 | 9 | *Q.* I encountered a size-limitation error when I deployed the AWS CloudFormation templates. 10 | 11 | *A.* Launch the Quick Start templates from the links in this guide or from another S3 bucket. If you deploy the templates from a local copy on your computer, or from a location other than an S3 bucket, you might encounter template-size limitations. For more information, see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html[AWS CloudFormation quotas^]. 12 | -------------------------------------------------------------------------------- /docs/partner_editable/licenses.adoc: -------------------------------------------------------------------------------- 1 | // Include details about any licenses and how to sign up. Provide links as appropriate. If no licenses are required, clarify that. The following paragraphs provide examples of details you can provide. Remove italics, and rephrase as appropriate. 2 | 3 | No additional licenses are required to use this Quick Start. -------------------------------------------------------------------------------- /docs/partner_editable/overview_target_and_usage.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // Identify your target audience and explain how/why they would use this Quick Start. 3 | //Avoid borrowing text from third-party websites (copying text from AWS service documentation is fine). Also, avoid marketing-speak, focusing instead on the technical aspect. 4 | 5 | This Quick Start guide provides instructions for deploying the {partner-product-short-name} reference architecture on the AWS Cloud. Apache Superset is open-source software that can help you with data exploration and visualization. 6 | 7 | This deployment supports many database management systems to store data that can be visualized through Apache Superset. Examples of supported database systems include https://docs.aws.amazon.com/athena/latest/ug/what-is.html[Amazon Athena^], https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html[Amazon Redshift^], https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html[Amazon DynamoDB], https://clickhouse.tech/[ClickHouse^], MySQL, and PostgreSQL. 8 | 9 | This Quick Start is for users who want to use Apache Superset as a business intelligence platform for transitioning from data-driven cognition to data-driven decision making, following AWS best practices. 10 | -------------------------------------------------------------------------------- /docs/partner_editable/pre-reqs.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-quickstart/quickstart-apache-superset/75da4159d0689610761ab5040c34d537b403f8b1/docs/partner_editable/pre-reqs.adoc -------------------------------------------------------------------------------- /docs/partner_editable/product_description.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // Briefly describe the software. Use consistent and clear branding. 3 | // Include the benefits of using the software on AWS, and provide details on usage scenarios. 4 | 5 | Inbound client traffic redirects through an Application Load Balancer to an Amazon Elastic Container Service (Amazon ECS) cluster. Amazon ECS is the core service for all Superset modules, including the core business framework, cache, database, and message queue. Each module runs separately as a single Amazon ECS instance and relaunches if any tasks fail. 6 | 7 | Discovery of all Amazon ECS services is handled by AWS Cloud Map through an internal, private DNS. Outbound traffic, such as for software updates, connects through network address translation (NAT) gateways. Persistent data, which includes queried data and system metadata, is stored in an Elastic File System according to security and cost considerations. 8 | 9 | Compared to the community Apache version, Superset provides the following: 10 | 11 | * Core modules (that is, Superset, cache, and database) that are highly available. 12 | * Business data (that is, metadata, query data, and interactive data) persistence. 13 | * Platform elasticity and scalability. Users do not need to maintain the infrastructure and associated resource scheduling. 14 | * Visualizations for existing data, preinstalled MySQL, PostgreSQL, Amazon Redshift, Amazon Athena, Amazon DynamoDB and ClickHouse data-source driver. 15 | * Future trend predictions, a preinstalled timing-prediction algorithm that is based on imported data. 16 | * Visual Kanban for real-time service metrics and comprehensive application monitoring. -------------------------------------------------------------------------------- /docs/partner_editable/regions.adoc: -------------------------------------------------------------------------------- 1 | This Quick Start is supported in AWS Regions where Amazon ECS is supported. For a list of supported Regions, see https://docs.aws.amazon.com/general/latest/gr/ecs-service.html[Amazon ECS endpoints and quotas^]. -------------------------------------------------------------------------------- /docs/partner_editable/service_limits.adoc: -------------------------------------------------------------------------------- 1 | |=== 2 | |Resource |This deployment uses 3 | 4 | |VPCs | 1 5 | |NAT gateways | 2 6 | |Elastic IP addresses | 2 7 | |Security groups | 1 8 | |AWS Identity and Access Management (IAM) roles | 14 9 | |Application Load Balancers | 1 10 | |Amazon ECS clusters | 1 11 | |Amazon ECS services | 7 12 | |Amazon EFS access points | 3 13 | |Amazon EFS file systems | 3 14 | |AWS Secrets Manager secrets | 1 15 | |AWS Cloud Map https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html[DiscoverInstances^] | 7 16 | |=== -------------------------------------------------------------------------------- /docs/partner_editable/specialized_knowledge.adoc: -------------------------------------------------------------------------------- 1 | // Replace the content in <> 2 | // For example: “familiarity with basic concepts in networking, database operations, and data encryption” or “familiarity with .” 3 | // Include links if helpful. 4 | // You don't need to list AWS services or point to general info about AWS; the boilerplate already covers this. 5 | 6 | This Quick Start assumes familiarity with basic business intelligence operations, including importing datasources, customizing datasets, and visualizing using a prebuilt dashboard. If data connections are involved, a working knowledge of Athena and Amazon Redshift is recommended. 7 | -------------------------------------------------------------------------------- /templates/superset-entrypoint-new-vpc.template.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: "2010-09-09" 2 | Description: "(SO8018)—Apache Superset on AWS offers the customer a scalable, open-source business intelligence application, v1.0.0 (qs-1s0fbq65f)." 3 | Metadata: 4 | QuickStartDocumentation: 5 | EntrypointName: "Parameters for deploying into a new VPC" 6 | Order: "1" 7 | AWS::CloudFormation::Interface: 8 | ParameterGroups: 9 | - Label: 10 | default: "AWS account configuration" 11 | Parameters: 12 | - SuperSetUserName 13 | - SuperSetUserPassword 14 | - WithExample 15 | - InstallProphet 16 | - ClusterName 17 | - Label: 18 | default: "Network configuration" 19 | Parameters: 20 | - AvailabilityZones 21 | - VPCCIDR 22 | - PublicSubnet1CIDR 23 | - PublicSubnet2CIDR 24 | - PrivateSubnet1CIDR 25 | - PrivateSubnet2CIDR 26 | - Label: 27 | default: AWS Quick Start configuration 28 | Parameters: 29 | - QSS3BucketName 30 | - QSS3KeyPrefix 31 | - QSS3BucketRegion 32 | ParameterLabels: 33 | SuperSetUserName: 34 | default: "Initial Superset user name" 35 | SuperSetUserPassword: 36 | default: "Initial Superset password" 37 | WithExample: 38 | default: "Populate example dashboard" 39 | InstallProphet: 40 | default: "Install Prophet library" 41 | ClusterName: 42 | default: "Elastic container cluster name" 43 | AvailabilityZones: 44 | default: "Availability Zones" 45 | VPCCIDR: 46 | default: "VPC CIDR blocks" 47 | PublicSubnet1CIDR: 48 | default: "Public subnet for Availability Zone 1" 49 | PublicSubnet2CIDR: 50 | default: "Public subnet for Availability Zone 2" 51 | PrivateSubnet1CIDR: 52 | default: "Private subnet for Availability Zone 1" 53 | PrivateSubnet2CIDR: 54 | default: "Private subnet for Availability Zone 2" 55 | QSS3BucketName: 56 | default: Quick Start S3 bucket name 57 | QSS3KeyPrefix: 58 | default: Quick Start S3 key prefix 59 | QSS3BucketRegion: 60 | default: Quick Start S3 bucket Region 61 | Parameters: 62 | SuperSetUserName: 63 | Type: String 64 | Description: Superset user name. 65 | AllowedPattern: "[a-zA-Z][a-zA-Z0-9]*" 66 | ConstraintDescription: "Must begin with a letter and contain only alphanumeric characters." 67 | Default: 'supersetuser' 68 | MaxLength: "16" 69 | MinLength: "1" 70 | SuperSetUserPassword: 71 | Description: Superset password. A strict password policy is recommended. 72 | AllowedPattern: "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\\w\\d\\s:])([^\\s]){8,16}$" 73 | ConstraintDescription: "Length 8~16 with space, Must contain 1 uppercase, 1 lowercase, 1 number, 1 non-alpha numeric number, 1 number (0-9)" 74 | MaxLength: "16" 75 | MinLength: "8" 76 | NoEcho: "True" 77 | Type: String 78 | WithExample: 79 | Type: String 80 | Default: "no" 81 | Description: 'Enables or disables populating the dashboard example. Setting this parameter to "yes" populates the dashboard example.' 82 | InstallProphet: 83 | Type: String 84 | Default: "no" 85 | Description: 'Enables or disables Prophet library installation for Forecasting Analytics. Setting this parameter to "yes" installs Prophet to enable Forecasting Analytics.' 86 | ClusterName: 87 | Type: String 88 | Default: 'supersetOnAWS' 89 | Description: Name of the Amazon ECS cluster. 90 | AvailabilityZones: 91 | Description: 'List of Availability Zones to use for the VPC subnets.' 92 | Type: List 93 | VPCCIDR: 94 | Type: String 95 | Default: 192.168.0.0/16 96 | Description: Enter the IP range (CIDR notation) for this VPC. 97 | AllowedPattern: "(?:^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2}))" 98 | ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x." 99 | MinLength: 9 100 | MaxLength: 18 101 | PublicSubnet1CIDR: 102 | Type: String 103 | Default: 192.168.10.0/24 104 | Description: 'Enter the IP range (CIDR notation) for the public subnet in Availability Zone 1.' 105 | AllowedPattern: "(?:^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2}))" 106 | ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x." 107 | MinLength: 9 108 | MaxLength: 18 109 | PublicSubnet2CIDR: 110 | Type: String 111 | Default: 192.168.11.0/24 112 | Description: 'Enter the IP range (CIDR notation) for the public subnet in Availability Zone 2.' 113 | AllowedPattern: "(?:^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2}))" 114 | ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x." 115 | PrivateSubnet1CIDR: 116 | Type: String 117 | Default: 192.168.20.0/24 118 | Description: 'Enter the IP range (CIDR notation) for the private subnet in Availability Zone 1.' 119 | AllowedPattern: "(?:^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2}))" 120 | ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x." 121 | PrivateSubnet2CIDR: 122 | Type: String 123 | Default: 192.168.21.0/24 124 | Description: 'Enter the IP range (CIDR notation) for the private subnet in Availability Zone 2.' 125 | AllowedPattern: "(?:^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2}))" 126 | ConstraintDescription: "Must be a valid IP CIDR range of the form x.x.x.x/x." 127 | QSS3BucketName: 128 | AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$ 129 | ConstraintDescription: Quick Start bucket name can include numbers, lowercase 130 | letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen 131 | (-). 132 | Default: aws-quickstart 133 | Description: S3 bucket name for the Quick Start assets. This string can include 134 | numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start 135 | or end with a hyphen (-). 136 | Type: String 137 | QSS3KeyPrefix: 138 | AllowedPattern: ^[0-9a-zA-Z-/.]*$ 139 | ConstraintDescription: Quick Start key prefix can include numbers, lowercase letters, 140 | uppercase letters, hyphens (-), periods (.) and forward slashes (/). 141 | Default: quickstart-apache-superset/ 142 | Description: S3 key prefix for the Quick Start assets. Quick Start key prefix 143 | can include numbers, lowercase letters, uppercase letters, hyphens (-), periods (.) and 144 | forward slashes (/). 145 | Type: String 146 | QSS3BucketRegion: 147 | Default: 'us-east-1' 148 | Description: 'Region where the Quick Start S3 bucket (QSS3BucketName) is 149 | hosted. When using your own bucket, you must specify this value.' 150 | Type: String 151 | Conditions: 152 | UsingDefaultBucket: !Equals [ !Ref QSS3BucketName, 'aws-quickstart' ] 153 | Resources: 154 | Vpc: 155 | Type: 'AWS::CloudFormation::Stack' 156 | Properties: 157 | TemplateURL: !Sub 158 | - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}submodules/quickstart-aws-vpc/templates/aws-vpc.template.yaml' 159 | - S3Region: !If [ UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion ] 160 | S3Bucket: !If [ UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName ] 161 | Parameters: 162 | AvailabilityZones: !Join 163 | - ',' 164 | - !Ref 'AvailabilityZones' 165 | PublicSubnet1CIDR: !Ref 'PublicSubnet1CIDR' 166 | PublicSubnet2CIDR: !Ref 'PublicSubnet2CIDR' 167 | PrivateSubnet1ACIDR: !Ref 'PrivateSubnet1CIDR' 168 | PrivateSubnet2ACIDR: !Ref 'PrivateSubnet2CIDR' 169 | VPCCIDR: !Ref VPCCIDR 170 | Superset: 171 | Type: 'AWS::CloudFormation::Stack' 172 | Properties: 173 | TemplateURL: !Sub 174 | - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/superset-new-vpc-workload.template.yaml' 175 | - S3Region: !If [ UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion ] 176 | S3Bucket: !If [ UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName ] 177 | Parameters: 178 | UserName: !Ref 'SuperSetUserName' 179 | UserPassword: !Ref 'SuperSetUserPassword' 180 | WithExample: !Ref 'WithExample' 181 | InstallProphet: !Ref 'InstallProphet' 182 | ClusterName: !Ref 'ClusterName' 183 | PublicSubnet1ID: 184 | Fn::GetAtt: [Vpc, Outputs.PublicSubnet1ID] 185 | PublicSubnet2ID: 186 | Fn::GetAtt: [Vpc, Outputs.PublicSubnet2ID] 187 | PrivateSubnet1AID: 188 | Fn::GetAtt: [Vpc, Outputs.PrivateSubnet1AID] 189 | PrivateSubnet2AID: 190 | Fn::GetAtt: [Vpc, Outputs.PrivateSubnet2AID] 191 | VpcID: 192 | Fn::GetAtt: [Vpc, Outputs.VPCID] 193 | Outputs: 194 | SupersetConsole: 195 | Description: SupersetConsole URL 196 | Value: !GetAtt [Superset, Outputs.SupersetConsole] -------------------------------------------------------------------------------- /templates/superset-new-vpc-workload.template.yaml: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | Description: "(SO8018)—Workload for Apache Superset for new VPC, v1.0.0. (qs-1s0fbq68g)." 4 | Metadata: 5 | QuickStartDocumentation: 6 | EntrypointName: "Parameters for deploying into an existing VPC" 7 | Order: "3" 8 | AWS::CloudFormation::Interface: 9 | ParameterGroups: 10 | - Label: 11 | default: "Account configuration" 12 | Parameters: 13 | - UserName 14 | - UserPassword 15 | - WithExample 16 | - InstallProphet 17 | - ClusterName 18 | - Label: 19 | default: "Network configuration" 20 | Parameters: 21 | - VpcID 22 | - PublicSubnet1ID 23 | - PublicSubnet2ID 24 | - PrivateSubnet1AID 25 | - PrivateSubnet2AID 26 | ParameterLabels: 27 | UserName: 28 | default: "Initial Superset user Name" 29 | UserPassword: 30 | default: "Initial Superset password" 31 | WithExample: 32 | default: "Populate example dashboard" 33 | InstallProphet: 34 | default: "Install Prophet library" 35 | VpcID: 36 | default: "VPC ID" 37 | PublicSubnet1ID: 38 | default: "Public subnet for Availability Zone 1" 39 | PublicSubnet2ID: 40 | default: "Public subnet for Availability Zone 2" 41 | PrivateSubnet1AID: 42 | default: "Private subnet for Availability Zone 1" 43 | PrivateSubnet2AID: 44 | default: "Private subnet for Availability Zone 2" 45 | ClusterName: 46 | default: "Amazon ECS cluster name" 47 | Parameters: 48 | UserName: 49 | Type: String 50 | Description: Superset user name. 51 | UserPassword: 52 | Type: String 53 | Description: Superset password. A strict password policy is recommended. 54 | NoEcho: True 55 | WithExample: 56 | Type: String 57 | Default: "no" 58 | Description: 'Enables or disables populating the dashboard example. Setting this parameter to "yes" populates the dashboard example.' 59 | InstallProphet: 60 | Type: String 61 | Default: "no" 62 | Description: 'Enables or disables Prophet library installation for Forecasting Analytics. Setting this parameter to "yes" installs Prophet to enable Forecasting Analytics.' 63 | VpcID: 64 | Type: AWS::EC2::VPC::Id 65 | Description: VPC ID. 66 | PublicSubnet1ID: 67 | Type: AWS::EC2::Subnet::Id 68 | Description: Public subnet for Availability Zone 1. 69 | PublicSubnet2ID: 70 | Type: AWS::EC2::Subnet::Id 71 | Description: Public subnet for Availability Zone 2. 72 | PrivateSubnet1AID: 73 | Type: AWS::EC2::Subnet::Id 74 | Description: Private subnet for Availability Zone 1. 75 | PrivateSubnet2AID: 76 | Type: AWS::EC2::Subnet::Id 77 | Description: Private subnet for Availability Zone 2. 78 | ClusterName: 79 | Default: 'supersetOnAWS' 80 | Description: Name of the Amazon ECS cluster. 81 | Type: String 82 | Resources: 83 | SupersetSecretKey: 84 | Type: 'AWS::SecretsManager::Secret' 85 | Properties: 86 | Name: !Sub ${ClusterName}/secretkey 87 | Description: Secret Key for superset app will be used for securely signing the session cookie and encrypting sensitive information on the database. 88 | GenerateSecretString: 89 | SecretStringTemplate: "{}" 90 | GenerateStringKey: "secretkey" 91 | PasswordLength: 32 92 | SupersetSecretReadPolicy: 93 | Type: "AWS::IAM::Policy" 94 | Properties: 95 | PolicyName: SupersetSecretReadPolicyTest 96 | PolicyDocument: 97 | Version: '2012-10-17' 98 | Statement: 99 | - Effect: Allow 100 | Action: 101 | - secretsmanager:GetSecretValue 102 | Resource: !Ref SupersetSecretKey 103 | Roles: 104 | - !Ref DbTaskExecutionRole 105 | - !Ref SupersetTaskExecutionRole 106 | - !Ref SupersetnodeTaskExecutionRole 107 | - !Ref SupersetworkerTaskExecutionRole 108 | - !Ref SupersetworkerbeatTaskExecutionRole 109 | CloudMap: 110 | Properties: 111 | Description: Service map for Docker compose project. 112 | Name: !Sub ${ClusterName}.local 113 | Vpc: !Ref VpcID 114 | Type: AWS::ServiceDiscovery::PrivateDnsNamespace 115 | Cluster: 116 | Properties: 117 | ClusterName: !Ref ClusterName 118 | Tags: 119 | - Key: com.docker.compose.project 120 | Value: !Ref ClusterName 121 | Type: AWS::ECS::Cluster 122 | Default5432Ingress: 123 | Properties: 124 | CidrIp: 0.0.0.0/0 125 | Description: db:5432/tcp on default network. 126 | FromPort: 5432 127 | GroupId: 128 | Ref: DefaultNetwork 129 | IpProtocol: TCP 130 | ToPort: 5432 131 | Type: AWS::EC2::SecurityGroupIngress 132 | Default6379Ingress: 133 | Properties: 134 | CidrIp: 0.0.0.0/0 135 | Description: redis:6379/tcp on default network. 136 | FromPort: 6379 137 | GroupId: 138 | Ref: DefaultNetwork 139 | IpProtocol: TCP 140 | ToPort: 6379 141 | Type: AWS::EC2::SecurityGroupIngress 142 | Default8088Ingress: 143 | Properties: 144 | CidrIp: 0.0.0.0/0 145 | Description: superset:8088/tcp on default network. 146 | FromPort: 8088 147 | GroupId: 148 | Ref: DefaultNetwork 149 | IpProtocol: TCP 150 | ToPort: 8088 151 | Type: AWS::EC2::SecurityGroupIngress 152 | DefaultNetwork: 153 | Properties: 154 | GroupDescription: Security group for default network. 155 | Tags: 156 | - Key: com.docker.compose.project 157 | Value: !Ref ClusterName 158 | - Key: com.docker.compose.network 159 | Value: !Sub ${ClusterName}_default 160 | VpcId: !Ref VpcID 161 | Type: AWS::EC2::SecurityGroup 162 | DefaultNetworkIngress: 163 | Properties: 164 | Description: Allow communication within network default. 165 | GroupId: 166 | Ref: DefaultNetwork 167 | IpProtocol: "-1" 168 | SourceSecurityGroupId: 169 | Ref: DefaultNetwork 170 | Type: AWS::EC2::SecurityGroupIngress 171 | LoadBalancer: 172 | Properties: 173 | LoadBalancerAttributes: 174 | - Key: load_balancing.cross_zone.enabled 175 | Value: "true" 176 | Scheme: internet-facing 177 | Subnets: 178 | - !Ref PublicSubnet1ID 179 | - !Ref PublicSubnet2ID 180 | Tags: 181 | - Key: com.docker.compose.project 182 | Value: !Ref ClusterName 183 | Type: network 184 | Type: AWS::ElasticLoadBalancingV2::LoadBalancer 185 | LogGroup: 186 | Properties: 187 | LogGroupName: 188 | !Sub 189 | - /docker-compose/${ClusterName}-${StackID} 190 | - StackID: !Select [2, !Split [ /, !Ref AWS::StackId ]] 191 | Type: AWS::Logs::LogGroup 192 | DbService: 193 | DependsOn: 194 | - DbhomeNFSMountTargetOnSubnetB 195 | - DbhomeNFSMountTargetOnSubnetA 196 | Properties: 197 | Cluster: 198 | Fn::GetAtt: 199 | - Cluster 200 | - Arn 201 | DeploymentConfiguration: 202 | MaximumPercent: 200 203 | MinimumHealthyPercent: 100 204 | DeploymentController: 205 | Type: ECS 206 | DesiredCount: 1 207 | LaunchType: FARGATE 208 | NetworkConfiguration: 209 | AwsvpcConfiguration: 210 | AssignPublicIp: ENABLED 211 | SecurityGroups: 212 | - Ref: DefaultNetwork 213 | Subnets: 214 | - !Ref PrivateSubnet1AID 215 | - !Ref PrivateSubnet2AID 216 | PlatformVersion: 1.4.0 217 | PropagateTags: SERVICE 218 | SchedulingStrategy: REPLICA 219 | ServiceRegistries: 220 | - RegistryArn: 221 | Fn::GetAtt: 222 | - DbServiceDiscoveryEntry 223 | - Arn 224 | Tags: 225 | - Key: com.docker.compose.project 226 | Value: !Ref ClusterName 227 | - Key: com.docker.compose.service 228 | Value: db 229 | TaskDefinition: 230 | Ref: DbTaskDefinition 231 | Type: AWS::ECS::Service 232 | DbServiceDiscoveryEntry: 233 | Properties: 234 | Description: 'Entry for "db" service discovery in AWS Cloud Map.' 235 | DnsConfig: 236 | DnsRecords: 237 | - TTL: 60 238 | Type: A 239 | RoutingPolicy: MULTIVALUE 240 | HealthCheckCustomConfig: 241 | FailureThreshold: 1 242 | Name: db 243 | NamespaceId: 244 | Ref: CloudMap 245 | Type: AWS::ServiceDiscovery::Service 246 | DbTaskDefinition: 247 | Properties: 248 | ContainerDefinitions: 249 | - Command: 250 | # private DNS hostnames by default in format of ip-private-ipv4-address.region.compute.internal 251 | - !Sub ${AWS::Region}.compute.internal 252 | # namespace name created in cloud map 253 | - !Sub ${ClusterName}.local 254 | Essential: false 255 | Image: docker/ecs-searchdomain-sidecar:1.0 256 | LogConfiguration: 257 | LogDriver: awslogs 258 | Options: 259 | awslogs-group: 260 | Ref: LogGroup 261 | awslogs-region: 262 | Ref: AWS::Region 263 | awslogs-stream-prefix: !Ref ClusterName 264 | Name: Db_ResolvConf_InitContainer 265 | - DependsOn: 266 | - Condition: SUCCESS 267 | ContainerName: Db_ResolvConf_InitContainer 268 | Environment: 269 | - Name: COMPOSE_PROJECT_NAME 270 | Value: superset 271 | - Name: CYPRESS_CONFIG 272 | Value: "false" 273 | - Name: DATABASE_DB 274 | Value: superset 275 | - Name: DATABASE_DIALECT 276 | Value: postgresql 277 | - Name: DATABASE_HOST 278 | Value: db 279 | - Name: DATABASE_PASSWORD 280 | Value: superset 281 | - Name: DATABASE_PORT 282 | Value: "5432" 283 | - Name: DATABASE_USER 284 | Value: superset 285 | - Name: EXAMPLES_DB 286 | Value: examples 287 | - Name: EXAMPLES_HOST 288 | Value: db 289 | - Name: EXAMPLES_USER 290 | Value: examples 291 | - Name: EXAMPLES_PASSWORD 292 | Value: examples 293 | - Name: EXAMPLES_PORT 294 | Value: "5432" 295 | - Name: FLASK_DEBUG 296 | Value: True 297 | - Name: POSTGRES_DB 298 | Value: superset 299 | - Name: POSTGRES_PASSWORD 300 | Value: superset 301 | - Name: POSTGRES_USER 302 | Value: superset 303 | - Name: PYTHONPATH 304 | Value: /app/pythonpath:/app/docker/pythonpath_dev 305 | - Name: REDIS_HOST 306 | Value: redis 307 | - Name: REDIS_PORT 308 | Value: "6379" 309 | - Name: SUPERSET_ENV 310 | Value: development 311 | - Name: SUPERSET_LOAD_EXAMPLES 312 | Value: !Ref WithExample 313 | - Name: SUPERSET_PORT 314 | Value: "8088" 315 | - Name: SUPERSET_USER 316 | Value: !Ref UserName 317 | - Name: SUPERSET_PASSWORD 318 | Value: !Ref UserPassword 319 | - Name: SECRET_KEY 320 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 321 | Essential: true 322 | Image: public.ecr.aws/p9r6s5p7/superset-postgres:latest 323 | LinuxParameters: {} 324 | LogConfiguration: 325 | LogDriver: awslogs 326 | Options: 327 | awslogs-group: 328 | Ref: LogGroup 329 | awslogs-region: 330 | Ref: AWS::Region 331 | awslogs-stream-prefix: !Ref ClusterName 332 | MountPoints: 333 | - ContainerPath: /var/lib/postgresql/data 334 | SourceVolume: db_home 335 | Name: db 336 | PortMappings: 337 | - ContainerPort: 5432 338 | HostPort: 5432 339 | Protocol: tcp 340 | Cpu: "256" 341 | ExecutionRoleArn: !GetAtt DbTaskExecutionRole.Arn 342 | Family: !Sub ${ClusterName}-db 343 | Memory: "512" 344 | NetworkMode: awsvpc 345 | RequiresCompatibilities: 346 | - FARGATE 347 | TaskRoleArn: 348 | Ref: DbTaskRole 349 | Volumes: 350 | - EFSVolumeConfiguration: 351 | AuthorizationConfig: 352 | AccessPointId: 353 | Ref: DbhomeAccessPoint 354 | IAM: ENABLED 355 | FilesystemId: 356 | Ref: DbhomeFilesystem 357 | TransitEncryption: ENABLED 358 | Name: db_home 359 | Type: AWS::ECS::TaskDefinition 360 | DbTaskExecutionRole: 361 | Properties: 362 | AssumeRolePolicyDocument: 363 | Statement: 364 | - Action: 365 | - sts:AssumeRole 366 | Condition: {} 367 | Effect: Allow 368 | Principal: 369 | Service: ecs-tasks.amazonaws.com 370 | Version: 2012-10-17 371 | ManagedPolicyArns: 372 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 373 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 374 | Tags: 375 | - Key: com.docker.compose.project 376 | Value: !Ref ClusterName 377 | - Key: com.docker.compose.service 378 | Value: db 379 | Type: AWS::IAM::Role 380 | DbTaskRole: 381 | Properties: 382 | AssumeRolePolicyDocument: 383 | Statement: 384 | - Action: 385 | - sts:AssumeRole 386 | Condition: {} 387 | Effect: Allow 388 | Principal: 389 | Service: ecs-tasks.amazonaws.com 390 | Version: 2012-10-17 391 | Policies: 392 | - PolicyDocument: 393 | Statement: 394 | - Action: 395 | - elasticfilesystem:ClientMount 396 | - elasticfilesystem:ClientWrite 397 | - elasticfilesystem:ClientRootAccess 398 | Condition: 399 | StringEquals: 400 | elasticfilesystem:AccessPointArn: 401 | Ref: DbhomeAccessPoint 402 | Effect: Allow 403 | # Principal: {} 404 | Resource: 405 | - Fn::GetAtt: 406 | - DbhomeFilesystem 407 | - Arn 408 | Version: 2012-10-17 409 | PolicyName: DbDbhomeVolumeMountPolicy 410 | Tags: 411 | - Key: com.docker.compose.project 412 | Value: !Ref ClusterName 413 | - Key: com.docker.compose.service 414 | Value: db 415 | Type: AWS::IAM::Role 416 | DbhomeAccessPoint: 417 | Properties: 418 | AccessPointTags: 419 | - Key: com.docker.compose.project 420 | Value: !Ref ClusterName 421 | - Key: com.docker.compose.volume 422 | Value: db_home 423 | - Key: Name 424 | Value: !Sub ${ClusterName}_db_home 425 | FileSystemId: 426 | Ref: DbhomeFilesystem 427 | Type: AWS::EFS::AccessPoint 428 | DbhomeFilesystem: 429 | DeletionPolicy: Delete 430 | Properties: 431 | Encrypted: true 432 | FileSystemTags: 433 | - Key: com.docker.compose.project 434 | Value: !Ref ClusterName 435 | - Key: com.docker.compose.volume 436 | Value: db_home 437 | - Key: Name 438 | Value: !Sub ${ClusterName}_db_home 439 | Type: AWS::EFS::FileSystem 440 | DbhomeNFSMountTargetOnSubnetA: 441 | Properties: 442 | FileSystemId: 443 | Ref: DbhomeFilesystem 444 | SecurityGroups: 445 | - Ref: DefaultNetwork 446 | SubnetId: !Ref PrivateSubnet1AID 447 | Type: AWS::EFS::MountTarget 448 | DbhomeNFSMountTargetOnSubnetB: 449 | Properties: 450 | FileSystemId: 451 | Ref: DbhomeFilesystem 452 | SecurityGroups: 453 | - Ref: DefaultNetwork 454 | SubnetId: !Ref PrivateSubnet2AID 455 | Type: AWS::EFS::MountTarget 456 | RedisAccessPoint: 457 | Properties: 458 | AccessPointTags: 459 | - Key: com.docker.compose.project 460 | Value: !Ref ClusterName 461 | - Key: com.docker.compose.volume 462 | Value: redis 463 | - Key: Name 464 | Value: !Sub ${ClusterName}_redis 465 | FileSystemId: 466 | Ref: RedisFilesystem 467 | Type: AWS::EFS::AccessPoint 468 | RedisFilesystem: 469 | DeletionPolicy: Delete 470 | Properties: 471 | Encrypted: true 472 | FileSystemTags: 473 | - Key: com.docker.compose.project 474 | Value: !Ref ClusterName 475 | - Key: com.docker.compose.volume 476 | Value: redis 477 | - Key: Name 478 | Value: !Sub ${ClusterName}_redis 479 | Type: AWS::EFS::FileSystem 480 | RedisNFSMountTargetOnSubnetA: 481 | Properties: 482 | FileSystemId: 483 | Ref: RedisFilesystem 484 | SecurityGroups: 485 | - Ref: DefaultNetwork 486 | SubnetId: !Ref PrivateSubnet1AID 487 | Type: AWS::EFS::MountTarget 488 | RedisNFSMountTargetOnSubnetB: 489 | Properties: 490 | FileSystemId: 491 | Ref: RedisFilesystem 492 | SecurityGroups: 493 | - Ref: DefaultNetwork 494 | SubnetId: !Ref PrivateSubnet2AID 495 | Type: AWS::EFS::MountTarget 496 | RedisService: 497 | DependsOn: 498 | - RedisNFSMountTargetOnSubnetB 499 | - RedisNFSMountTargetOnSubnetA 500 | Properties: 501 | Cluster: 502 | Fn::GetAtt: 503 | - Cluster 504 | - Arn 505 | DeploymentConfiguration: 506 | MaximumPercent: 200 507 | MinimumHealthyPercent: 100 508 | DeploymentController: 509 | Type: ECS 510 | DesiredCount: 1 511 | LaunchType: FARGATE 512 | NetworkConfiguration: 513 | AwsvpcConfiguration: 514 | AssignPublicIp: ENABLED 515 | SecurityGroups: 516 | - Ref: DefaultNetwork 517 | Subnets: 518 | - !Ref PrivateSubnet1AID 519 | - !Ref PrivateSubnet2AID 520 | PlatformVersion: 1.4.0 521 | PropagateTags: SERVICE 522 | SchedulingStrategy: REPLICA 523 | ServiceRegistries: 524 | - RegistryArn: 525 | Fn::GetAtt: 526 | - RedisServiceDiscoveryEntry 527 | - Arn 528 | Tags: 529 | - Key: com.docker.compose.project 530 | Value: !Ref ClusterName 531 | - Key: com.docker.compose.service 532 | Value: redis 533 | TaskDefinition: 534 | Ref: RedisTaskDefinition 535 | Type: AWS::ECS::Service 536 | RedisServiceDiscoveryEntry: 537 | Properties: 538 | Description: 'Entry for "redis" service discovery in AWS Cloud Map.' 539 | DnsConfig: 540 | DnsRecords: 541 | - TTL: 60 542 | Type: A 543 | RoutingPolicy: MULTIVALUE 544 | HealthCheckCustomConfig: 545 | FailureThreshold: 1 546 | Name: redis 547 | NamespaceId: 548 | Ref: CloudMap 549 | Type: AWS::ServiceDiscovery::Service 550 | RedisTaskDefinition: 551 | Properties: 552 | ContainerDefinitions: 553 | - Command: 554 | - !Sub ${AWS::Region}.compute.internal 555 | - !Sub ${ClusterName}.local 556 | Essential: false 557 | Image: docker/ecs-searchdomain-sidecar:1.0 558 | LogConfiguration: 559 | LogDriver: awslogs 560 | Options: 561 | awslogs-group: 562 | Ref: LogGroup 563 | awslogs-region: 564 | Ref: AWS::Region 565 | awslogs-stream-prefix: !Ref ClusterName 566 | Name: Redis_ResolvConf_InitContainer 567 | - DependsOn: 568 | - Condition: SUCCESS 569 | ContainerName: Redis_ResolvConf_InitContainer 570 | Essential: true 571 | Image: docker.io/library/redis:7.0@sha256:5050c3b85c308ec9e9eafb8ac7b3a8742a61cdb298d79851141a500491d45baf 572 | LinuxParameters: {} 573 | LogConfiguration: 574 | LogDriver: awslogs 575 | Options: 576 | awslogs-group: 577 | Ref: LogGroup 578 | awslogs-region: 579 | Ref: AWS::Region 580 | awslogs-stream-prefix: !Ref ClusterName 581 | MountPoints: 582 | - ContainerPath: /data 583 | SourceVolume: redis 584 | Name: redis 585 | PortMappings: 586 | - ContainerPort: 6379 587 | HostPort: 6379 588 | Protocol: tcp 589 | Cpu: "256" 590 | ExecutionRoleArn: !GetAtt RedisTaskExecutionRole.Arn 591 | Family: !Sub ${ClusterName}-redis 592 | Memory: "512" 593 | NetworkMode: awsvpc 594 | RequiresCompatibilities: 595 | - FARGATE 596 | TaskRoleArn: 597 | Ref: RedisTaskRole 598 | Volumes: 599 | - EFSVolumeConfiguration: 600 | AuthorizationConfig: 601 | AccessPointId: 602 | Ref: RedisAccessPoint 603 | IAM: ENABLED 604 | FilesystemId: 605 | Ref: RedisFilesystem 606 | TransitEncryption: ENABLED 607 | Name: redis 608 | Type: AWS::ECS::TaskDefinition 609 | RedisTaskExecutionRole: 610 | Properties: 611 | AssumeRolePolicyDocument: 612 | Statement: 613 | - Action: 614 | - sts:AssumeRole 615 | Condition: {} 616 | Effect: Allow 617 | Principal: 618 | Service: ecs-tasks.amazonaws.com 619 | Version: 2012-10-17 620 | ManagedPolicyArns: 621 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 622 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 623 | Tags: 624 | - Key: com.docker.compose.project 625 | Value: !Ref ClusterName 626 | - Key: com.docker.compose.service 627 | Value: redis 628 | Type: AWS::IAM::Role 629 | RedisTaskRole: 630 | Properties: 631 | AssumeRolePolicyDocument: 632 | Statement: 633 | - Action: 634 | - sts:AssumeRole 635 | Condition: {} 636 | Effect: Allow 637 | Principal: 638 | Service: ecs-tasks.amazonaws.com 639 | Version: 2012-10-17 640 | Policies: 641 | - PolicyDocument: 642 | Statement: 643 | - Action: 644 | - elasticfilesystem:ClientMount 645 | - elasticfilesystem:ClientWrite 646 | - elasticfilesystem:ClientRootAccess 647 | Condition: 648 | StringEquals: 649 | elasticfilesystem:AccessPointArn: 650 | Ref: RedisAccessPoint 651 | Effect: Allow 652 | # Principal: {} 653 | Resource: 654 | - Fn::GetAtt: 655 | - RedisFilesystem 656 | - Arn 657 | Version: 2012-10-17 658 | PolicyName: RedisRedisVolumeMountPolicy 659 | Tags: 660 | - Key: com.docker.compose.project 661 | Value: !Ref ClusterName 662 | - Key: com.docker.compose.service 663 | Value: redis 664 | Type: AWS::IAM::Role 665 | SupersetService: 666 | DependsOn: 667 | - SupersetTCP8088Listener 668 | - DbService 669 | - RedisService 670 | - SupersethomeNFSMountTargetOnSubnetB 671 | - SupersethomeNFSMountTargetOnSubnetA 672 | Properties: 673 | Cluster: 674 | Fn::GetAtt: 675 | - Cluster 676 | - Arn 677 | DeploymentConfiguration: 678 | MaximumPercent: 200 679 | MinimumHealthyPercent: 100 680 | DeploymentController: 681 | Type: ECS 682 | DesiredCount: 1 683 | LaunchType: FARGATE 684 | LoadBalancers: 685 | - ContainerName: superset 686 | ContainerPort: 8088 687 | TargetGroupArn: 688 | Ref: SupersetTCP8088TargetGroup 689 | NetworkConfiguration: 690 | AwsvpcConfiguration: 691 | AssignPublicIp: ENABLED 692 | SecurityGroups: 693 | - Ref: DefaultNetwork 694 | Subnets: 695 | - !Ref PrivateSubnet1AID 696 | - !Ref PrivateSubnet2AID 697 | PlatformVersion: 1.4.0 698 | PropagateTags: SERVICE 699 | SchedulingStrategy: REPLICA 700 | ServiceRegistries: 701 | - RegistryArn: 702 | Fn::GetAtt: 703 | - SupersetServiceDiscoveryEntry 704 | - Arn 705 | Tags: 706 | - Key: com.docker.compose.project 707 | Value: !Ref ClusterName 708 | - Key: com.docker.compose.service 709 | Value: superset 710 | TaskDefinition: 711 | Ref: SupersetTaskDefinition 712 | Type: AWS::ECS::Service 713 | SupersetServiceDiscoveryEntry: 714 | Properties: 715 | Description: 'Entry for "superset" service discovery in AWS Cloud Map.' 716 | DnsConfig: 717 | DnsRecords: 718 | - TTL: 60 719 | Type: A 720 | RoutingPolicy: MULTIVALUE 721 | HealthCheckCustomConfig: 722 | FailureThreshold: 1 723 | Name: superset 724 | NamespaceId: 725 | Ref: CloudMap 726 | Type: AWS::ServiceDiscovery::Service 727 | SupersetTCP8088Listener: 728 | Properties: 729 | DefaultActions: 730 | - ForwardConfig: 731 | TargetGroups: 732 | - TargetGroupArn: 733 | Ref: SupersetTCP8088TargetGroup 734 | Type: forward 735 | LoadBalancerArn: 736 | Ref: LoadBalancer 737 | Port: 8088 738 | Protocol: TCP 739 | Type: AWS::ElasticLoadBalancingV2::Listener 740 | SupersetTCP8088TargetGroup: 741 | Properties: 742 | Port: 8088 743 | Protocol: TCP 744 | Tags: 745 | - Key: com.docker.compose.project 746 | Value: !Ref ClusterName 747 | TargetType: ip 748 | VpcId: !Ref VpcID 749 | Type: AWS::ElasticLoadBalancingV2::TargetGroup 750 | SupersetTaskDefinition: 751 | Properties: 752 | ContainerDefinitions: 753 | - Command: 754 | - !Sub ${AWS::Region}.compute.internal 755 | - !Sub ${ClusterName}.local 756 | Essential: false 757 | Image: docker/ecs-searchdomain-sidecar:1.0 758 | LogConfiguration: 759 | LogDriver: awslogs 760 | Options: 761 | awslogs-group: 762 | Ref: LogGroup 763 | awslogs-region: 764 | Ref: AWS::Region 765 | awslogs-stream-prefix: !Ref ClusterName 766 | Name: Superset_ResolvConf_InitContainer 767 | - Command: 768 | - /app/docker/docker-bootstrap.sh 769 | - app 770 | DependsOn: 771 | - Condition: SUCCESS 772 | ContainerName: Superset_ResolvConf_InitContainer 773 | Environment: 774 | - Name: COMPOSE_PROJECT_NAME 775 | Value: superset 776 | - Name: CYPRESS_CONFIG 777 | - Name: DATABASE_DB 778 | Value: superset 779 | - Name: DATABASE_DIALECT 780 | Value: postgresql 781 | - Name: DATABASE_HOST 782 | Value: db 783 | - Name: DATABASE_PASSWORD 784 | Value: superset 785 | - Name: DATABASE_PORT 786 | Value: "5432" 787 | - Name: DATABASE_USER 788 | Value: superset 789 | - Name: EXAMPLES_DB 790 | Value: examples 791 | - Name: EXAMPLES_HOST 792 | Value: db 793 | - Name: EXAMPLES_USER 794 | Value: examples 795 | - Name: EXAMPLES_PASSWORD 796 | Value: examples 797 | - Name: EXAMPLES_PORT 798 | Value: "5432" 799 | - Name: FLASK_DEBUG 800 | Value: true 801 | - Name: POSTGRES_DB 802 | Value: superset 803 | - Name: POSTGRES_PASSWORD 804 | Value: superset 805 | - Name: POSTGRES_USER 806 | Value: superset 807 | - Name: PYTHONPATH 808 | Value: /app/pythonpath:/app/docker/pythonpath_dev 809 | - Name: REDIS_HOST 810 | Value: redis 811 | - Name: REDIS_PORT 812 | Value: "6379" 813 | - Name: SUPERSET_ENV 814 | Value: development 815 | - Name: SUPERSET_LOAD_EXAMPLES 816 | Value: !Ref WithExample 817 | - Name: SUPERSET_PORT 818 | Value: "8088" 819 | - Name: SUPERSET_USER 820 | Value: !Ref UserName 821 | - Name: SUPERSET_PASSWORD 822 | Value: !Ref UserPassword 823 | - Name: InstallProphet 824 | Value: !Ref InstallProphet 825 | - Name: SECRET_KEY 826 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 827 | Essential: true 828 | Image: public.ecr.aws/p9r6s5p7/superset:latest 829 | LinuxParameters: {} 830 | LogConfiguration: 831 | LogDriver: awslogs 832 | Options: 833 | awslogs-group: 834 | Ref: LogGroup 835 | awslogs-region: 836 | Ref: AWS::Region 837 | awslogs-stream-prefix: !Ref ClusterName 838 | MountPoints: 839 | - ContainerPath: /app/superset_home 840 | SourceVolume: superset_home 841 | Name: superset 842 | PortMappings: 843 | - ContainerPort: 8088 844 | HostPort: 8088 845 | Protocol: tcp 846 | User: root 847 | Cpu: "4096" 848 | ExecutionRoleArn: !GetAtt SupersetTaskExecutionRole.Arn 849 | Family: !Sub ${ClusterName}-superset 850 | Memory: "16384" 851 | NetworkMode: awsvpc 852 | RequiresCompatibilities: 853 | - FARGATE 854 | TaskRoleArn: 855 | Ref: SupersetTaskRole 856 | Volumes: 857 | - EFSVolumeConfiguration: 858 | AuthorizationConfig: 859 | AccessPointId: 860 | Ref: SupersethomeAccessPoint 861 | IAM: ENABLED 862 | FilesystemId: 863 | Ref: SupersethomeFilesystem 864 | TransitEncryption: ENABLED 865 | Name: superset_home 866 | Type: AWS::ECS::TaskDefinition 867 | SupersetTaskExecutionRole: 868 | Properties: 869 | AssumeRolePolicyDocument: 870 | Statement: 871 | - Action: 872 | - sts:AssumeRole 873 | Condition: {} 874 | Effect: Allow 875 | Principal: 876 | Service: ecs-tasks.amazonaws.com 877 | Version: 2012-10-17 878 | ManagedPolicyArns: 879 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 880 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 881 | Tags: 882 | - Key: com.docker.compose.project 883 | Value: !Ref ClusterName 884 | - Key: com.docker.compose.service 885 | Value: superset 886 | Type: AWS::IAM::Role 887 | SupersetTaskRole: 888 | Properties: 889 | AssumeRolePolicyDocument: 890 | Statement: 891 | - Action: 892 | - sts:AssumeRole 893 | Condition: {} 894 | Effect: Allow 895 | Principal: 896 | Service: ecs-tasks.amazonaws.com 897 | Version: 2012-10-17 898 | ManagedPolicyArns: 899 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonS3FullAccess 900 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonAthenaFullAccess 901 | Policies: 902 | - PolicyDocument: 903 | Statement: 904 | - Action: 905 | - elasticfilesystem:ClientMount 906 | - elasticfilesystem:ClientWrite 907 | - elasticfilesystem:ClientRootAccess 908 | Condition: 909 | StringEquals: 910 | elasticfilesystem:AccessPointArn: 911 | Ref: SupersethomeAccessPoint 912 | Effect: Allow 913 | Resource: 914 | - Fn::GetAtt: 915 | - SupersethomeFilesystem 916 | - Arn 917 | Version: 2012-10-17 918 | PolicyName: SupersetSupersethomeVolumeMountPolicy 919 | Tags: 920 | - Key: com.docker.compose.project 921 | Value: !Ref ClusterName 922 | - Key: com.docker.compose.service 923 | Value: superset 924 | Type: AWS::IAM::Role 925 | SupersethomeAccessPoint: 926 | Properties: 927 | AccessPointTags: 928 | - Key: com.docker.compose.project 929 | Value: !Ref ClusterName 930 | - Key: com.docker.compose.volume 931 | Value: superset_home 932 | - Key: Name 933 | Value: !Sub ${ClusterName}_superset_home 934 | FileSystemId: 935 | Ref: SupersethomeFilesystem 936 | Type: AWS::EFS::AccessPoint 937 | SupersethomeFilesystem: 938 | DeletionPolicy: Delete 939 | Properties: 940 | Encrypted: true 941 | FileSystemTags: 942 | - Key: com.docker.compose.project 943 | Value: !Ref ClusterName 944 | - Key: com.docker.compose.volume 945 | Value: superset_home 946 | - Key: Name 947 | Value: !Sub ${ClusterName}_superset_home 948 | Type: AWS::EFS::FileSystem 949 | SupersethomeNFSMountTargetOnSubnetA: 950 | Properties: 951 | FileSystemId: 952 | Ref: SupersethomeFilesystem 953 | SecurityGroups: 954 | - Ref: DefaultNetwork 955 | SubnetId: !Ref PrivateSubnet1AID 956 | Type: AWS::EFS::MountTarget 957 | SupersethomeNFSMountTargetOnSubnetB: 958 | Properties: 959 | FileSystemId: 960 | Ref: SupersethomeFilesystem 961 | SecurityGroups: 962 | - Ref: DefaultNetwork 963 | SubnetId: !Ref PrivateSubnet2AID 964 | Type: AWS::EFS::MountTarget 965 | SupersetinitService: 966 | DependsOn: 967 | - DbService 968 | - RedisService 969 | - SupersethomeNFSMountTargetOnSubnetB 970 | - SupersethomeNFSMountTargetOnSubnetA 971 | Properties: 972 | Cluster: 973 | Fn::GetAtt: 974 | - Cluster 975 | - Arn 976 | ServiceName: "supersetInitService" 977 | DeploymentConfiguration: 978 | MaximumPercent: 200 979 | MinimumHealthyPercent: 100 980 | DeploymentController: 981 | Type: ECS 982 | DesiredCount: 1 983 | LaunchType: FARGATE 984 | NetworkConfiguration: 985 | AwsvpcConfiguration: 986 | AssignPublicIp: ENABLED 987 | SecurityGroups: 988 | - Ref: DefaultNetwork 989 | Subnets: 990 | - !Ref PrivateSubnet1AID 991 | - !Ref PrivateSubnet2AID 992 | PlatformVersion: 1.4.0 993 | PropagateTags: SERVICE 994 | SchedulingStrategy: REPLICA 995 | ServiceRegistries: 996 | - RegistryArn: 997 | Fn::GetAtt: 998 | - SupersetinitServiceDiscoveryEntry 999 | - Arn 1000 | Tags: 1001 | - Key: com.docker.compose.project 1002 | Value: !Ref ClusterName 1003 | - Key: com.docker.compose.service 1004 | Value: superset-init 1005 | TaskDefinition: 1006 | Ref: SupersetinitTaskDefinition 1007 | Type: AWS::ECS::Service 1008 | SupersetinitServiceDiscoveryEntry: 1009 | Properties: 1010 | Description: 'Entry for "superset-init" service discovery in AWS Cloud Map.' 1011 | DnsConfig: 1012 | DnsRecords: 1013 | - TTL: 60 1014 | Type: A 1015 | RoutingPolicy: MULTIVALUE 1016 | HealthCheckCustomConfig: 1017 | FailureThreshold: 1 1018 | Name: superset-init 1019 | NamespaceId: 1020 | Ref: CloudMap 1021 | Type: AWS::ServiceDiscovery::Service 1022 | SupersetinitTaskDefinition: 1023 | Properties: 1024 | ContainerDefinitions: 1025 | - Command: 1026 | - !Sub ${AWS::Region}.compute.internal 1027 | - !Sub ${ClusterName}.local 1028 | Essential: false 1029 | Image: docker/ecs-searchdomain-sidecar:1.0 1030 | LogConfiguration: 1031 | LogDriver: awslogs 1032 | Options: 1033 | awslogs-group: 1034 | Ref: LogGroup 1035 | awslogs-region: 1036 | Ref: AWS::Region 1037 | awslogs-stream-prefix: !Ref ClusterName 1038 | Name: Supersetinit_ResolvConf_InitContainer 1039 | - Command: 1040 | - /app/docker/docker-init.sh 1041 | DependsOn: 1042 | - Condition: SUCCESS 1043 | ContainerName: Supersetinit_ResolvConf_InitContainer 1044 | Environment: 1045 | - Name: COMPOSE_PROJECT_NAME 1046 | Value: superset 1047 | - Name: CYPRESS_CONFIG 1048 | - Name: DATABASE_DB 1049 | Value: superset 1050 | - Name: DATABASE_DIALECT 1051 | Value: postgresql 1052 | - Name: DATABASE_HOST 1053 | Value: db 1054 | - Name: DATABASE_PASSWORD 1055 | Value: superset 1056 | - Name: DATABASE_PORT 1057 | Value: "5432" 1058 | - Name: DATABASE_USER 1059 | Value: superset 1060 | - Name: EXAMPLES_DB 1061 | Value: examples 1062 | - Name: EXAMPLES_HOST 1063 | Value: db 1064 | - Name: EXAMPLES_USER 1065 | Value: examples 1066 | - Name: EXAMPLES_PASSWORD 1067 | Value: examples 1068 | - Name: EXAMPLES_PORT 1069 | Value: "5432" 1070 | - Name: FLASK_DEBUG 1071 | Value: true 1072 | - Name: POSTGRES_DB 1073 | Value: superset 1074 | - Name: POSTGRES_PASSWORD 1075 | Value: superset 1076 | - Name: POSTGRES_USER 1077 | Value: superset 1078 | - Name: PYTHONPATH 1079 | Value: /app/pythonpath:/app/docker/pythonpath_dev 1080 | - Name: REDIS_HOST 1081 | Value: redis 1082 | - Name: REDIS_PORT 1083 | Value: "6379" 1084 | - Name: SUPERSET_ENV 1085 | Value: development 1086 | - Name: SUPERSET_LOAD_EXAMPLES 1087 | Value: !Ref WithExample 1088 | - Name: SUPERSET_PORT 1089 | Value: "8088" 1090 | - Name: SUPERSET_USER 1091 | Value: !Ref UserName 1092 | - Name: SUPERSET_PASSWORD 1093 | Value: !Ref UserPassword 1094 | - Name: SECRET_KEY 1095 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 1096 | Essential: false 1097 | Image: public.ecr.aws/p9r6s5p7/superset:latest 1098 | LinuxParameters: {} 1099 | LogConfiguration: 1100 | LogDriver: awslogs 1101 | Options: 1102 | awslogs-group: 1103 | Ref: LogGroup 1104 | awslogs-region: 1105 | Ref: AWS::Region 1106 | awslogs-stream-prefix: !Ref ClusterName 1107 | MountPoints: 1108 | - ContainerPath: /app/superset_home 1109 | SourceVolume: superset_home 1110 | Name: superset-init 1111 | User: root 1112 | - Command: 1113 | - ecs 1114 | - update-service 1115 | - --cluster 1116 | - !Ref ClusterName 1117 | - --service 1118 | - supersetInitService 1119 | - --desired-count 1120 | - "0" 1121 | DependsOn: 1122 | - Condition: SUCCESS 1123 | ContainerName: superset-init 1124 | Essential: true 1125 | Image: amazon/aws-cli 1126 | LogConfiguration: 1127 | LogDriver: awslogs 1128 | Options: 1129 | awslogs-group: 1130 | Ref: LogGroup 1131 | awslogs-region: 1132 | Ref: AWS::Region 1133 | awslogs-stream-prefix: !Ref ClusterName 1134 | Name: superset-init-cleanup 1135 | Cpu: "512" 1136 | ExecutionRoleArn: !GetAtt SupersetinitTaskExecutionRole.Arn 1137 | Family: !Sub ${ClusterName}-superset-init 1138 | Memory: "1024" 1139 | NetworkMode: awsvpc 1140 | RequiresCompatibilities: 1141 | - FARGATE 1142 | TaskRoleArn: 1143 | Ref: SupersetinitTaskRole 1144 | Volumes: 1145 | - EFSVolumeConfiguration: 1146 | AuthorizationConfig: 1147 | AccessPointId: 1148 | Ref: SupersethomeAccessPoint 1149 | IAM: ENABLED 1150 | FilesystemId: 1151 | Ref: SupersethomeFilesystem 1152 | TransitEncryption: ENABLED 1153 | Name: superset_home 1154 | Type: AWS::ECS::TaskDefinition 1155 | SupersetinitTaskExecutionRole: 1156 | Properties: 1157 | AssumeRolePolicyDocument: 1158 | Statement: 1159 | - Action: 1160 | - sts:AssumeRole 1161 | Condition: {} 1162 | Effect: Allow 1163 | Principal: 1164 | Service: ecs-tasks.amazonaws.com 1165 | Version: 2012-10-17 1166 | ManagedPolicyArns: 1167 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 1168 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 1169 | Tags: 1170 | - Key: com.docker.compose.project 1171 | Value: !Ref ClusterName 1172 | - Key: com.docker.compose.service 1173 | Value: superset-init 1174 | Type: AWS::IAM::Role 1175 | SupersetinitTaskRole: 1176 | Properties: 1177 | AssumeRolePolicyDocument: 1178 | Statement: 1179 | - Action: 1180 | - sts:AssumeRole 1181 | Condition: {} 1182 | Effect: Allow 1183 | Principal: 1184 | Service: ecs-tasks.amazonaws.com 1185 | Version: 2012-10-17 1186 | ManagedPolicyArns: 1187 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonECS_FullAccess 1188 | Policies: 1189 | - PolicyDocument: 1190 | Statement: 1191 | - Action: 1192 | - elasticfilesystem:ClientMount 1193 | - elasticfilesystem:ClientWrite 1194 | - elasticfilesystem:ClientRootAccess 1195 | Condition: 1196 | StringEquals: 1197 | elasticfilesystem:AccessPointArn: 1198 | Ref: SupersethomeAccessPoint 1199 | Effect: Allow 1200 | Resource: 1201 | - Fn::GetAtt: 1202 | - SupersethomeFilesystem 1203 | - Arn 1204 | Version: 2012-10-17 1205 | PolicyName: SupersetinitSupersethomeVolumeMountPolicy 1206 | Tags: 1207 | - Key: com.docker.compose.project 1208 | Value: !Ref ClusterName 1209 | - Key: com.docker.compose.service 1210 | Value: superset-init 1211 | Type: AWS::IAM::Role 1212 | SupersetnodeService: 1213 | DependsOn: 1214 | - DbService 1215 | - RedisService 1216 | - SupersethomeNFSMountTargetOnSubnetB 1217 | - SupersethomeNFSMountTargetOnSubnetA 1218 | Properties: 1219 | Cluster: 1220 | Fn::GetAtt: 1221 | - Cluster 1222 | - Arn 1223 | DeploymentConfiguration: 1224 | MaximumPercent: 200 1225 | MinimumHealthyPercent: 100 1226 | DeploymentController: 1227 | Type: ECS 1228 | DesiredCount: 1 1229 | LaunchType: FARGATE 1230 | NetworkConfiguration: 1231 | AwsvpcConfiguration: 1232 | AssignPublicIp: ENABLED 1233 | SecurityGroups: 1234 | - Ref: DefaultNetwork 1235 | Subnets: 1236 | - !Ref PrivateSubnet1AID 1237 | - !Ref PrivateSubnet2AID 1238 | PlatformVersion: 1.4.0 1239 | PropagateTags: SERVICE 1240 | SchedulingStrategy: REPLICA 1241 | ServiceRegistries: 1242 | - RegistryArn: 1243 | Fn::GetAtt: 1244 | - SupersetnodeServiceDiscoveryEntry 1245 | - Arn 1246 | Tags: 1247 | - Key: com.docker.compose.project 1248 | Value: !Ref ClusterName 1249 | - Key: com.docker.compose.service 1250 | Value: superset-node 1251 | TaskDefinition: 1252 | Ref: SupersetnodeTaskDefinition 1253 | Type: AWS::ECS::Service 1254 | SupersetnodeServiceDiscoveryEntry: 1255 | Properties: 1256 | Description: 'Entry for "superset-node" service discovery in AWS Cloud Map.' 1257 | DnsConfig: 1258 | DnsRecords: 1259 | - TTL: 60 1260 | Type: A 1261 | RoutingPolicy: MULTIVALUE 1262 | HealthCheckCustomConfig: 1263 | FailureThreshold: 1 1264 | Name: superset-node 1265 | NamespaceId: 1266 | Ref: CloudMap 1267 | Type: AWS::ServiceDiscovery::Service 1268 | SupersetnodeTaskDefinition: 1269 | Properties: 1270 | ContainerDefinitions: 1271 | - Command: 1272 | - !Sub ${AWS::Region}.compute.internal 1273 | - !Sub ${ClusterName}.local 1274 | Essential: false 1275 | Image: docker/ecs-searchdomain-sidecar:1.0 1276 | LogConfiguration: 1277 | LogDriver: awslogs 1278 | Options: 1279 | awslogs-group: 1280 | Ref: LogGroup 1281 | awslogs-region: 1282 | Ref: AWS::Region 1283 | awslogs-stream-prefix: !Ref ClusterName 1284 | Name: Supersetnode_ResolvConf_InitContainer 1285 | - Command: 1286 | - /app/docker/docker-frontend.sh 1287 | DependsOn: 1288 | - Condition: SUCCESS 1289 | ContainerName: Supersetnode_ResolvConf_InitContainer 1290 | Environment: 1291 | - Name: COMPOSE_PROJECT_NAME 1292 | Value: superset 1293 | - Name: CYPRESS_CONFIG 1294 | Value: "false" 1295 | - Name: DATABASE_DB 1296 | Value: superset 1297 | - Name: DATABASE_DIALECT 1298 | Value: postgresql 1299 | - Name: DATABASE_HOST 1300 | Value: db 1301 | - Name: DATABASE_PASSWORD 1302 | Value: superset 1303 | - Name: DATABASE_PORT 1304 | Value: "5432" 1305 | - Name: DATABASE_USER 1306 | Value: superset 1307 | - Name: EXAMPLES_DB 1308 | Value: examples 1309 | - Name: EXAMPLES_HOST 1310 | Value: db 1311 | - Name: EXAMPLES_USER 1312 | Value: examples 1313 | - Name: EXAMPLES_PASSWORD 1314 | Value: examples 1315 | - Name: EXAMPLES_PORT 1316 | Value: "5432" 1317 | - Name: FLASK_DEBUG 1318 | Value: true 1319 | - Name: POSTGRES_DB 1320 | Value: superset 1321 | - Name: POSTGRES_PASSWORD 1322 | Value: superset 1323 | - Name: POSTGRES_USER 1324 | Value: superset 1325 | - Name: PYTHONPATH 1326 | Value: /app/pythonpath:/app/docker/pythonpath_dev 1327 | - Name: REDIS_HOST 1328 | Value: redis 1329 | - Name: REDIS_PORT 1330 | Value: "6379" 1331 | - Name: SUPERSET_ENV 1332 | Value: development 1333 | - Name: SUPERSET_LOAD_EXAMPLES 1334 | Value: !Ref WithExample 1335 | - Name: SUPERSET_PORT 1336 | Value: "8088" 1337 | - Name: SUPERSET_USER 1338 | Value: !Ref UserName 1339 | - Name: SUPERSET_PASSWORD 1340 | Value: !Ref UserPassword 1341 | - Name: SECRET_KEY 1342 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 1343 | Essential: true 1344 | Image: public.ecr.aws/p9r6s5p7/superset-node:latest 1345 | LinuxParameters: {} 1346 | LogConfiguration: 1347 | LogDriver: awslogs 1348 | Options: 1349 | awslogs-group: 1350 | Ref: LogGroup 1351 | awslogs-region: 1352 | Ref: AWS::Region 1353 | awslogs-stream-prefix: !Ref ClusterName 1354 | MountPoints: 1355 | - ContainerPath: /app/superset_home 1356 | SourceVolume: superset_home 1357 | Name: superset-node 1358 | Cpu: "4096" 1359 | ExecutionRoleArn: !GetAtt SupersetnodeTaskExecutionRole.Arn 1360 | Family: !Sub ${ClusterName}-superset-node 1361 | Memory: "8192" 1362 | NetworkMode: awsvpc 1363 | RequiresCompatibilities: 1364 | - FARGATE 1365 | TaskRoleArn: 1366 | Ref: SupersetnodeTaskRole 1367 | Volumes: 1368 | - EFSVolumeConfiguration: 1369 | AuthorizationConfig: 1370 | AccessPointId: 1371 | Ref: SupersethomeAccessPoint 1372 | IAM: ENABLED 1373 | FilesystemId: 1374 | Ref: SupersethomeFilesystem 1375 | TransitEncryption: ENABLED 1376 | Name: superset_home 1377 | Type: AWS::ECS::TaskDefinition 1378 | SupersetnodeTaskExecutionRole: 1379 | Properties: 1380 | AssumeRolePolicyDocument: 1381 | Statement: 1382 | - Action: 1383 | - sts:AssumeRole 1384 | Condition: {} 1385 | Effect: Allow 1386 | Principal: 1387 | Service: ecs-tasks.amazonaws.com 1388 | Version: 2012-10-17 1389 | ManagedPolicyArns: 1390 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 1391 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 1392 | Tags: 1393 | - Key: com.docker.compose.project 1394 | Value: !Ref ClusterName 1395 | - Key: com.docker.compose.service 1396 | Value: superset-node 1397 | Type: AWS::IAM::Role 1398 | SupersetnodeTaskRole: 1399 | Properties: 1400 | AssumeRolePolicyDocument: 1401 | Statement: 1402 | - Action: 1403 | - sts:AssumeRole 1404 | Condition: {} 1405 | Effect: Allow 1406 | Principal: 1407 | Service: ecs-tasks.amazonaws.com 1408 | Version: 2012-10-17 1409 | Policies: 1410 | - PolicyDocument: 1411 | Statement: 1412 | - Action: 1413 | - elasticfilesystem:ClientMount 1414 | - elasticfilesystem:ClientWrite 1415 | - elasticfilesystem:ClientRootAccess 1416 | Condition: 1417 | StringEquals: 1418 | elasticfilesystem:AccessPointArn: 1419 | Ref: SupersethomeAccessPoint 1420 | Effect: Allow 1421 | Resource: 1422 | - Fn::GetAtt: 1423 | - SupersethomeFilesystem 1424 | - Arn 1425 | Version: 2012-10-17 1426 | PolicyName: SupersetnodeSupersethomeVolumeMountPolicy 1427 | Tags: 1428 | - Key: com.docker.compose.project 1429 | Value: !Ref ClusterName 1430 | - Key: com.docker.compose.service 1431 | Value: superset-node 1432 | Type: AWS::IAM::Role 1433 | SupersetworkerService: 1434 | DependsOn: 1435 | - DbService 1436 | - RedisService 1437 | - SupersethomeNFSMountTargetOnSubnetB 1438 | - SupersethomeNFSMountTargetOnSubnetA 1439 | Properties: 1440 | Cluster: 1441 | Fn::GetAtt: 1442 | - Cluster 1443 | - Arn 1444 | DeploymentConfiguration: 1445 | MaximumPercent: 200 1446 | MinimumHealthyPercent: 100 1447 | DeploymentController: 1448 | Type: ECS 1449 | DesiredCount: 1 1450 | LaunchType: FARGATE 1451 | NetworkConfiguration: 1452 | AwsvpcConfiguration: 1453 | AssignPublicIp: ENABLED 1454 | SecurityGroups: 1455 | - Ref: DefaultNetwork 1456 | Subnets: 1457 | - !Ref PrivateSubnet1AID 1458 | - !Ref PrivateSubnet2AID 1459 | PlatformVersion: 1.4.0 1460 | PropagateTags: SERVICE 1461 | SchedulingStrategy: REPLICA 1462 | ServiceRegistries: 1463 | - RegistryArn: 1464 | Fn::GetAtt: 1465 | - SupersetworkerServiceDiscoveryEntry 1466 | - Arn 1467 | Tags: 1468 | - Key: com.docker.compose.project 1469 | Value: !Ref ClusterName 1470 | - Key: com.docker.compose.service 1471 | Value: superset-worker 1472 | TaskDefinition: 1473 | Ref: SupersetworkerTaskDefinition 1474 | Type: AWS::ECS::Service 1475 | SupersetworkerServiceDiscoveryEntry: 1476 | Properties: 1477 | Description: 'Entry for "superset-worker" service discovery in AWS Cloud Map.' 1478 | DnsConfig: 1479 | DnsRecords: 1480 | - TTL: 60 1481 | Type: A 1482 | RoutingPolicy: MULTIVALUE 1483 | HealthCheckCustomConfig: 1484 | FailureThreshold: 1 1485 | Name: superset-worker 1486 | NamespaceId: 1487 | Ref: CloudMap 1488 | Type: AWS::ServiceDiscovery::Service 1489 | SupersetworkerTaskDefinition: 1490 | Properties: 1491 | ContainerDefinitions: 1492 | - Command: 1493 | - !Sub ${AWS::Region}.compute.internal 1494 | - !Sub ${ClusterName}.local 1495 | Essential: false 1496 | Image: docker/ecs-searchdomain-sidecar:1.0 1497 | LogConfiguration: 1498 | LogDriver: awslogs 1499 | Options: 1500 | awslogs-group: 1501 | Ref: LogGroup 1502 | awslogs-region: 1503 | Ref: AWS::Region 1504 | awslogs-stream-prefix: !Ref ClusterName 1505 | Name: Supersetworker_ResolvConf_InitContainer 1506 | - Command: 1507 | - /app/docker/docker-bootstrap.sh 1508 | - worker 1509 | DependsOn: 1510 | - Condition: SUCCESS 1511 | ContainerName: Supersetworker_ResolvConf_InitContainer 1512 | Environment: 1513 | - Name: COMPOSE_PROJECT_NAME 1514 | Value: superset 1515 | - Name: CYPRESS_CONFIG 1516 | Value: "false" 1517 | - Name: DATABASE_DB 1518 | Value: superset 1519 | - Name: DATABASE_DIALECT 1520 | Value: postgresql 1521 | - Name: DATABASE_HOST 1522 | Value: db 1523 | - Name: DATABASE_PASSWORD 1524 | Value: superset 1525 | - Name: DATABASE_PORT 1526 | Value: "5432" 1527 | - Name: DATABASE_USER 1528 | Value: superset 1529 | - Name: EXAMPLES_DB 1530 | Value: examples 1531 | - Name: EXAMPLES_HOST 1532 | Value: db 1533 | - Name: EXAMPLES_USER 1534 | Value: examples 1535 | - Name: EXAMPLES_PASSWORD 1536 | Value: examples 1537 | - Name: EXAMPLES_PORT 1538 | Value: "5432" 1539 | - Name: FLASK_DEBUG 1540 | Value: true 1541 | - Name: POSTGRES_DB 1542 | Value: superset 1543 | - Name: POSTGRES_PASSWORD 1544 | Value: superset 1545 | - Name: POSTGRES_USER 1546 | Value: superset 1547 | - Name: PYTHONPATH 1548 | Value: /app/pythonpath:/app/docker/pythonpath_dev 1549 | - Name: REDIS_HOST 1550 | Value: redis 1551 | - Name: REDIS_PORT 1552 | Value: "6379" 1553 | - Name: SUPERSET_ENV 1554 | Value: development 1555 | - Name: SUPERSET_LOAD_EXAMPLES 1556 | Value: !Ref WithExample 1557 | - Name: SUPERSET_PORT 1558 | Value: "8088" 1559 | - Name: SUPERSET_USER 1560 | Value: !Ref UserName 1561 | - Name: SUPERSET_PASSWORD 1562 | Value: !Ref UserPassword 1563 | - Name: SECRET_KEY 1564 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 1565 | Essential: true 1566 | Image: public.ecr.aws/p9r6s5p7/superset:latest 1567 | LinuxParameters: {} 1568 | LogConfiguration: 1569 | LogDriver: awslogs 1570 | Options: 1571 | awslogs-group: 1572 | Ref: LogGroup 1573 | awslogs-region: 1574 | Ref: AWS::Region 1575 | awslogs-stream-prefix: !Ref ClusterName 1576 | MountPoints: 1577 | - ContainerPath: /app/superset_home 1578 | SourceVolume: superset_home 1579 | Name: superset-worker 1580 | User: root 1581 | Cpu: "4096" 1582 | ExecutionRoleArn: !GetAtt SupersetworkerTaskExecutionRole.Arn 1583 | Family: !Sub ${ClusterName}-superset-worker 1584 | Memory: "16384" 1585 | NetworkMode: awsvpc 1586 | RequiresCompatibilities: 1587 | - FARGATE 1588 | TaskRoleArn: 1589 | Ref: SupersetworkerTaskRole 1590 | Volumes: 1591 | - EFSVolumeConfiguration: 1592 | AuthorizationConfig: 1593 | AccessPointId: 1594 | Ref: SupersethomeAccessPoint 1595 | IAM: ENABLED 1596 | FilesystemId: 1597 | Ref: SupersethomeFilesystem 1598 | TransitEncryption: ENABLED 1599 | Name: superset_home 1600 | Type: AWS::ECS::TaskDefinition 1601 | SupersetworkerTaskExecutionRole: 1602 | Properties: 1603 | AssumeRolePolicyDocument: 1604 | Statement: 1605 | - Action: 1606 | - sts:AssumeRole 1607 | Condition: {} 1608 | Effect: Allow 1609 | Principal: 1610 | Service: ecs-tasks.amazonaws.com 1611 | Version: 2012-10-17 1612 | ManagedPolicyArns: 1613 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 1614 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 1615 | Tags: 1616 | - Key: com.docker.compose.project 1617 | Value: !Ref ClusterName 1618 | - Key: com.docker.compose.service 1619 | Value: superset-worker 1620 | Type: AWS::IAM::Role 1621 | SupersetworkerTaskRole: 1622 | Properties: 1623 | AssumeRolePolicyDocument: 1624 | Statement: 1625 | - Action: 1626 | - sts:AssumeRole 1627 | Condition: {} 1628 | Effect: Allow 1629 | Principal: 1630 | Service: ecs-tasks.amazonaws.com 1631 | Version: 2012-10-17 1632 | Policies: 1633 | - PolicyDocument: 1634 | Statement: 1635 | - Action: 1636 | - elasticfilesystem:ClientMount 1637 | - elasticfilesystem:ClientWrite 1638 | - elasticfilesystem:ClientRootAccess 1639 | Condition: 1640 | StringEquals: 1641 | elasticfilesystem:AccessPointArn: 1642 | Ref: SupersethomeAccessPoint 1643 | Effect: Allow 1644 | # Principal: {} 1645 | Resource: 1646 | - Fn::GetAtt: 1647 | - SupersethomeFilesystem 1648 | - Arn 1649 | Version: 2012-10-17 1650 | PolicyName: SupersetworkerSupersethomeVolumeMountPolicy 1651 | Tags: 1652 | - Key: com.docker.compose.project 1653 | Value: !Ref ClusterName 1654 | - Key: com.docker.compose.service 1655 | Value: superset-worker 1656 | Type: AWS::IAM::Role 1657 | 1658 | ## ECS Service - Superset celery beat 1659 | SupersetworkerbeatService: 1660 | DependsOn: 1661 | - DbService 1662 | - RedisService 1663 | - SupersethomeNFSMountTargetOnSubnetB 1664 | - SupersethomeNFSMountTargetOnSubnetA 1665 | Properties: 1666 | Cluster: 1667 | Fn::GetAtt: 1668 | - Cluster 1669 | - Arn 1670 | DeploymentConfiguration: 1671 | MaximumPercent: 200 1672 | MinimumHealthyPercent: 100 1673 | DeploymentController: 1674 | Type: ECS 1675 | DesiredCount: 1 1676 | LaunchType: FARGATE 1677 | NetworkConfiguration: 1678 | AwsvpcConfiguration: 1679 | AssignPublicIp: ENABLED 1680 | SecurityGroups: 1681 | - Ref: DefaultNetwork 1682 | Subnets: 1683 | - !Ref PrivateSubnet1AID 1684 | - !Ref PrivateSubnet2AID 1685 | PlatformVersion: 1.4.0 1686 | PropagateTags: SERVICE 1687 | SchedulingStrategy: REPLICA 1688 | ServiceRegistries: 1689 | - RegistryArn: 1690 | Fn::GetAtt: 1691 | - SupersetworkerbeatServiceDiscoveryEntry 1692 | - Arn 1693 | Tags: 1694 | - Key: com.docker.compose.project 1695 | Value: !Ref ClusterName 1696 | - Key: com.docker.compose.service 1697 | Value: superset-worker-beat 1698 | TaskDefinition: 1699 | Ref: SupersetworkerbeatTaskDefinition 1700 | Type: AWS::ECS::Service 1701 | SupersetworkerbeatServiceDiscoveryEntry: 1702 | Properties: 1703 | Description: 'Entry for "superset-worker-beat" service discovery in AWS Cloud Map.' 1704 | DnsConfig: 1705 | DnsRecords: 1706 | - TTL: 60 1707 | Type: A 1708 | RoutingPolicy: MULTIVALUE 1709 | HealthCheckCustomConfig: 1710 | FailureThreshold: 1 1711 | Name: superset-worker-beat 1712 | NamespaceId: 1713 | Ref: CloudMap 1714 | Type: AWS::ServiceDiscovery::Service 1715 | SupersetworkerbeatTaskDefinition: 1716 | Properties: 1717 | ContainerDefinitions: 1718 | - Command: 1719 | - !Sub ${AWS::Region}.compute.internal 1720 | - !Sub ${ClusterName}.local 1721 | Essential: false 1722 | Image: docker/ecs-searchdomain-sidecar:1.0 1723 | LogConfiguration: 1724 | LogDriver: awslogs 1725 | Options: 1726 | awslogs-group: 1727 | Ref: LogGroup 1728 | awslogs-region: 1729 | Ref: AWS::Region 1730 | awslogs-stream-prefix: !Ref ClusterName 1731 | Name: Supersetworkerbeat_ResolvConf_InitContainer 1732 | - Command: 1733 | - /app/docker/docker-bootstrap.sh 1734 | - beat 1735 | DependsOn: 1736 | - Condition: SUCCESS 1737 | ContainerName: Supersetworkerbeat_ResolvConf_InitContainer 1738 | Environment: 1739 | - Name: COMPOSE_PROJECT_NAME 1740 | Value: superset 1741 | - Name: CYPRESS_CONFIG 1742 | Value: "false" 1743 | - Name: DATABASE_DB 1744 | Value: superset 1745 | - Name: DATABASE_DIALECT 1746 | Value: postgresql 1747 | - Name: DATABASE_HOST 1748 | Value: db 1749 | - Name: DATABASE_PASSWORD 1750 | Value: superset 1751 | - Name: DATABASE_PORT 1752 | Value: "5432" 1753 | - Name: DATABASE_USER 1754 | Value: superset 1755 | - Name: EXAMPLES_DB 1756 | Value: examples 1757 | - Name: EXAMPLES_HOST 1758 | Value: db 1759 | - Name: EXAMPLES_USER 1760 | Value: examples 1761 | - Name: EXAMPLES_PASSWORD 1762 | Value: examples 1763 | - Name: EXAMPLES_PORT 1764 | Value: "5432" 1765 | - Name: FLASK_DEBUG 1766 | Value: true 1767 | - Name: POSTGRES_DB 1768 | Value: superset 1769 | - Name: POSTGRES_PASSWORD 1770 | Value: superset 1771 | - Name: POSTGRES_USER 1772 | Value: superset 1773 | - Name: PYTHONPATH 1774 | Value: /app/pythonpath:/app/docker/pythonpath_dev 1775 | - Name: REDIS_HOST 1776 | Value: redis 1777 | - Name: REDIS_PORT 1778 | Value: "6379" 1779 | - Name: SUPERSET_ENV 1780 | Value: development 1781 | - Name: SUPERSET_LOAD_EXAMPLES 1782 | Value: !Ref WithExample 1783 | - Name: SUPERSET_PORT 1784 | Value: "8088" 1785 | - Name: SUPERSET_USER 1786 | Value: !Ref UserName 1787 | - Name: SUPERSET_PASSWORD 1788 | Value: !Ref UserPassword 1789 | - Name: SECRET_KEY 1790 | Value: !Sub '{{resolve:secretsmanager:${SupersetSecretKey}::secretkey}}' 1791 | Essential: true 1792 | Image: public.ecr.aws/p9r6s5p7/superset:latest 1793 | LinuxParameters: {} 1794 | LogConfiguration: 1795 | LogDriver: awslogs 1796 | Options: 1797 | awslogs-group: 1798 | Ref: LogGroup 1799 | awslogs-region: 1800 | Ref: AWS::Region 1801 | awslogs-stream-prefix: !Ref ClusterName 1802 | MountPoints: 1803 | - ContainerPath: /app/superset_home 1804 | SourceVolume: superset_home 1805 | Name: superset-worker-beat 1806 | User: root 1807 | Cpu: "4096" 1808 | ExecutionRoleArn: !GetAtt SupersetworkerbeatTaskExecutionRole.Arn 1809 | Family: !Sub ${ClusterName}-superset-worker-beat 1810 | Memory: "16384" 1811 | NetworkMode: awsvpc 1812 | RequiresCompatibilities: 1813 | - FARGATE 1814 | TaskRoleArn: 1815 | Ref: SupersetworkerbeatTaskRole 1816 | Volumes: 1817 | - EFSVolumeConfiguration: 1818 | AuthorizationConfig: 1819 | AccessPointId: 1820 | Ref: SupersethomeAccessPoint 1821 | IAM: ENABLED 1822 | FilesystemId: 1823 | Ref: SupersethomeFilesystem 1824 | TransitEncryption: ENABLED 1825 | Name: superset_home 1826 | Type: AWS::ECS::TaskDefinition 1827 | SupersetworkerbeatTaskExecutionRole: 1828 | Properties: 1829 | AssumeRolePolicyDocument: 1830 | Statement: 1831 | - Action: 1832 | - sts:AssumeRole 1833 | Condition: {} 1834 | Effect: Allow 1835 | Principal: 1836 | Service: ecs-tasks.amazonaws.com 1837 | Version: 2012-10-17 1838 | ManagedPolicyArns: 1839 | - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy 1840 | - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly 1841 | Tags: 1842 | - Key: com.docker.compose.project 1843 | Value: !Ref ClusterName 1844 | - Key: com.docker.compose.service 1845 | Value: superset-worker-beat 1846 | Type: AWS::IAM::Role 1847 | SupersetworkerbeatTaskRole: 1848 | Properties: 1849 | AssumeRolePolicyDocument: 1850 | Statement: 1851 | - Action: 1852 | - sts:AssumeRole 1853 | Condition: {} 1854 | Effect: Allow 1855 | Principal: 1856 | Service: ecs-tasks.amazonaws.com 1857 | Version: 2012-10-17 1858 | Policies: 1859 | - PolicyDocument: 1860 | Statement: 1861 | - Action: 1862 | - elasticfilesystem:ClientMount 1863 | - elasticfilesystem:ClientWrite 1864 | - elasticfilesystem:ClientRootAccess 1865 | Condition: 1866 | StringEquals: 1867 | elasticfilesystem:AccessPointArn: 1868 | Ref: SupersethomeAccessPoint 1869 | Effect: Allow 1870 | Resource: 1871 | - Fn::GetAtt: 1872 | - SupersethomeFilesystem 1873 | - Arn 1874 | Version: 2012-10-17 1875 | PolicyName: SupersetworkerbeatSupersethomeVolumeMountPolicy 1876 | Tags: 1877 | - Key: com.docker.compose.project 1878 | Value: !Ref ClusterName 1879 | - Key: com.docker.compose.service 1880 | Value: superset-worker-beat 1881 | Type: AWS::IAM::Role 1882 | SuperDashboard: 1883 | Type: 'AWS::CloudWatch::Dashboard' 1884 | Properties: 1885 | DashboardBody: !Join 1886 | - '' 1887 | - - |- 1888 | { 1889 | "widgets": [ 1890 | { 1891 | "height": 6, 1892 | "width": 12, 1893 | "y": 0, 1894 | "x": 0, 1895 | "type": "metric", 1896 | "properties": { 1897 | "metrics": [ 1898 | [ "AWS/ECS", "MemoryUtilization", "ServiceName", " 1899 | - !GetAtt 1900 | - SupersetworkerbeatService 1901 | - Name 1902 | - '", "ClusterName", "' 1903 | - !Ref Cluster 1904 | - '", { "stat": "Average" } ],[ "...", "' 1905 | - !GetAtt 1906 | - SupersetworkerService 1907 | - Name 1908 | - '", ".", ".", { "stat": "Average" } ],[ "...", "' 1909 | - !GetAtt 1910 | - RedisService 1911 | - Name 1912 | - '", ".", ".", { "stat": "Average" } ],[ "...", "' 1913 | - !GetAtt 1914 | - DbService 1915 | - Name 1916 | - '", ".", ".", { "stat": "Average" } ],[ "...", "' 1917 | - !GetAtt 1918 | - SupersetnodeService 1919 | - Name 1920 | - '", ".", ".", { "stat": "Average" } ],[ "...", "' 1921 | - !GetAtt 1922 | - SupersetService 1923 | - Name 1924 | - >- 1925 | ", ".", ".", { "stat": "Average" } ] ],"view": 1926 | "timeSeries","stacked": false,"region": " 1927 | - !Ref 'AWS::Region' 1928 | - |- 1929 | ","period": 300, 1930 | "setPeriodToTimeRange": true, 1931 | "legend": { 1932 | "position": "bottom" 1933 | }, 1934 | "yAxis": { 1935 | "left": { 1936 | "label": "", 1937 | "showUnits": true 1938 | } 1939 | }, 1940 | "title": "MemoryUtilization-Services" 1941 | } 1942 | }, 1943 | { 1944 | "height": 6, 1945 | "width": 12, 1946 | "y": 6, 1947 | "x": 0, 1948 | "type": "metric", 1949 | "properties": { 1950 | "metrics": [ 1951 | [ "AWS/ECS", "CPUUtilization", "ServiceName", " 1952 | - !GetAtt 1953 | - SupersetworkerService 1954 | - Name 1955 | - '", "ClusterName", "' 1956 | - !Ref Cluster 1957 | - '" ],[ "...", "' 1958 | - !GetAtt 1959 | - SupersetworkerbeatService 1960 | - Name 1961 | - '", ".", "." ],[ "...", "' 1962 | - !GetAtt 1963 | - RedisService 1964 | - Name 1965 | - '", ".", "." ],[ "...", "' 1966 | - !GetAtt 1967 | - DbService 1968 | - Name 1969 | - '", ".", "." ],[ "...", "' 1970 | - !GetAtt 1971 | - SupersetnodeService 1972 | - Name 1973 | - '", ".", "." ],[ "...", "' 1974 | - !GetAtt 1975 | - SupersetService 1976 | - Name 1977 | - |- 1978 | ", ".", "." ] 1979 | ], 1980 | "view": "timeSeries", 1981 | "stacked": false, 1982 | "region": " 1983 | - !Ref 'AWS::Region' 1984 | - |- 1985 | ", 1986 | "period": 300, 1987 | "title": "CPUUtilization-Services" 1988 | } 1989 | }, 1990 | { 1991 | "height": 6, 1992 | "width": 12, 1993 | "y": 0, 1994 | "x": 12, 1995 | "type": "metric", 1996 | "properties": { 1997 | "metrics": [ 1998 | [ "AWS/ECS", "CPUUtilization", "ServiceName", " 1999 | - !GetAtt 2000 | - SupersetworkerService 2001 | - Name 2002 | - '", "ClusterName", "' 2003 | - !Ref Cluster 2004 | - >- 2005 | ", { "stat": "SampleCount", "yAxis": "left", "period": 60 } ],[ 2006 | "...", " 2007 | - !GetAtt 2008 | - SupersetnodeService 2009 | - Name 2010 | - '", ".", ".", { "period": 60, "stat": "SampleCount" } ],[ "...", "' 2011 | - !GetAtt 2012 | - DbService 2013 | - Name 2014 | - '", ".", ".", { "period": 60, "stat": "SampleCount" } ],[ "...", "' 2015 | - !GetAtt 2016 | - RedisService 2017 | - Name 2018 | - |- 2019 | ", ".", ".", { "period": 60, "stat": "SampleCount" } ], 2020 | [ "...", " 2021 | - !GetAtt 2022 | - SupersetService 2023 | - Name 2024 | - |- 2025 | ", ".", ".", { "period": 60, "stat": "SampleCount" } ], 2026 | [ "...", " 2027 | - !GetAtt 2028 | - SupersetworkerbeatService 2029 | - Name 2030 | - |- 2031 | ", ".", ".", { "period": 60, "stat": "SampleCount" } ] 2032 | ], 2033 | "view": "singleValue", 2034 | "region": " 2035 | - !Ref 'AWS::Region' 2036 | - |- 2037 | ", 2038 | "period": 300, 2039 | "stacked": false, 2040 | "setPeriodToTimeRange": true, 2041 | "title": "RUNNING task count" 2042 | } 2043 | }, 2044 | { 2045 | "height": 6, 2046 | "width": 12, 2047 | "y": 12, 2048 | "x": 12, 2049 | "type": "metric", 2050 | "properties": { 2051 | "metrics": [ 2052 | [ "AWS/EFS", "PercentIOLimit", "FileSystemId", " 2053 | - !Ref DbhomeFilesystem 2054 | - '", { "id": "m1", "visible": false }],[ "...", "' 2055 | - !Ref RedisFilesystem 2056 | - '", { "id": "m2", "visible": false }],[ "...", "' 2057 | - !Ref SupersethomeFilesystem 2058 | - >- 2059 | ", { "id": "m3", "visible": false }],[ { "expression": "100*m1", 2060 | "label": " 2061 | - !Ref DbhomeFilesystem 2062 | - |- 2063 | ", "id": "e1" } ], 2064 | [ { "expression": "100*(m2)", "label": " 2065 | - !Ref RedisFilesystem 2066 | - |- 2067 | ", "id": "e2" } ], 2068 | [ { "expression": "100*(m3)", "label": " 2069 | - !Ref RedisFilesystem 2070 | - |- 2071 | ", "id": "e3" } ] ], 2072 | "view": "timeSeries", 2073 | "stacked": false, 2074 | "region": " 2075 | - !Ref 'AWS::Region' 2076 | - |- 2077 | ", 2078 | "title": "EFS IO Utilization (%)", 2079 | "period": 300 2080 | } 2081 | }, 2082 | { 2083 | "height": 6, 2084 | "width": 12, 2085 | "y": 12, 2086 | "x": 18, 2087 | "type": "metric", 2088 | "properties": { 2089 | "metrics": [ 2090 | [ { "expression": "(m1/1048576)/PERIOD(m1)", "label": "Expression1", "id": "e1", "visible": false, "region": " 2091 | - !Ref 'AWS::Region' 2092 | - |- 2093 | " } ], 2094 | [ { "expression": "m2/1048576", "label": "Expression2", "id": "e2", "visible": false, "region": " 2095 | - !Ref 'AWS::Region' 2096 | - |- 2097 | " } ], 2098 | [ { "expression": "e2-e1", "label": "Expression3", "id": "e3", "visible": false, "region": " 2099 | - !Ref 'AWS::Region' 2100 | - |- 2101 | " } ], 2102 | [ { "expression": "((e1)*100)/(e2)", "label": "Throughput Utilization(%)-DbhomeFilesystem ", "id": "e4", "region": " 2103 | - !Ref 'AWS::Region' 2104 | - |- 2105 | " } ], 2106 | [ "AWS/EFS", "MeteredIOBytes", "FileSystemId", " 2107 | - !Ref DbhomeFilesystem 2108 | - '", { "id": "m1", "period": 60, "visible": false, "region": "' 2109 | - !Ref 'AWS::Region' 2110 | - |- 2111 | " } ], 2112 | [ "AWS/EFS", "PermittedThroughput", "FileSystemId", " 2113 | - !Ref DbhomeFilesystem 2114 | - '", { "id": "m2", "period": 60, "visible": false, "region": "' 2115 | - !Ref 'AWS::Region' 2116 | - |- 2117 | " } ] 2118 | ], 2119 | "view": "timeSeries", 2120 | "stacked": false, 2121 | "region": " 2122 | - !Ref 'AWS::Region' 2123 | - |- 2124 | ", 2125 | "stat": "Sum", 2126 | "period": 300, 2127 | "title": "EFS Throughput Utilization (%)", 2128 | "annotations": { 2129 | "horizontal": [ 2130 | { 2131 | "visible": true, 2132 | "color": "#d13212", 2133 | "label": "Utilization Warning", 2134 | "value": 75, 2135 | "fill": "above", 2136 | "yAxis": "left" 2137 | } 2138 | ] 2139 | }, 2140 | "yAxis": { 2141 | "left": { 2142 | "max": 100 2143 | } 2144 | } 2145 | } 2146 | }, 2147 | { 2148 | "height": 6, 2149 | "width": 12, 2150 | "y": 12, 2151 | "x": 0, 2152 | "type": "metric", 2153 | "properties": { 2154 | "metrics": [ 2155 | [ "AWS/NetworkELB", "HealthyHostCount", "TargetGroup", " 2156 | - !GetAtt 2157 | - SupersetTCP8088TargetGroup 2158 | - TargetGroupFullName 2159 | - '", "AvailabilityZone", "' 2160 | - !Select 2161 | - 0 2162 | - !GetAZs '' 2163 | - '", "LoadBalancer", "' 2164 | - !GetAtt 2165 | - LoadBalancer 2166 | - LoadBalancerFullName 2167 | - >- 2168 | ", { "stat": "Minimum" } ],[ ".", "UnHealthyHostCount", ".", ".", 2169 | ".", ".", ".", ".", { "stat": "Maximum" } ], [ ".", 2170 | "HealthyHostCount", ".", ".", ".", " 2171 | - !Select 2172 | - 1 2173 | - !GetAZs '' 2174 | - >- 2175 | ", ".", ".", { "stat": "Minimum" } ],[ ".", "UnHealthyHostCount", 2176 | ".", ".", ".", ".", ".", ".", { "stat": "Maximum" } ] 2177 | ], 2178 | "view": "timeSeries", 2179 | "stacked": true, 2180 | "region": " 2181 | - !Ref 'AWS::Region' 2182 | - |- 2183 | ", 2184 | "title": "Healthy/UnHealthyHostCount", 2185 | "period": 300 2186 | } 2187 | }, 2188 | { 2189 | "type": "log", 2190 | "x": 0, 2191 | "y": 18, 2192 | "width": 24, 2193 | "height": 6, 2194 | "properties": { 2195 | "query": "SOURCE ' 2196 | - !Ref LogGroup 2197 | - >- 2198 | ' | fields @timestamp, @message\n| sort @timestamp desc\n| limit 2199 | 20", 2200 | "region": " 2201 | - !Ref AWS::Region 2202 | - >- 2203 | ", 2204 | "stacked": false, 2205 | "view": "table" 2206 | } 2207 | }, 2208 | { 2209 | "height": 6, 2210 | "width": 24, 2211 | "y": 24, 2212 | "x": 0, 2213 | "type": "log", 2214 | "properties": { 2215 | "query": "SOURCE ' 2216 | - !Ref LogGroup 2217 | - >- 2218 | ' | fields @timestamp, @message\n| filter @message like /Exception/\n| sort @timestamp desc", 2219 | "region": " 2220 | - !Ref AWS::Region 2221 | - >- 2222 | ", 2223 | "stacked": false, 2224 | "title": "Log group: Filter with exceptions", 2225 | "view": "table" 2226 | } 2227 | } 2228 | ] 2229 | } 2230 | Outputs: 2231 | SupersetConsole: 2232 | Description: URL of Superset console. 2233 | Value: 2234 | Fn::Sub: 2235 | - ${url}:${port} 2236 | - {url: !GetAtt LoadBalancer.DNSName, port: '8088'} 2237 | --------------------------------------------------------------------------------