okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

PostgreSQL版RDSのパラメータグループで変更不可のものを一覧する

@oko_changです。
先日、AWSから待望のPostgreSQL版RDSがリリースされました。
PostgreSQL版も他RDSと同じように設定はParameterGroupで行うのですが、どのようなパラメータが設定不可となっているのかを一覧にしたのでメモしておきます。

Amazon Web Services ブログ: 【AWS発表】Amazon RDS for PostgreSQLがご利用可能になりました!

環境

  • OSX
  • awscli 1.2.5
  • jq 1.3

確認手順

PostgreSQL用のパラメータグループを作成

$ aws rds create-db-parameter-group \
--region ap-northeast-1 \
--db-parameter-group-name okochang-postgres-93 \
--description "created at 201311" \
--db-parameter-group-family postgres9.3 --output table
---------------------------------------------------------------------------
|                         CreateDBParameterGroup                          |
+-------------------------------------------------------------------------+
||                           DBParameterGroup                            ||
|+------------------------+------------------------+---------------------+|
|| DBParameterGroupFamily | DBParameterGroupName   |     Description     ||
|+------------------------+------------------------+---------------------+|
||  postgres9.3           |  okochang-postgres-93  |  created at 201311  ||
|+------------------------+------------------------+---------------------+|

設定不可となっているパラメータを取得する

$ aws rds describe-db-parameters \
--region ap-northeast-1 \
--db-parameter-group-name okochang-postgres-93 \
| jq '.Parameters[] | select(.IsModifiable == 'false') | {ParameterName,Description}'
{
  "Description": "Sets the shell command that will be called to archive a WAL file.",
  "ParameterName": "archive_command"
}
{
  "Description": "Forces a switch to the next xlog file if a new file has not been started within N seconds.",
  "ParameterName": "archive_timeout"
}
{
  "Description": "Sets the servers main configuration file.",
  "ParameterName": "config_file"
}
{
  "Description": "Sets the servers data directory.",
  "ParameterName": "data_directory"
}
{
  "Description": "Enables per-database user names.",
  "ParameterName": "db_user_namespace"
}
{
  "Description": "Terminate session on any error.",
  "ParameterName": "exit_on_error"
}
{
  "Description": "Sets the servers hba configuration file.",
  "ParameterName": "hba_file"
}
{
  "Description": "Sets the servers ident configuration file.",
  "ParameterName": "ident_file"
}
{
  "Description": "Sets the host name or IP address(es) to listen to.",
  "ParameterName": "listen_addresses"
}
{
  "Description": "Enables backward compatibility mode for privilege checks on large objects.",
  "ParameterName": "lo_compat_privileges"
}
{
  "Description": "Sets the destination for server log output.",
  "ParameterName": "log_destination"
}
{
  "Description": "Sets the destination directory for log files.",
  "ParameterName": "log_directory"
}
{
  "Description": "Sets the file permissions for log files.",
  "ParameterName": "log_file_mode"
}
{
  "Description": "Controls information prefixed to each log line.",
  "ParameterName": "log_line_prefix"
}
{
  "Description": "Sets the time zone to use in log messages.",
  "ParameterName": "log_timezone"
}
{
  "Description": "Truncate existing log files of same name during log rotation.",
  "ParameterName": "log_truncate_on_rotation"
}
{
  "Description": "Start a subprocess to capture stderr output and/or csvlogs into log files.",
  "ParameterName": "logging_collector"
}
{
  "Description": "Sets the maximum number of simultaneously running WAL sender processes.",
  "ParameterName": "max_wal_senders"
}
{
  "Description": "Encrypt passwords.",
  "ParameterName": "password_encryption"
}
{
  "Description": "Sets the TCP port the server listens on.",
  "ParameterName": "port"
}
{
  "Description": "List of extensions provided by RDS",
  "ParameterName": "rds.extensions"
}
{
  "Description": "Reinitialize server after backend crash.",
  "ParameterName": "restart_after_crash"
}
{
  "Description": "Sets the server (database) character set encoding.",
  "ParameterName": "server_encoding"
}
{
  "Description": "Lists shared libraries to preload into server.",
  "ParameterName": "shared_preload_libraries"
}
{
  "Description": "Location of the SSL server authority file.",
  "ParameterName": "ssl_ca_file"
}
{
  "Description": "Location of the SSL server certificate file.",
  "ParameterName": "ssl_cert_file"
}
{
  "Description": "Sets the list of allowed SSL ciphers.",
  "ParameterName": "ssl_ciphers"
}
{
  "Description": "Location of the SSL server private key file",
  "ParameterName": "ssl_key_file"
}
{
  "Description": "Writes temporary statistics files to the specified directory.",
  "ParameterName": "stats_temp_directory"
}
{
  "Description": "Sets the number of connection slots reserved for superusers.",
  "ParameterName": "superuser_reserved_connections"
}
{
  "Description": "Sets the syslog facility to be used when syslog enabled.",
  "ParameterName": "syslog_facility"
}
{
  "Description": "Sets the directory where the Unix-domain socket will be created.",
  "ParameterName": "unix_socket_directories"
}
{
  "Description": "Sets the owning group of the Unix-domain socket.",
  "ParameterName": "unix_socket_group"
}
{
  "Description": "Sets the access permissions of the Unix-domain socket.",
  "ParameterName": "unix_socket_permissions"
}
{
  "Description": "Sets the number of WAL files held for standby servers.",
  "ParameterName": "wal_keep_segments"
}
{
  "Description": "Sets the maximum interval between WAL receiver status reports to the primary.",
  "ParameterName": "wal_receiver_status_interval"
}
{
  "Description": "Sets the maximum time to wait for WAL replication.",
  "ParameterName": "wal_sender_timeout"
}
{
  "Description": "Selects the method used for forcing WAL updates to disk.",
  "ParameterName": "wal_sync_method"
}