EC2(AWS)のインスタンスを再起動すると「ページが動作しません」

投稿者: Anonymous Ruby On Railsで運用していたstaging環境をAWSのEC2からインスタンスを再起動すると、chromeで該当のURLを開こうとしても「このページは動作していません」となり、開けません。safariなど他のブラウザで開いても同じようなメッセージが出ます。 環境 macOS High Sierra(バージョン10.13.6) ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin17] Rails 4.2.6 chrome バージョン: 71.0.3578.98(Official Build) (64 ビット) 試したこと ・ df -hでデータ容量を確認してみましたが空きは十分にありました。 ・ redisを再起動してみましたが「ページが動作しません」は変わりません。 ・ EC2のインスタンスを確認したところ、Elastic IPやIPv4 パブリック IPは変更されていませんでした。 (これはconfig/deploy/staging.rbやconfig/environments/staging.rbに設定されているIPアドレスと同じものです。) ・ ログを確認してみたところ、 1. nginx.access.logとnginx.error.logは動作していませんでした 2. unicorn.logとsidekiq.logとstaging.logはデプロイしたときログを吐いていますがエラーはありません。 実現したいこと staging環境が開けなくなった原因を突き止めて、復旧したいです。 ご教示いただけることがあれば何卒よろしくお願いいたします。 解決 まずはnginx, unicorn, sidekiqのプロセスが起動しているか確認してみてはどうでしょうか。 以下はプロセス一覧からgrepをかけてunicornプロセスが起動しているかを確認する例です。 ps aux | grep -v grep…(Continue Reading)

amazon linux で cron が失敗したときに、それを知れるようにしたい。

投稿者: Anonymous ec2 の amazon linux に対して、 cron でバッチを実行しました。 /var/log/cron を見てみた結果、時折、このバッチは失敗している様子です。 Nov 13 16:35:01 ip-172-31-29-31 CROND[20056]: (ec2-user) CMD (/path/to/my/program) Nov 13 16:35:10 ip-172-31-29-31 CROND[20222]: (CRON) EXEC FAILED (/usr/sbin/sendmail): No such file or directory Nov 13 16:35:10 ip-172-31-29-31 CROND[20055]: (ec2-user) MAIL (mailed 75823 bytes of output but got status 0x0001#012) さらにわかることは、バッチが異常終了した際に、 cron はメールでもってそれを通知しようとしているが、 sendmail プログラムがないために、その処理は失敗している模様です。 質問…(Continue Reading)

AWS EC2インスタンスへのSSHの方法

投稿者: Anonymous ssh先はIPv4パブリックIPとパブリック DNS (IPv4)のどちらを使うのが適切なのでしょうか? AWSのドキュメント↓を見るとDNSのほうになってますが、IPアドレスでもsshはできました。 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html ひょっとしたら何か使い分けがあるのかもとも思っています。 詳しい方、ご教示ください。 解決 どちらが適切と言うのは無いと思います。大抵の場合はどちらでも良く、場合によっては用途に応じて使い分ける感じかと。 例として思いつくのは、ドメイン名ベースのアクセス制御やルーティングを行いたい、といった場合に DNS を使う事になります。 また、DNS名を使う場合は、クライアントがDNSサーバーに対して、名前解決を行う事になりますので、そのオーバーヘッドを減らしたい場合はIPの方が良いと思います。 回答者: Anonymous

AWS CloudWatchアラーム: 「『3時間』CPU使用率が5%以下の状態が続いたら」という条件を指定したい

投稿者: Anonymous 環境 AWS CloudWatch アラーム https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html AWS EC2 やりたいこと 個人用に、EC2でサーバを起動しています。 料金を削減するために、EC2を使っていないときは、自動的に停止するようにしたいです。 具体的にはCloudWatchアラームで、自動的にEC2を停止させたいです。 質問 「『3時間』CPU使用率が5%以下の状態が続いたら」という条件の「3時間」は、どこで設定できますか? 時間を指定するセレクトボックスには、「5分、15分、1時間、6時間」しかなく、「3時間」はありませんでした。 試したこと 「最低期間」に「3回連続で1時間」という条件を設定したら、使用していない時間が1時間続いたぐらいで、停止してしまいました。 解決 36回×5分だとどうですか? 3回×1時間だと、180分の間に 3回しか チェックされないので、偶然 CPU負荷が低いときに 測定されてしまうと 使用中でも アラームが作動してしまう気がします。 36回×5分だと、5分おきにチェックされ、36回連続しなければアラームは作動しないので「使ってないとき」が 判定出来る気がします。 また、「平均」の場合は、5分間の平均値に 値が丸められますので、「最大」のほうが 期待する動作に近いかもしれません。EC2の用途によっては、CPUではなく、ディスクIOだったり、ネットワーク転送量で測定したほうが、正しく判定できることも考えられます。このへんはチューニングだと思いますので ちょうどいい設定を探してみてください。 回答者: Anonymous

AWS EC2のユーザをIAMで一元管理したい

投稿者: Anonymous ▼ 環境 ・EC2は4台あり、OSはAmazon Linux2である。 ▼ したいこと ・IAMで作成したユーザでEC2にログインしたい。 ・EC2のサーバごとにユーザを作成したりするのがすごく手間だし、  個別で管理するのが難しいため、IAM上で全てのEC2ユーザを管理できれば便利だと思ったため。 ▼ 試したこと ・IAMでユーザ作成し、EC2 FullAccessのロールをアタッチ(インスタンスにもアタッチ) ・AWS CodeCommitのSSHキーを登録し、IAMのユーザ名と公開鍵で接続を試すも接続不可 ▼ 質問内容 ・EC2の複数台サーバのユーザーをIAMで一元管理することは可能でしょうか。 ・また、こちらはAWS内だけで完結できますでしょうか。 「このサービス使うとできますよ」的なアドバイスを頂けると嬉しいです。 できないならできないで、皆様はどのようにユーザ管理されているかなども教えて欲しいです。 解決 @hinaloe さんのコメントや、 ksaito さんの回答を参考に、以下の方針で可能そうです。 方針 AuthorizedKeysCommand を利用する。 authorized_keys_command から実行されるプログラムの中で aws コマンドで iam から pubkey を読み込む AuthorizedKeysCommand とは何かというと、 authorized_keys を file に記述するのではなく、プログラムの標準出力でもって指定できる sshd の設定オプションです。 また、 IAM ユーザーは、 ssh の public key をひもづけることができます。これは、主に…(Continue Reading)

ブラウザからのアクセス時、PHPSpreadsheetでExcelファイルを作成できない

投稿者: Anonymous Amazon Linux で Apache/2.4.34 + PHP7.0.32 の環境で PHPSpreadsheet を使ってExcelファイルをダウンロードしようとしています。 しかし、ダウンロード以前にExcelファイルを作成するところで躓いています。 まず下記のようなコードを書きました、/var/www/html/test_server/test1.php ブラウザからアクセスされると、/home/ec2-user/ccc/hello.xlsx にExcelファイルが出力されるように意図しています。 ・ディレクトリ構成 /var/www/html/test_server/ |- test.php | (以下はPHPSpreadsheet関連) |- vendor/ |- composer.json |- composer.lock ・test1.phpのソースコード <?php require ‘vendor/autoload.php’; use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx as XlsxWriter; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue(‘A1’, ‘Hello World !’); $writer = new XlsxWriter($spreadsheet); $writer->save(‘/home/ec2-user/ccc/hello.xlsx’); ?> ブラウザから…(Continue Reading)

EC2インスタンス内からECRにログインできない

投稿者: Anonymous EC2インスタンス内からECRへのログインのため、以下のコマンドでログインを試みました。 このEC2インスタンスのIAMRoleには[AmazonEC2ContainerRegistryReadOnly]ポリシーを付与しています。 $(aws ecr get-login –region ap-northeast-1) しかし以下のエラーメッセージが表示され、ログインは失敗します。 unknown shorthand flag: ‘e’ in -e See ‘docker login –help’. なぜログインに失敗するのでしょうか? $() の中身のみのコマンド aws ecr get-login –region ap-northeast-1 を叩くと、以下のようなレスポンスが返ってきます。 docker login -u AWS -p ********= -e none https://************.dkr.ecr.ap-northeast-1.amazonaws.com 解決 Docker 17.06で–email/-eオプションは廃止されていますが、AWS CLIはデフォルトでは互換性のためにこれを出力しているそうです。 aws ecr get-loginに–no-include-emailオプションを付与することで-eオプションが出力されなくなりますが、そもそもget-loginは非推奨であり、aws-cli v2で廃止されました。get-login-passwordを使用してください。 回答者: Anonymous

AWSのEC2でセキュリティグループを作成したいのですけども、エラーが出ます。

投稿者: Anonymous こんばんは。お世話になります。 AWSのEC2でセキュリティグループを作成したいのですけども、エラーが出ます。 「セキュリティグループの作成」ボタンを押して、 セキュリティグループのルールのインバウンドのタイプをMYSQL/Aurora、 プロトコルをTCP、ポート範囲を3306、ソースはカスタムでセキュリティグループIDを入れました。 作成ボタンを押すと「セキュリティグループの作成中にエラーが発生しました。」と出て、 下にエラーメッセージが下記のように出ました。 You have specified two resources that belong to different networks. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidGroup.NotFound; Request ID: 2d062039-24c8-45d0-b3d5-947d2442f05c) セキュリティグループを作成したいので、解決法をご教授願います。 解決 エラーメッセージの通りなんでしょうが。 プロトコルをTCP、ポート範囲を3306、ソースはカスタムでセキュリティグループIDを入れました。 実際に入れている値をスクショとって、共有すると回答が早いと思います。 回答者: Anonymous

AWS EC2インスタンスタイプc系利用形態について

投稿者: Anonymous 現在 t3.medium で運用してるシステムがあるのですが ユーザ数や機能が増えるにつれて常時クレジットが枯渇しはじめているので グレードアップを検討中です 現在のボトルネックはCPUで https://aws.amazon.com/jp/ec2/pricing/on-demand/ ここを見るとt3 の次のグレード t3.large はメモリが 4 => 8 に倍増するかわりに CPUは変わらないように見えます ちなみに ECPU の変数というのがどういう意味なのでしょうか あと https://dev.classmethod.jp/cloud/aws/comparison-wordpress-c5/ こちらのサイトで c5.large と t3.medium の比較をされていて 料金が約2倍でCPU使用率が半減(リソースが倍?)になってるみたいなので c5.large への乗り換えを検討しているのですが t2 t3 系しか使ったことがなく c 系ではクレジットや料金体系がどう変わるのか教えていただきたいです t 系は基本料金では CPU平均 20% しか使えないかわりにクレジットによるバーストができるのですが c 系の料金では何%まで使用できてバースト相当の機能や追加料金に関してはどうなってるんでしょうか 調べてもドキュメントがみあたらなかったので誘導していただけるだけでも助かります また C5.large 以外にもおすすめのタイプがあれば教えていただければ幸いです 解決 ECUはAmazonが規定するCPU能力値です(FAQの下の方)。「変数」とは英語ページの「Variable」の訳語ですが、より適切には「可変」の方が伝わりやすいでしょうか。バーストにより変化することを表現したいのだと思います。 バーストパフォーマンスインスタンス Amazon EC2 では、定常パフォーマンスのインスタンス (例: M5、C5、R5)…(Continue Reading)

EC2のセキュリティグループ設定時にIPアドレスの末尾に付加する/24等の意味

投稿者: Anonymous EC2のセキュリティグループ設定時にIPアドレスの末尾に付加する/24等の意味を教えてください SSH TCP 22 0.0.0.0/0 <- この/0の意味が分かりません SSH TCP 22 113.52.16.113/32 <- この/32の意味が分かりません ご教授をお願いします。 解決 設定するのは正確には「IPアドレス」ではなくCIDR; Classless Inter-Domain Routingと呼ばれる「IPアドレス範囲」です。 0.0.0.0/0 は 0.0.0.0~255.255.255.255 つまりIPv4全体を表し、 113.52.16.113/32 は 113.52.16.113~113.52.16.113 つまり113.52.16.113のみを表します。 回答者: Anonymous

webpackerのエラーによってAWSでRails6のアプリを表示できません

投稿者: Anonymous 環境 rails 6.0.2.1 ruby 2.6.3 amazon linux mysql nvm v14.2.0 node v14.2.0 yarn 1.22.4 前提・実現したいこと EC2を使ってAWSにRails6で作ったアプリをデプロイしているところです。 https://qiita.com/Yuki_Nagaoka/items/55ed1610cfc1f59398b1 上記の記事を参考にデプロイまで行いました。 発生している問題・エラーメッセージ デプロイが完了した段階で、アプリのURLにアクセスしたところ We’re sorry, but something went wrong. のエラー画面が表示されました。 原因を探ったところ、 (アプリ名)/log/production.rb に以下のエラーメッセージが残されていました。 [3aa04024-9cfc-47d6-8bb5-be5607993cd6] ActionView::Template::Error (Webpacker can’t find application.js in /var/www/rails/portgram/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your…(Continue Reading)

AWSのEC2での容量不足について

投稿者: Anonymous AWSのEC2(Deep Learning AMI (Ubuntu) Version 24.0)を使用しています。 自分自身ではそれほど大容量データを保存しているつもりはないのですが(せいぜい5~20GB)、73GBあるはずの/dev/xvda1の容量が100%になってしまっています。 最初は本当に73GB使っているかと思い、85GBのボリュームを追加し/dev/xvdf(data2)でマウントし、保存していたデータの多くを移行したのですが、data2は余裕がありますが、/dev/xvda1の方がすぐに100%になってしまいます。 インスタンスの再起動をすると数百MB~数GBは空きが出るのですが、一度、大容量データの保存に失敗すると、それ以降(保存しかけたデータを削除しても)ほぼ空きがない状態になってしまいます。 du -hsでフォルダごとに見てみると、home>ubuntu>anaconda3>envの容量が大きく、20種類くらいのフレームワークに対応したフォルダ(例えばそのうち1つは3GB)があるようなのですが、例えば使わないライブラリの削除などはしても良いでしょうか。 df -hの結果は以下です。 Filesystem Size Used Avail Use% Mounted on udev 30G 0 30G 0% /dev tmpfs 6.0G 8.9M 6.0G 1% /run /dev/xvda1 73G 71G 2.3G 97% / tmpfs 30G 0 30G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 30G 0…(Continue Reading)

AWS EC2のSDKによるコピー

投稿者: Anonymous お世話になっております。 AWSのSDK for javaを利用して、EC2のインスタンスコピーを行いたいのですが、 失敗してしまいます。 具体的には、下記のようなエラーが返ってきます。 「You do not have permission to access the storage of this ami 」 EC2の許可がないようなのですが、そのような設定はどこで行うのでしょうか。 ソースコードは下記サイト様を参照しております。 http://qiita.com/uzresk/items/c8c0f0ab0306780b2966 解決 自己解決いたしました。 AMI IDの指定が間違えていただけでした。 失礼いたしました。 回答者: Anonymous

EC2に設定したcronでgoファイルを実行すると他ファイルを読み込めない

投稿者: Anonymous 毎週日曜日の22時になったらGoスクリプトを実行するcronをEC2上に設定しました。 時刻になるとこのようなエラーが出て処理が止まってしまうのですが、原因がわかりません。 後述しますが、cronで設定したコマンドを直打ちすると動作するのに対し、cronとして設定すると動作しない点に悩んでおります。 Failed to read CSV file open sample.csv: no such file or directory ※ csvファイルをmain.goから読み込めなかった場合に、コンソールにこのエラーが出力されるようにしています 以下が詳細な状況になります。知見ある方がいらっしゃいましたらご助言頂きたいです。 よろしくお願いいたします。 状況 crontab -e でcronを登録 cronが実行できていることは確認済み 実行後、/var/spool/mail/ec2-user に上記のエラーが書き込み cronで指定したコマンドを直打ちした場合は問題なく動作する 実行結果 # cronの確認 [[email protected]]$ crontab -l => 00 13 * * SUN /usr/bin/go run ~/go/src/project_name/main.go # crondの確認 [[email protected]]$ service crond status => Active: active (running) since…(Continue Reading)

Capistranoを用いてAWS EC2へRailsアプリをデプロイ時、SSHの認証エラーが出てデプロイできない

投稿者: Anonymous 実現したいこと ローカルのDockerコンテナ内に作成したRailsアプリを、Capistranoを用いてAWSのEC2サーバにデプロイしたいです。 表示されているエラー dockerのRailsコンテナ内で「bundle exec cap production deploy」すると、以下のエラーが出ます。 SSHKit::Runner::ExecuteError: Exception while executing as [email protected](IPアドレス): Authentication failed for user [email protected](IPアドレス) 全文 困っていること エラー内容から、SSHの鍵の問題かと推測し調査中です。 推測される原因や解決方法をご教示いただきたいと考えています。 現状のCapistrano設定ファイル Capfile require "capistrano/setup" require "capistrano/deploy" require ‘capistrano/scm/git’ install_plugin Capistrano::SCM::Git # add requires require ‘capistrano/bundler’ require ‘capistrano/rbenv’ require ‘capistrano/rails/assets’ require ‘capistrano/rails/migrations’ require ‘capistrano/puma’ # Load custom tasks from `lib/capistrano/tasks` if…(Continue Reading)

amazon linux 2 の /etc/fstab を設定する際に、インスタンスタイプが変わっても動作するようにさせることはできる?

投稿者: Anonymous amazon linux 2 で、ルートボリューム以外を常時アタッチする場合、そのマウント情報を /etc/fstab に記述することになるかと思います。 fstab の記述方法についてざっと調べると、基本的に /dev 以下のフルパスを指定してマウントする指示が書いてある場合が多いです。しかし、各 ec2 ボリュームがアタッチされた際に作成される /dev 以下のパスは、インスタンスタイプが変われば変化します。 (例: t2 系: /dev/xvdf, t3 系: /dev/nvme1n1) 質問 aws のボリュームの fstab にてマウントする場合に、インスタンスタイプが変化しても(つまり、 /dev 以下のパスが変わっても)正しくマウントできるように設定する方法などはありますでしょうか? 解決 AWSについては詳しくありませんが、マウント時にデバイス名が変わってしまう場合の一般的な対応としては/etc/fstabでUUIDを指定してマウントする方法があります。 関連しそうなAWSのマニュアル EBS デバイスの特定 再起動後に接続ボリュームを自動的にマウントする 回答者: Anonymous

vpc の lambda からインターネットにアクセスできないのはなぜ?

投稿者: Anonymous AWS において、 デフォルトVPCの中のec2のインスタンスからは、普通にインターネットにアクセスできます。 一方、そのような ec2 インスタンスと同じサブネットに対して、 VPC 内 lambda を実行しても、インターネットにアクセスできない様子です。 どうして、同じサブネットなのに、ec2 ではインターネットにアクセスできるのに、 lambda ではアクセスできないのでしょうか。 解決 https://docs.aws.amazon.com/lambda/latest/dg/vpc.html https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html 上記ドキュメントより: 普通の ec2 インスタンスが、 InternetGateway で直にインターネットに接続できるのは、以下の条件を見たすとき。 EIP を持っている。 (Private IP <-> EIP の NAT 変換を行うのは Internet Gateway.) VPC の Lambda は、対象のサブネットに ENI を作って、 Private IP アドレスのみを持つ。 なので、 EIP を持たず、 Internet Gateway を経由できない。 対応策は: NAT gateway をパブリックサブネットに設置する。パブリックサブネットとは、…(Continue Reading)

AWS EC2内のDockerコンテナ環境にブラウザからアクセスをしたいです。

投稿者: Anonymous AWS EC2内のdockerファイルを展開したコンテナ環境にブラウザからアクセスをしたいです。 以下の手順でdocker環境を展開していきました。 Dockerイメージを作成 docker build -t hoge 以下のコマンドでコンテナを起動 docker run -p 8080:80 -p 10022:22 –privileged -d hoge 以下のコマンドでssh接続し、ソース展開 ssh [email protected] -p 10022 ここで、コンテナに展開したブラウザにアクセスには以下のurlにアクセスすれば良いと考えました。 EC2のパブリックv4IP:8080 しかしどうやら、間違っていたようです。 EC2内に展開したdockerコンテナの中に展開したソースにブラウザアクセスするには アクセスするためのurlはどのようになるでしょうか? 調査方法も教えていただけますと幸いです。 解決 Docker周りの操作は合っているように見受けられます。 ですのでアクセスするためのurlはそれでOKかと思います。 以下のことを試してください(netcatを使って通信の疎通確認をします) EC2インスタンス内からDocker環境への疎通確認 $ nc -vz localhost 8080 // 成功した場合以下のようなメッセージ Ncat: Connected to x.x.x.x:8080. ローカル環境からEC2インスタンスへの疎通確認 $ nc -vz EC2のパブリックv4IP 8080 // 成功した場合以下のようなメッセージ…(Continue Reading)

EC2 上でジェムを通すと ElasticSearch にアクセスできない

投稿者: Anonymous AWS ElasticSearch からデータを取得する以下のような ruby プログラムを EC2 上で動かしたいです require ‘elasticsearch’ es_url = ‘https://xxxxxxxxxx’ es = Elasticsearch::Client.new ({ log: false, url: es_url, request_timeout: 60 }) puts ‘query start’ results = es.search({ index: ‘xxxxxxxxxx’, q: {query: {match_all: {}}}, size: 10000, scroll: ‘1m’ }) puts results これを EC2 で走らせたところ ‘query start’ が出力されたところで固まってしまい 数分たってから execution expired というエラーがでます これをEC2ではないローカルPCから同じESエンドポイントに対して動かすと数秒で実行は完了します…(Continue Reading)

EC2上で、sudo nodeコマンドが動作しない

投稿者: Anonymous 質問 EC2上で80番ポートのhttpサーバーをNode.jsで立てることになり、nodeを管理者権限で実行する必要があります。 そこで、下記のようにsudo nodeを実行すると、 [[email protected](ip-adress)~]$sudo node app.js sudo: node: コマンドが見つかりません という結果になります。 nodeコマンドでは動作するにも関わらず、sudo nodeでは上手く動作しません。 動作しない原因は何でしょうか? また、どうすれば管理者権限でnodeを実行できるのでしょうか? 以下、詳細になります。 環境 Node v13.12.0 試したこと リンクを参考に [[email protected](ip-adress) ~]$ sudo ln -s /root/.nvm/v13.12.0/bin/node/usr/bin/node [[email protected](ip-adress) ~]$ sudo ln -s /root/.nvm/v13.12.0/lib/node /usr/lib/node [[email protected](ip-adress) ~]$ sudo ln -s /root/.nvm/v13.12.0/bin/npm /usr/bin/npm [[email protected](ip-adress) ~]$ sudo ln -s /root/.nvm/v13.12.0/bin/node-waf /usr/bin/node-waf コマンドを入力しましたが同様のエラーになります パス nodeのパスとcurrentパスは以下の通りです [[email protected](ip-adress) ~]$…(Continue Reading)

SPFレコードについて教えて下さい。

投稿者: Anonymous SPFレコードについて触れるようになり、調べていたところ、 こちらのサイト https://sendgrid.kke.co.jp/blog/?p=3509 で、SPFレコードについて書かれてあったうちのSPFレコードの例なのですが、 v=spf1 ip4:198.51.100.1 include:example.com -all この 198.51.100.1 というIPアドレスは具体的にはどのサーバのIPアドレスを設定すればよいのでしょうか? また、 example.com も、送信したいドメインを設定すればよいのか、自分のドメインを設定すればよいのか、どちらでしょうか。 私は、お名前ドットコムで取得したドメイン (仮)example.net を 共有サーバSDのメールサーバで使用しています。 DNSは共有サーバSDにあります。 現在、AWSのEC2でサーバを立ち上げ example.net でアクセスできるようにしています。 DNS : 共有サーバSD? メールサーバ : 共有サーバSD サイトを運営しているサーバ : EC2 ドメイン(仮) : example.net EC2のIPアドレス(仮) : 203.0.113.1 上のような場合、EC2からどこかに(例えば***@gmail.comなど)メールを送信しようとした場合、SPFレコードはどのように設定すれば正しいでしょうか。 解決 SPFは”Sender Policy Framework”の略ですから、送信者(Sender)の情報を設定します。 v=spf1 ip4:198.51.100.1 include:example.com -all リンク先のブログに解説が書いてありますが、 ip4 はそのレコードが設定されているドメインでメールを送信するサーバのIPアドレスの宣言 includeはそこに指定されたドメインのSPFレコードを参照する宣言 -allは無条件で認証を失敗させる宣言 になります。 203.0.113.1からexample.netドメインを発信者とするメールを送信する(そしてそれ以外のサーバからメールを送信することがない)場合、example.netに対するTXTレコードとして…(Continue Reading)

AWSのEC2インスタンスを別VPCに移動したい。

投稿者: Anonymous SGやVPCの見直しを行っておりまして、 EC2のインスタンスを別VPCに移動させたいと考えています。 調べたところ↓のスレッドで 元のVPCのEC2でマウントされていたEBSをデタッチした後に、 移転先のVPCでEC2を立ち上げアタッチしなおしたところ、 インスタンスの状態がrunnningで動かなくなりました。 https://forums.aws.amazon.com/thread.jspa?threadID=103204 そこで質問なのですが、上記の方法で、 EBSだけを切り離して、別のVPCのEC2のインスタンスにマウントすることは可能でしょうか? また、別の良いやり方があれば教えて頂ければ幸いです。 よろしくお願いします。 解決 既存のインスタンスからAMIを作って 新しいVPC上でAMIから Launch すればどうでしょうか。 回答者: Anonymous

AWS SSM マネージドインスタンスに出てくる条件

投稿者: Anonymous SSM agent の設定がしてある EC2 の AMI から 新たに EC2 インスタンスを作成したのですが SSMマネージドインスタンスに出現せず aws ssm start-session を実行しても An error occurred (TargetNotConnected) when calling the StartSession operation となってしまいます AMIコピーで全く同じ構成のはずなのに SSM が使える使えないの差はなぜ生じるのでしょうか 解決 EC2Role に同じ Role を設定し、 さらにインスタンスを再起動したところ システムマネージャーから見えるようになりました 回答者: Anonymous

EC2 セキュリティグループで OutBounds を閉じても DNS が引けてしまう謎

投稿者: Anonymous EC2インスタンスをたててセキュリティグループのOutBoundsをTCP(22,80,443)のみに設定してるにも関わらず nslookup をひくとサブネット内と通信をして名前がひけてしまいます DNS は開けようと思ってたのでそれはそれでいいのですが 逆にあいてると思ってないところがあいてたりすると怖いので理由が知りたいです EC2は特別な設定はなく 構築はAWSコンソールから t2.micro, t3.micro で一番上の Linux イメージから作成 VPC上の適当なサブネット上に配置 他の設定もほぼデフォルトで作成した後セキュリティグループのみ変更しました 別のVPCで2度ためしたんですがどちらも再現します 解決 VPCのサブネットではDNSサーバーが提供されています。そのため、サブネットから外に出ることなく名前解決が可能です。 たとえば、CIDR ブロック 10.0.0.0/24 を持つサブネットの場合、次の 5 つの IP アドレスが予約されます。 … 10.0.0.2: AWS で予約されています。DNS サーバーの IP アドレスは、常に VPC ネットワークのベースに 2 を付加したものですが、各サブネット範囲のベースに 2 を付加したアドレスも予約されています。 回答者: Anonymous

AWSにデプロイしたRailsのアプリがブラウザで表示できません

投稿者: Anonymous 環境 Amazon linux Rails 6.0.2.1 Ruby 2.6.3 nginx unicorn mysql 実現したいこと 現在、以下の記事を参考に、EC2を用いてRailsアプリをAWSにデプロイしています。 https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1 現在はnginx、unicornの設定と起動まで行いました。 手順通りであれば、ブラウザにアプリが表示される段階です。 発生しているエラー ブラウザで当該IPにアクセスしても接続が拒否されてしまい、表示されません。 解決法をご存知の方がいればご教授いただきたく思います。 設定 unicorn # set lets $worker = 2 $timeout = 30 $app_dir = “/var/www/rails/portgram” $listen = File.expand_path ‘tmp/sockets/.unicorn.sock’, $app_dir $pid = File.expand_path ‘tmp/pids/unicorn.pid’, $app_dir $std_log = File.expand_path ‘log/unicorn.log’, $app_dir # set config worker_processes $worker working_directory…(Continue Reading)

AWS Lambda から Heroku の PostgreSQL に接続できない

投稿者: Anonymous AWS Lambda上でサイトをクロールし、取得したデータをHerokuのPostgreSQLに保存しようと思っています。 試行錯誤した結果、下記のエラーでつまづいてしまっております。 発生しているエラー lambda上で実行したところ、下記のエラーが発生しました。 START RequestId: efa28639-4100-11e6-a067-15a65cffa43f Version: $LATEST **Unable to import module ‘lambda_function’: /var/task/psycopg2/_psycopg.so: undefined symbol: ASN1_STRING_length** END RequestId: efa28639-4100-11e6-a067-15a65cffa43f REPORT RequestId: efa28639-4100-11e6-a067-15a65cffa43f Duration: 0.28 ms Billed Duration: 100 ms Memory Size: 128 MB 作業過程 このエラーが発生するまで、環境等を変更しながら幾つかの作業を行いました。 (主にpsycopg2周り) その過程について、下記記載させていただきます。 macで圧縮ファイルを作成の上、lambdaにアップロードしたところ、psycopg2のエラー 下記のリンクを参考に圧縮ファイルを作成しましたが、動作しませんでした。 参考:AWS LambdaでPythonをSchedule実行させる libpqを静的リンクさせる必要があるようなので、lambda実行環境と同じAMIでEC2を起動。 EC2上でpsycopg2をインストールした上で、圧縮ファイルを作成しようと考えました。 参考:AWS Lambda Pythonからpsycopg2でRDS PostgreSQLに接続する 圧縮ファイルを作成の上、再度lambdaにアップロードしたところ、エラー。 FATAL: no…(Continue Reading)

新規EC2インスタンスにSSM経由でAnsibleを実行する方法

投稿者: Anonymous ssh 経由で実行するサーバー初期構築用の Ansible のレシピがあって これまでローカルPCからssh経由で対象サーバーにレシピを実行していたんですが このレシピをなるべく改変せずに ssh のかわりに SSM を使って実行する方法はあるでしょうか セキュリティ要件のため管理はすべてSSM経由で行うことになり ローカルPCで ansible-playbook を実行するだけでは動きません 方法としては SSM でEC2に入ってからレシピを git clone でもってきて ローカルホストに対して ansible を実行する 初期環境なので python, git, ansible が入っていないので手動でインストールする必要があり再現性が担保できない aws cli には Run Command (https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/walkthrough-cli.html) というのがあってSSM 経由でコマンドを実行できるみたいなのですが ansible で ssh のかわりにこの Run Command を使用するというのはできないでしょうか python, git, ansible をインストールしてローカルに Ansible を実行する という1連のスクリプトを書いてそれを Run Command で呼べば可能ではあるのですが…(Continue Reading)

EC2 + RDSで構築したwordpressサイトにドメイン名でアクセスできない

投稿者: Anonymous タイトルの通り、EC2 + RDSでwordpressサイトを構築しています。 Route53でDNS設定を行いAレコードでALBのパブリックDNSを指定しました。 EC2やALBのパブリックDNSに対して直接アクセスすると表示されるのですが、ドメイン(http://example.com)にアクセスするとError establishing a database connectionと表示されてしまいます。 EC2サーバ内でwp-config.phpの編集を行い、RDSのエンドポイントやDB名等の必要事項の設定は正しく行われているものと思います。 大変初歩的な質問で恐縮ですが、何卒よろしくお願いいたします。 必要な情報等ありましたら仰っていただければご提供致します。 解決 時間を置いたら無事表示されるようになりましたので、完全に理解しての解決ではなく気持ち悪さが残りました。 考えられる原因としては、今回、お名前ドットコムのレンタルサーバーからAWSへの移行だったのですが、恐らくDNSの変更が浸透していなかった、または何かしらのキャッシュの影響でサーバーの向き先が変わっていなかったものかと思います。 回答者: Anonymous

AWSのElasticBeanstalkで作成したインスタンスを別VPCに移行したい。

投稿者: Anonymous ネットワークの整理をすることになったため、VPC間の移動を行いたいのですが、 ElasticBeanstalkで作成したEC2やRDS、ELBを別VPCに移行させることは可能でしょうか。 よろしくお願いします。 解決 Elastic Beanstalkには設置先のVPCを後から変更する機能は無かったと思います。 ですので、新しく環境(Enviroment)を作成してそこに移行する事になると思います。 アプリケーション自体はデプロイしなおすだけなので簡単かと思います。 Elatic BeanstalkでRDSも管理されていて、停止時間が許容されるなら、RDSのスナップショットを取得しておき新しい環境を作成時にそのスナップショットを指定すればよいかと思います。 回答者: Anonymous

AWS EC2 で AMI 作成に失敗する原因

投稿者: Anonymous 以下のようなコマンドをメンテナンスウインドの cron で各 EC2 に実行して定期バックアップを作成しようと思っているのですが、一部のEC2でcreaeImageの権限がないと言われて失敗します AMIDATE=`date “+%Y%m%d”` EC2ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id` NAME=`curl -s http://169.254.169.254/latest/meta-data/security-groups` REGION=ap-northeast-1 aws ec2 create-image –region $REGION –instance-id $EC2ID –name “$NAME-AMI-$AMIDATE-$EC2ID” –description “$NAME-AMI-$AMIDATE-$EC2ID” –no-reboot エラーメッセージ An error occurred (UnauthorizedOperation) when calling the CreateImage operation: You are not authorized to perform this operation. failed to run commands: exit status 255 心当たりがあるとすれば その失敗する…(Continue Reading)