迷えるIT子羊の忘備録

よろず屋Linaちゃんの忘備録

AWS CLI童貞を卒業して大人になった話

こんにちは 金髪から黒髮になったLinaです。
黒髮になっても尚消えないサブカル感、、、、なぜだ、、、
僕は大人の女性になりたかっただけなのに。。。

と、余談はさておき、
今日はAWS CLIを使って、
本番環境に上がってるS3の画像データを開発環境へコピーしたお話をしたいと思います。

AWS CLIってなーに?

公式サイトには次のように書かれていました。

AWS コマンドラインインターフェイス (CLI) は、AWS サービスを管理するための統合ツールです。
ダウンロードおよび設定用の単一のツールのみを使用して、
コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してこれらを自動化することができます。

なるほどー?わからん。  

ってなったので、もう少し調べると、 エウレカ様のtechブログに、素敵な記事がありました。

aws-cliがあればこれらの作業を自動化できるので、人生が100億倍豊かになります(本文より抜粋)

S3のアップロード作業やコピー作業などをコンソールからポチポチしてたのを、 CLIを使うと瞬殺できるらしいです(しゅごい)  

AWS CLI をインストールしてみよう

というわけでAWS CLIを使うメリットがわかったので、 早速インストールして見たいと思います。

インストールはとても簡単でした。 コマンドラインで下記を打つだけ。

$ sudo easy_install pip 
$ sudo pip install awscli 

これでインストール完了。

初期設定をしてみよう

コマンドライン

aws configure

と入力。そうすると、

AWS Access Key ID []:
AWS Secret Access Key []:
Default region name [ap-northeast-1]:
Default output format [json]:

↑のようなものが表示されるので、必要情報を入力しましょう。
何入力したらいいかわからない!!(怒)という人はインフラ部隊の偉い人に聞いてみよう。

こちら入力したらセットアップは終了です。

S3の中身を別のバケットにコピーしよう

aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }}  s3://[コピーしたい先のバケット名]/{{ objectPath }}  --region ap-northeast-1 

と、これだけです。 動作確認したい場合は「–dryrun」してあげましょう。

aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }} s3://[コピーしたい先のバケット名]/{{ objectPath }} --region ap-northeast-1  --dryrun

変なミスで詰まってしまったこと

なぜか、

aws s3 sync s3://[コピー元のバケット名]/{{ objectPath }} 

aws s3 sync s3://buckets/[コピー元のバケット名]/{{ objectPath }} 

と、S3://の後に//buckets/とつけてコピーしようとしてました。
当然403で怒られます。
/buckets/ はいらないので注意!!

以上です。
これで時間短縮できそうですね..!

復活します

お久しぶりです。
Linaです。

数ヶ月前、メンヘラ拗らせて全投稿記事を非公開にすると言う奇行に走りましたが、
この度、復活することになりました。 (本当はリニューアルしようと思って非公開にして、リニューアル面倒臭くなっただけですが…)


改めて自己紹介  

Linaといいます。
一人称は僕ですが、女性です。 美味しいお酒とゲームが大好きな25歳児です。
渋谷でひっそり生きています。

ざっと投稿していなかった期間に何してたかをお話すると、
SIer企業を退職し、半年間はフリーランスエンジニアやったり 、  
プログラミング教室でデザイナーとして修行したりしておりましたが、
現在は渋谷の某スタートアップの創業メンバーとして、
健康で文化的な最低限の生活を送らせていただいてる次第です。

現在の仕事内容としては、上記にもあるように、デザイナー修行をしたおかげで、
デザイナー兼たまああにエンジニアみたいな感じなんですけど、
とはいえ弊社はメンバーがインターン含め4人しかいないので、
「デザインしかしたくないです」みたいなワガママが通るわけもなく、
日々苦手な(笑)プログラミングと、UXデザイン、ビジュアルデザインをメインに業務をしております。  


なんで復活するの?また記事非公開にしそう。

そもそもなぜ非公開にしたのかと言いますと、
改めて読み返した時に非常に読みにくかったからなんですね。
僕、コミュ障ゆえに非常に日本語下手です。

ただスタートアップという状況下にいると日々勉強することが多くて、
頭の中を整理するためにもブログを書くことが効率的だなと思い、再開する運びとなりました。

今後は読んでくださる神のような皆様のことをしっかり意識するので、
この不自由な日本語にもう少しおつきあいくださいませ(懺悔)
記事非公開とか黒歴史を隠すようなことしません!黒歴史も受け入れます!!  


で、なにを投稿するの?

日々勉強したことを忘備録として書きます。   ジャンルとしては、
- rails
- UI
- UX
- 情報アーキテクチャ
- AWS
- ウェブ解析
- 統計数学
- アナリティクス
- 社会人基礎
(余談枠)
- 弊社の日常

とこのあたりになるかと思います。
↑勉強中なので、ふわふわしてる記事ばかりかと思いますがお手柔らかにお願いします。  

以上です。

ツイッターもよろしくね

ゲームのことしか呟いてませんが、よければFollow me💖

twitter.com

502 bad gateway

502 bad gate way

先日、AWSのEC2の再起動をかけたら、こんなのが出ました。

f:id:lina_marble:20160412153333p:plain

502….bad gate way …???

とりあえずググりますが、
ロードバランサーがどうとかこうとか….

ふむ。とりあえず、nginxに何か問題があるのかな….と思い、
nginxのerror.logを見てみます。(/var/log/nginx)

nginx: connect() failed (111: Connection refused) while connecting to upstream

接続が拒否されて、ソケットが動いてない、、、、だと、、、?

unicorn.rbは特にいじった記憶がありません。
先ほどまで普通に動いていたのに、、、

とりあえず、unicornがうまく起動していないとのことだったので、 下記サイトを参考にソケットのパス指定など試行錯誤。

Capistrano3 + Rails4 + Unicorn + Nginx + EC2でサーバー構築! - Qiita

そこでふと気づきます。 ***/shared/tmp/pidsに、unicorn.pidが生成されていないことに….

どうやら、先に走ってるプロセスがうまく死んでないときにデプロイしたことが原因で、pidファイルが生成されていなかったようです…

プロセスを殺し、再度デプロイすると……

動いた!!!!!

ということで、capistranoでデプロイするときは、
ps ax | grep unicorn で今走ってるプロセスがないか確認したほうが良いそうです。

辛かったけど、めっちゃ勉強になった。

Deviceでメール送信設定(SESだよ(°_°))

Deviceでメール送信の設定の忘備録

メールが送れない問題の原因は、ちゃんと設定されてなかったからでした(笑)
忘れないようにメモしておきます( *`ω´)
初投稿だよっw

(間違えた記述がある場合は優しく教えていただけますと幸いです..)

1. config/environments/development.rbの下記をコメントアウトにする。
#config.action_mailer.raise_delivery_errors = false
2.SESでメール認証

config/initializers/devise.rbのconfig.mailer_senderを、
SES に登録されているメールアドレスに書き換えます。

config.mailer_sender = 'sample@xxx.com'

config/environment/development.rbに下記を記述。

 config.action_mailer.default_url_options = { :host => 'サーバーの値' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => 'email-smtp.us-east-1.amazonaws.com',
    :port => 587,
    :authetication => :login,
    :user_name => 'xxxxxxxxxxxxxxx',
    :domain => "sample.com",
    :password => 'xxxxxxxxxxxxxxx',
    :enable_starttls_auto => true,
  }

user_name と passwordは SESのコンソールで取得しましょう。
参考 URL:

docs.aws.amazon.com

これでデプロイしたら、無事動きました!!
config/environment/development.rbに直接、SMTP情報書き込むのってどうなのってところもありますが…
後々良い方法学んだら書き換えます。。