🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1000閲覧

EC2内でMySQLに接続ができない

pay_561

総合スコア26

Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/03/16 04:37

編集2021/03/16 07:39

##困っっていること・前提
EC2に接続しMySQLに接続したいのですが接続ができません。

##エラー

$mysql -u admin -p -h ☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓ >ERROR 2003 (HY000): Can't connect to MySQL server on '☓☓☓' (110)

##コード
sg.tf

resource "aws_security_group" "sample_sg" { vpc_id = aws_vpc.sample_vpc.id name = "sample_sg" description = "Define of SG for public" egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } tags = { Name = "sample_sg" } } #セキュリティグループルール resource "aws_security_group_rule" "inbound_http" { type = "ingress" from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] # source_security_group_id = aws_security_group.sample_sg.id security_group_id = aws_security_group.sample_sg.id } resource "aws_security_group_rule" "inbound_ssh" { type = "ingress" from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] security_group_id = aws_security_group.sample_sg.id }

rds.tf

resource "aws_db_instance" "db" { identifier = "sample-db" allocated_storage = 20 storage_type = "gp2" engine = "mysql" engine_version = "8.0.21" instance_class = "db.t2.micro" multi_az = true name = "testdb" username = "admin" password = "admintest" final_snapshot_identifier = "aws-sample-db" db_subnet_group_name = aws_db_subnet_group.sample_subnet_group_db.name vpc_security_group_ids = [aws_security_group.sample_sg.id] parameter_group_name = aws_db_parameter_group.default.name } resource "aws_db_subnet_group" "sample_subnet_group_db" { name = "sample_db" subnet_ids = [aws_subnet.sample_private_1a.id, aws_subnet.sample_private_1c.id] description = "It is a DB subnet group on sample_vpc." tags = { Name = "sample_sg_db" } } #セキュリティグループの設定 resource "aws_security_group" "sample_sg_db" { vpc_id = aws_vpc.sample_vpc.id name = "db" description = "Allow DB inbound traffic" ingress { from_port = 3306 to_port = 3306 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] # security_groups = [aws_security_group.sample_sg.id] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } tags = { Name = "sample_allow_db" } } #データーベースのコンフィグの管理 resource "aws_db_parameter_group" "default" { name = "rds-pg" family = "mysql8.0" } output "db_endpoint" { value = aws_db_instance.db.endpoint } output "db_name" { value = aws_db_instance.db.name } output "db_user" { value = aws_db_instance.db.username } output "db_password" { value = aws_db_instance.db.password }

vpc.tf

resource "aws_vpc" "sample_vpc" { cidr_block = "10.0.0.0/16" enable_dns_hostnames = true enable_dns_support = true tags = { # type = string Name = "sample_vpc" } } #パブリックサブネット resource "aws_subnet" "sample_public_1a" { vpc_id = aws_vpc.sample_vpc.id cidr_block = "10.0.0.0/24" availability_zone = "ap-northeast-1a" map_public_ip_on_launch = true tags = { # type = string Name = "public_subnet_1a" } timeouts { delete = "5m" } } #プライベートサブネット resource "aws_subnet" "sample_private_1a" { vpc_id = aws_vpc.sample_vpc.id cidr_block = "10.0.1.0/24" availability_zone = "ap-northeast-1a" # map_public_ip_on_launch = true tags = { Name = "private_subnet_1a" } } resource "aws_subnet" "sample_private_1c" { vpc_id = aws_vpc.sample_vpc.id cidr_block = "10.0.2.0/24" availability_zone = "ap-northeast-1c" tags = { Name = "private_subnet_1c" } } #インターネットゲートウェイ resource "aws_internet_gateway" "sample_igw" { vpc_id = aws_vpc.sample_vpc.id tags = { Name = "sample_igw" } } #ルートテーブルの定義 resource "aws_route_table" "sample_public" { vpc_id = aws_vpc.sample_vpc.id route { cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.sample_igw.id } tags = { Name = "sample_route_table" } } #ルートテーブルのサブネットの紐付け resource "aws_route_table_association" "public_1a" { subnet_id = aws_subnet.sample_public_1a.id route_table_id = aws_route_table.sample_public.id }

db用のセキュリティグループ
イメージ説明

イメージ説明

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2021/03/16 06:19

プライベートサブネットのルートテーブルが定義されてないような気がしますが、コンソールでルートテーブルを確認するとどうなっていますか?
pay_561

2021/03/16 08:29 編集

コメントありがとうございます。 画像を添付しました。 確認しましたら、yu_1985さんがおっしゃった通り プライベートサブネットのルートテーブルを定義してないように思います。
guest

回答1

0

自己解決

解決しました!!
プライベートサブネットのルートテーブルが定義をしていなかったようです。

投稿2021/03/16 09:40

pay_561

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問