cloudformation/multi-az/shardingsphere-cloud-init.yml (92 lines of code) (raw):

#cloud-config # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License 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. # packages: - java - nc write_files: - path: /run/shardingsphere-proxy.service permissions: 0644 content: | [Unit] Description=ShardingSphere Proxy Service Requires=network.target After=network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/usr/local/shardingsphere-proxy/bin/start.sh ExecStop=/usr/local/shardingsphere-proxy/bin/stop.sh Environment="JAVA_MEM_COMMON_OPTS=${JAVA_MEM_OPTS}" Restart=always RestartSec=3 StartLimitInterval=0 [Install] WantedBy=default.target - path: /run/server.yaml permissions: 0644 content: | mode: type: Cluster repository: type: ZooKeeper props: namespace: governance_ds server-lists: ${ZK_SERVERS} retryIntervalMilliseconds: 500 timeToLiveSeconds: 60 maxRetries: 3 operationTimeoutMilliseconds: 500 rules: - !AUTHORITY users: - root@%:root - sharding@:sharding provider: type: ALL_PERMITTED - !TRANSACTION defaultType: XA providerType: Atomikos - !SQL_PARSER sqlCommentParseEnabled: true sqlStatementCache: initialCapacity: 2000 maximumSize: 65535 parseTreeCache: initialCapacity: 128 maximumSize: 1024 props: max-connections-size-per-query: 1 kernel-executor-size: 16 # Infinite by default. proxy-frontend-flush-threshold: 128 # The default value is 128. proxy-hint-enabled: false sql-show: false check-table-metadata-enabled: false # Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy. # The default value is -1, which means set the minimum value for different JDBC drivers. proxy-backend-query-fetch-size: -1 proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide. # Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution # and block other clients if client connections are more than `proxy-frontend-executor-size`, especially executing slow SQL. proxy-backend-executor-suitable: OLAP proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation. # Available sql federation type: NONE (default), ORIGINAL, ADVANCED sql-federation-type: NONE # Available proxy backend driver type: JDBC (default), ExperimentalVertx proxy-backend-driver-type: JDBC proxy-mysql-default-version: 5.7.22 # In the absence of schema name, the default version will be used. proxy-default-port: 3307 # Proxy default port. proxy-netty-backlog: 1024 # Proxy netty backlog. - path: /run/install_shardingsphere_proxy.sh permissions: 0700 content: | echo Installing ShardingSphere v${VERSION} wget -O /run/ss.tar.gz https://archive.apache.org/dist/shardingsphere/${VERSION}/apache-shardingsphere-${VERSION}-shardingsphere-proxy-bin.tar.gz mkdir -p /usr/local/shardingsphere-proxy tar xvf /run/ss.tar.gz --strip 1 -C /usr/local/shardingsphere-proxy /bin/cp -avf /run/server.yaml /usr/local/shardingsphere-proxy/conf/server.yaml /bin/cp -avf /run/shardingsphere-proxy.service /usr/lib/systemd/system/shardingsphere-proxy.service systemctl daemon-reload systemctl enable shardingsphere-proxy systemctl start shardingsphere-proxy - path: /run/install_cloudwatch.sh permissions: 0700 content: | echo Installing CloudWatchAgent rpm -Uvh https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm /opt/aws/bin/cfn-init -v --stack ${AWS::StackId} --resource ${LaunchTemplateName} --region ${AWS::Region} --configsets default /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackId} --resource ${ASGName} --region ${AWS::Region} runcmd: - /run/install_shardingsphere_proxy.sh - /run/install_cloudwatch.sh