質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

2回答

2143閲覧

phpMyAdminによる大量インポートで"504 Gateway Time-out"エラー発生

puppet_master

総合スコア24

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2022/08/24 10:26

編集2022/08/26 00:33

前提

AWSのEC2環境でOS:Amazon Linux 2でシステム開発中で、郵便番号検索の処理を実装中です。

実現したいこと

日本郵便が公開している郵便番号データの全国一括全国一括(1,691,601Byte)をRDSのmySQLのデータベースに取り込む必要があります。
定期的に郵便番号データの更新が必要なため、メンテナンス作業が煩雑にならないように、このデータについてはphpMyAdminから一括でインポートできるように環境設定したいと思っています。

発生している問題・エラーメッセージ

phpMyAdminからインポートしようとしたところ、1万件程度の件数では正常終了しますが、12万件ほどある全国一括全国一括(1,691,601Byte)では、"504 Gateway Time-out"のエラーで処理が途中で中断してしまいます。
毎回インポート開始から60秒でタイムアウトします。

試したこと

こちらの内容を参考に、以下の対応を行なっています。
https://beyondjapan.com/blog/2016/03/phpmyadmin-504-gateway-time-out/
/etc/php.ini

upload_max_filesize = 2G post_max_size = 2G memory_limit = 2G max_execution_time = 300

/etc/php-fpm.d/www.conf

request_terminate_timeout = 180

/path/to/phpmyadmin/libraries/config.default.php

$cfg['ExecTimeLimit'] = 0;

なお、/etc/neginx以下にはconf.d/php-fpm.conf、default.d/php.confの2つのファイルがあるのですが、どちらにもfastcgi_read_timeoutが含まれていなかったので、fastcgi_read_timeoutの対応は行っておりません。

また、RDSのmySQL側でもParameter Groupで以下のパラメータを変更しております。

connect_timeout = 600; net_write_timeout = 600; slave_net_timeout = 600;

また、Apache側のタイムアウト設定の可能性も考え、/etc/httpd/conf/httpd.confに以下の記載を追加しております。

RequestReadTimeout handshake=0 header=20-600,MinRate=500 body=20,MinRate=500 TimeOut 180 ProxyTimeout 180

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

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

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

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

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

guest

回答2

0

自己解決

参考にしたサイトには入っていなかった、EC2のELBの設定でIdle timeoutの設定を300などに増やすことで、60秒をすぎても504エラーが出なくなりました。
自己解決しましたので、本投稿はクローズさせていただきます。

投稿2022/08/27 14:10

puppet_master

総合スコア24

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

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

0

CSVのデータなら分割して取り込めばよいとおもいます

投稿2022/08/25 11:10

yambejp

総合スコア114779

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

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

puppet_master

2022/08/26 00:36

コメントありがとうございます。 実現したいことに追記しましたが、郵便番号データは定期的に更新が必要で、運用担当の作業がなるべく簡単になるように、一括でインポートできるようにしたいと思っています。 こちらでの検討の結果分割でインポートするという結論になるかもしれませんが、あくまで最終的なワークアラウンドであり、現時点では一括でインポートできるように環境設定することを模索したいと思います。
yambejp

2022/08/26 00:43 編集

ちょっと噛み合っていませんが、分割するのはプログラム側でやればいいので 運用担当者の作業はかわりませんけど? もしくはバルクのSQL文に変換して流し込めば相当はやくなると思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問