RDS(MySQL)への踏み台サーバーの設定について。
Amazon Linux 2023
デフォルトでは mysql client に対応していなくて mariadb になります。 そのため、MySQLへの接続用Clientとして mariadbをインストールします。
sudo yum install mariadb105
成功すると、以下のように4個パッケージがインストールされているはずです。
sudo yum list mariadb* Last metadata expiration check: 1:04:41 ago on Thu Jan 23 12:03:53 2025. Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 @amazonlinux mariadb-connector-c-config.noarch 3.1.13-1.amzn2023.0.3 @amazonlinux mariadb105.x86_64 3:10.5.25-1.amzn2023.0.1 @amazonlinux mariadb105-common.x86_64 3:10.5.25-1.amzn2023.0.1 @amazonlinux Available Packages ....
CDK
CDKで作成するEC2踏み台サーバーに mariadbクライアント をインストールする場合、 Ec2.CloudFormationInit.fromConfigSets が使えます。 Amazon Linux 2023なら、以下のように Ec2.InitPackage.yum で "mariadb105" をインストールできます。
init: Ec2.CloudFormationInit.fromConfigSets({
configSets: {
default: ["yumPreinstall", "config"],
},
configs: {
yumPreinstall: new Ec2.InitConfig([
Ec2.InitCommand.shellCommand("yum update -y"),
Ec2.InitPackage.yum("mariadb105"),
]),
},
}),
例 CDKのEC2インスタンス作成
const bastion = new Ec2.Instance(this, `${stackName}AmazonLinux2023`, {
vpc: vpc,
vpcSubnets: { subnetType: Ec2.SubnetType.PUBLIC },
role: bastionRole,
securityGroup: bastionSg,
instanceName: `${stackName}AmazonLinux2023`,
instanceType: Ec2.InstanceType.of(
Ec2.InstanceClass.T3,
Ec2.InstanceSize.MICRO
),
machineImage: new Ec2.AmazonLinuxImage({
generation: Ec2.AmazonLinuxGeneration.AMAZON_LINUX_2023,
cpuType: Ec2.AmazonLinuxCpuType.X86_64,
}),
// 秘密鍵
keyPair: Ec2.KeyPair.fromKeyPairName(this, "jp_test", "jp_test_keypair"),
// SSMを有効
ssmSessionPermissions: true,
init: Ec2.CloudFormationInit.fromConfigSets({
configSets: {
default: ["yumPreinstall", "config"],
},
configs: {
yumPreinstall: new Ec2.InitConfig([
Ec2.InitCommand.shellCommand("yum update -y"),
Ec2.InitPackage.yum("mariadb105"),
]),
},
}),
});
mariadbクライアントの設定
Amazon Linux 2023で yum か dnf でmariadbクライアントをインストールすると、設定ファイルは /etc/my.cnf.d/ に作成されます。 MySQLへの接続用Clientの設定は以下になります。
/etc/my.cnf.d/client.cnf
インストール後の中身は以下のようになります。
# # These two groups are read by the client library # Use it for options that affect all clients, but not the server # [client] # This group is not read by mysql client library, # If you use the same .cnf file for MySQL and MariaDB, # use it for MariaDB-only client options [client-mariadb]
RDS(MySQL)接続のクライアント文字コードを設定する場合、clientの項目に default-character-set を設定します。
例
[client] default-character-set = utf8mb4
接続方法
接続先、ユーザー、パスワードをSecret Managerのシークレット等で確認したら、mariadbコマンドで接続します。
mariadb -h [接続先] -u [ユーザー名] -p
例
$ mariadb -h xxxstack-xxx1234abcd-efghijklmnod.xxxxx.ap-northeast-1.rds.amazonaws.com -u admin -p