2019-01-01から1年間の記事一覧

【AWS/ECS】デプロイ後、アクセス出来ない

タスクやEC2インスタンスなど、どこを見ても正常なはずなのにいざパブリックIPにアクセスするとアクセス不可の表示が。 結論から言うと、タスク定義の際に設定する「ネットワークモード」をawsvpcにしているのが原因です。bridgeにすれば正常に作動しました。…

【AWS/ECS】タスクを実行するとRESOURCES"PORT"となる場合

サービスを作ったのにも関わらず、タスクが起動しない。 自動起動が行われないので、手動で起動してみるとRESOURCES"PORT"となりました。 結論から言うと、EC2インスタンスを利用したECSの場合はそれを再起動もしくは削除し新規作成すれば解決します。 原因…

【AWS・ECS】Nginx 502 Bad Gatewayが表示されたとき

何度か表示されたので、解決方法をメモ。 1.volumeの設定を確認する volumeが正しく設定されていないときに発生しました。 ECSのvolumeはタスク定義から設定しますが、この設定に不備があったのが原因でした。 webコンテナとnginxコンテナがあって、web側と…

【AWS・ECS】ECSの各流れを軽くまとめる

ECSは色んな単語があったり、役割を覚えるのがややこしいので、忘れたとき用にまとめてみる。 今回はEC2テンプレート(Linux)を用いた例 1番大きい単位のものから順にまとめてみる クラスター ここで、起動するEC2インスタンスの設定などを調整する。 EC2の…

【AWS】ECSにALBを設定したら接続に時間がかかる問題

タイトルにある通り、ECSにALBを設定すると最初の接続にかなり時間がかかります。 一度アクセスすればその後は快適なのですが、少し時間を置くとまたかなり時間がかかります。 具体的な時間を言うと20秒~30秒程度でしょうか。ちょっと致命的です。 思い当た…

RailsのRSpecテストにおける用語整理

RSpec…RubyにおけるBDDのためのテスティングフレームワーク BDD…Behavior(振舞)をまず作り、その後にプロダクトコードを書く開発手法 Capybara…RSpecと組み合わせて使うE2Eテスト用フレームワーク。ブラウザ操作などをシュミレーションできる。 E2E…End to…

【AWS】ECS+Fargateで環境構築

Dockerの基本的な座学は大体終えたので、AWSのECSをFargateで実践してみる。 用語整理 タスク…アプリケーション単位のコンテナのまとまりのこと。コンテナの集合体。 AコンテナとBコンテナという2つのコンテナでWebサーバーを構築する場合、Webサーバーのタ…

【Rails】カラム追加して、既存のレコードに特定の条件を付けてそのカラムを埋めるメモ

bookseriesという本のシリーズを管理するテーブルがあります。 このテーブルは本の様々な情報を持つbookテーブルと紐付いています。 bookseriesに出版社名のカラムであるpublisherを追加します。 このカラムはbookにある出版社名のカラムと同じレコードを持…

【Rails】S3とcarrierwaveの連携メモ

以前書いたS3で簡単なWebページを作るメモから参照し、S3を作成しておく。 以下S3を作成した前提でのRails側でのメモ IAMユーザー作成 S3を操作するIAMユーザーを追加する。 ユーザー名を適当に、アクセスの種類は「プログラムによるアクセス」 アクセス権限…

【Docker】コマンド整理/まとめ

忘れたとき用のメモ。 オプションなどの意味も整理。 container/image周り ※コマンドのdocker container/image などのcontainer/imageは省略できたりするが、敢えて省略しないほうがどういうコマンドを打っているのかがわかりやすいため、長い方が推奨されて…

【Docker】Volumeについてのメモ

コンテナのライフサイクルでの終了と共に、コンテナ上のファイルは全て消えてしまうので、それを防ぎたいときのためにコンテナ外に管理できるファイルのことボリュームと言う。 docker container run -v ホストのパス:コンテナのパス runするイメージ名など …

【Docker】AWSでDocker-machineを動かす手順

IAMでユーザーを作成する。 (プログラムによるアクセス→既存のポリシー→ AdministratorAccess→作成) アクセスキーとシークレットキーをコピー ローカルにフォルダを作り、credentialsファイルを作成。 [default] aws_access_key_id = XXX aws_secret_acces…

【AWS】S3を簡易的なWebサーバーとして機能させるメモ

AWSのマネージドサービスであるS3を簡単なWebサーバーとして機能させるメモになります。 あくまで学習の一環です。 S3のファイル置き場のことをS3バケットと言います。 ダッシュボードでの設定 S3のダッシュボードで、作成を押す。 パケット名(ドメイン名で…

【AWS】fargateにALBを設定する

既にRoute 53でドメインを取得したり、証明書の発行が済んでいる前提。 EC2ダッシュボードからロードバランサーへ進み、作成を押す。 ALB選択し、各種設定をしていく。 ロードバランサーの設定 適当な名前を付け、インターネット向けを選択。 今回はHTTPS通…

【AWS】ECRにイメージをプッシュするメモ

AWS CLIの導入 AWSコマンドをローカルで叩けるようにするAWS CLIを導入する必要がある。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html 使えるようになったら、IAMでユーザーを登録する。 アクセスキーとシークレットアクセ…

【Docker】用語整理

先日からDockerに手を出したのですが、初学者なもので大量の新しい用語の整理が付かない状態です。 言葉の定義がわからないと、何がわからないのかわからないと言った状況に陥りやすいので自分なりに整理してみました。 イメージ…コンテナーを作成するために…

【AWS】EC2+RDSでRailsアプリを動かすメモ

あくまで学習の一環としてのメモ。 VPCの作成 まずはVPCの作成。 CIDRブロックは10.0.0.0/16で。 EC2用のサブネットを作成 EC2用なので、外部と通信できるサブネットを作る。 CIDRブロックは10.0.0.0/24 インターネットゲートウェイを作成 EC2用のサブネット…

【AWS】EC2でsshを用いてgit cloneするまで。

EC2環境でsshを用いてgit cloneするまでをメモしてみました。 $ cd ~/.ssh $ ssh-keygen -t rsa 名前の入力を促されるのでgithub_keyとでもしておく。その後は2回エンター押す。 $ vi config Host github HostName github.com User git IdentityFile ~/.ssh/…

【AWS】S3を簡易的なWebサーバーとして機能させるメモ

AWS

AWSのマネージドサービスであるS3を簡単なWebサーバーとして機能させるメモになります。 あくまで学習の一環です。 S3のファイル置き場のことをS3バケットと言います。 ダッシュボードでの設定 S3のダッシュボードで、作成を押す。 パケット名(ドメイン名で…

docker-composeの書き方メモ

とりあえず初心者なりに、用語を調べながらなんとかdocker-composeを理解できそうです。 これからも使うことになるので、メモとして説明を入れながら書いてみました。 version: '3' #docker-composeのバージョン指定 services: #各コンテナの設計を書いてい…

【Docker】用語整理

先日からDockerに手を出したのですが、初学者なもので大量の新しい用語の整理が付かない状態です。 言葉の定義がわからないと、何がわからないのかわからないと言った状況に陥りやすいので自分なりに整理してみました。 イメージ…コンテナーを作成するために…

【Devise】Twitter連携ログイン時、メール認証を回避する。

Twitter連携を使用し、ログインした場合Twitterを伝って持ってこれる情報にはメールアドレスはありません。 なので認証するときはダミーのメールアドレスを生成し、それをメールアドレスとして設定していたのですが、Deviseのメール認証をオンにしているとダ…

Githubから特定のファイルの履歴を消すメモ

本来、環境変数として設定してプッシュしなければいけなかったファイルを誤ってプッシュしてしまったときなど、そのファイルの履歴はずっと残ってしまうので、APIのKeyやらが全世界に公開されてしまいます。 先日その過ちを消すことに成功したのでメモ。 ま…

【Rails】form_withで作成したselectのoptionタグに初期値を設定する。

f.selectで作成したセレクトボックスを使って検索機能を採用しているのですが、検索するたびにセレクトボックスの値が初期値になると何かと不便です。 選択した値をページが切り替わっても保持するため、初期値にそのセレクトボックスのparamsを代入し、結果…

【Rails】中間テーブルで2つのidの組み合わせ重複したとき無効にするテストを書く

バリデーションを書く validates :user_id, :uniqueness => {:scope => :book_id} 一応migrationファイルにもt.indexを使ってDB側で同じ組み合わせが重複しないようにはしているけど、バリデーションとしてエラーを出せるように書いてみた。 こうすることで…

【RSpec】user_specのメモ

昨日初めてRSpecに手を出しました。 そこで気がついたんですが、もっと早くやっておけば良かったと思います。 多分そこらへんはコードとテストをどっちを先に書くかみたいな話にもなるとは思うのですが、僕自身、ポートフォリオを作成中で、最低限の機能を追…

【Rails】楽天BooksAPIで新刊を抽出する

残念なことに楽天APIでは入力パラメーターに発売日を指定して検索をかけることはできないみたいなので、無理やり新刊を検索するコードを書きました。 入力可能なパラメーターはいくつかありますが、その中でも出版社毎に新刊を抽出します。 def download @pa…

【Rails】ActiveRecord:Relationをeach do内でまとめる

特定の検索ワード等が複数あって、それをeach do内でwhereを用いて引っ張ってきたものを、ある配列にまとめる処理を繰り返す感じになります。 @books = [] @findbooks.each do |book| comics = Book.where("title LIKE ?", "%#{book}%") comics.each do |com…

【Rails】formのselectにclassが設定できない問題

form_forで書いていたものをform_withに修正したところ、classに書いたBootstrapが反応しなくなりました。 f.select :month, options_for_select(['10', '11', '12']), class: "form-control" 本来ならform-controlを指定したので、デザインがBootstrapのそ…

Bootstrapの折り畳みのhrefに特殊文字を使うにはエスケープもしくは置き換える必要がある

https://cccabinet.jpn.org/bootstrap4/components/collapse 上に書いてあるような折り畳み機能を仮にeach do内で使うとすると思わぬ動作不良が起きました。 本のシリーズ名をボタンにして、そこを押すとそのシリーズの本が出てくるというものを作っていたの…