ふるさと納税してみた
節税と返礼品に目がくらんで、ふるさと納税してみました。
ウイスキー
評価数が多かったので頼んでみました。
いつもトリスなので、たまには良いウィスキーを飲めるといいなぁ。
www.furusato-tax.jp
ウインナー
以前、旅行で行った糸島のウィンナーがあったのでチョイス。
探し求めてる屋台のウィンナー感を期待してます。
www.furusato-tax.jp
トイレットペーパー
いつも買い物でトイレットペーパーを買うと荷物になるので助かる。
www.furusato-tax.jp
最後に
初めてなので、とりあえず食べ物中心で選んでみました。
ワンストップ特例という制度?があるみたいなので、全てこれで申請してみます。
一応全てオンラインでいけるみたいですが、それぞれオンラインの申請サイトや方法が違うみたいで戸惑いました。。。
ウィスキーのやつはマイナポータルとかで簡単にできました。
他のやつはそれぞれのオンライン申請サイトで申し込む必要があるみたいです。
自治体で確認処理が完了したら多分申請できそう。
とりあえずワンストップ特例申請終わらして、届くの楽しみにしときます。
VTuberになってた
今日は大阪に行く予定があったので
久々に前々職の同僚とご飯を食べたのですが
まさかのVTuberデビューしてました。
イラストとかは外注でしっかり作成してもらって
行動力あるなー僕も何か行動してみようかなーと思った今日この頃です。
あと立ち読みで自己肯定感を高める本読んでちょっと元気出ました。
明日も自己肯定感高める行動して人生充実させていこう。
Google Books APIのtotalItemsはコロコロ変わる
久々に投稿しました。 のんびり転職活動してたら2月の半ばになってました。 それでもマイペースに頑張っていきます。
そんな感じで久々にポートフォリオをちょっと触っていたのですが Google Books APIを利用した時のちょっとした注意点(グチ)を書きます。
Google Books APIのtotalItemsはコロコロ変わる
Google Books APIという本を検索するとAPIを利用しているのですが APIから取得できる内容にtotalItemsというものがあります。
totalItemsは検索で引っかかった本の合計数と思うのですが 検索時にパラメータとして設定するstartIndexを変えて取得する本の範囲を変えると totalItemsの値がコロコロ変わるようです。
公式ページにも記載されていたので仕様っぽいのですが ページネーションをする際に本の合計数がコロコロ変わられると 具合が悪いのでなんとかしたいです。
いい方法がありましたら、どなたかご連絡頂けますと幸いです。
・公式ページ https://developers.google.com/books/docs/v1/reference/volumes/list?hl=ja
・本検索ページ https://bookapp.se-kun.net/
今日ものんびり日々精進。
お金に困ってHerokuへデプロイ
AWSのECSの料金が高くなってしまって困ったので今日はRailsアプリをHerokuへデプロイしました。
これでお金に少しだけ余裕が出てくるとかと。。。
以下に手順の備忘録。
brew tap heroku/brew && brew install heroku
- Herokuへログイン
heroku login --interactive
- Herokuへ公開鍵を登録
heroku keys:add
※無い場合は作成されます
- Herokuアプリを作成
heroku create <アプリ名> ←アプリ名はオプション
- データベースをpostgresqlに変更 ・database.yml
production:
<<: *default
adapter: postgresql
...
- Gemfileの変更 ・Gemfile
group :production do
gem 'pg' ← 追加
...
end
- bundle install実行
bundle install --without production
- Gitにpush
git add .
git commit -m "updateなどなど"
git push heroku master
・・・
・・・
・・・
remote: -----> Launching...
remote: Released v11
remote: https://<アプリ名 https://xn--<-feuthycv08u?>.herokuapp.com/ http://.herokuapp.com/> deployed to Heroku ← 公開URL
...
...
- 感想 意外と簡単にデプロイできたので今後もお金節約したいときはherokuかNetlifyを使おうかと思います。
CircleCIを使ってAWS ECSにRailsをデプロイ(ALBとECRも使ってます)
最近、寒くなってきました。
布団から出るのがしんどいです。
ということでCircleCIでAWS ECSにRailsをデプロイしてみました。
ゴニョゴニョしながらやったので間違いや漏れの可能性もありますが。。。
事前準備
- CircleCiに登録
- GithubとCIrcleCIの連絡(登録時に連携させられる)
- Dockerのインストール
- AWSアカウントの作成とAMIの作成(ESC関連の権限が必要かも)
- 外部にデータベース用意(私の環境ではRDSを利用)
- AWS ECRの作成
1. ECS, ECR, ALBの設定
以下のブログを参考に設定させていただきました。
注意点としてはALBのヘルスチェックで応答コードが200以外は失敗と見なされる?ようなので deviseなどで絶対ログインしている場合はヘルスチェックURLをログインURLなどに変更した方が良いかと思います。
2. Docker周辺の設定
ほぼ、Docker公式サイトからRailsのDockerfileとentrypoint.shをコピペ
コピペしたDockerfileとentrypoint.shをRailsのルートディレクトリ(appフォルダやGemfileがあるディレクトリ)に保存
Dockerfileの内容を少し変更
FROM ruby:2.6 RUN apt-get update -qq && apt-get install -y nodejs build-essential default-mysql-client RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ENV APP_NAME <任意のアプリケーション名> RUN mkdir /${APP_NAME} WORKDIR /${APP_NAME} COPY Gemfile /${APP_NAME}/Gemfile COPY Gemfile.lock /${APP_NAME}/Gemfile.lock RUN bundle install COPY . /${APP_NAME} ARG RAILS_MASTER_KEY ENV RAILS_MASTER_KEY ${RAILS_MASTER_KEY} ARG RAILS_ENV ENV RAILS_ENV ${RAILS_ENV} RUN rails assets:precompile COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]
おそらくdocker-compose.yml無くてもCircleCI上でdocker imageのビルドはできるはずです。
おそらく。
3. CircleCIの設定
- Railsのルートディレクトリに.circleciフォルダとconfig.ymlを作成
config.ymlに以下を記載
以下の記事を参考に設定させていただきました。
version: 2.1 orbs: aws-ecr: circleci/aws-ecr@6.6.0 aws-ecs: circleci/aws-ecs@1.0.4 aws-cli: circleci/aws-cli@0.1.19 jobs: db-create-migrate-on-task-run: machine: image: ubuntu-1604:201903-01 steps: - checkout - aws-cli/setup: aws-access-key-id: AWS_ACCESS_KEY_ID aws-secret-access-key: AWS_SECRET_ACCESS_KEY aws-region: AWS_REGION - run: name: "db create" command: | aws ecs run-task --region $AWS_REGION \ --cluster <ECSのクラスタ名> \ --task-definition <ECSのタスク定義名> \ --overrides '{ "containerOverrides": [ { "name": "<ECSのタスク定義で指定したコンテナ名>", "command": ["rails", "db:create"] } ] }' - run: name: "db migrate" command: | aws ecs run-task --region $AWS_REGION \ --cluster <ECSのクラスタ名> \ --task-definition <ECSのタスク定義名> \ --overrides '{ "containerOverrides": [ { "name": "<ECSのタスク定義で指定したコンテナ名>", "command": ["rails", "db:migrate"] } ] }' workflows: build-and-deploy: jobs: - aws-ecr/build-and-push-image: account-url: AWS_ECR_ACCOUNT_URL repo: '<ECRで作成したレポジトリ名>' tag: '${CIRCLE_SHA1}' extra-build-args: '--build-arg RAILS_MASTER_KEY=${RAILS_MASTER_KEY} --build-arg RAILS_ENV=${RAILS_ENV}' - db-create-migrate-on-task-run: requires: - aws-ecr/build-and-push-image - aws-ecs/deploy-service-update: requires: - db-create-migrate-on-task-run family: '<ECSのタスク定義名>' cluster-name: '<ECSのクラスタ名>' service-name: '<ECSのサービス名>' container-image-name-updates: 'container=<ECSのタスク定義で指定したコンテナ名>,tag=${CIRCLE_SHA1}'
CircleCI Orbsに公式からECS, ECRのjobsが出てるのでそれを使う
db createやdb migrateもついでにやってもらう
CircleCIにログインし環境変数を設定
AWS_ACCESS_KEY_ID | AWS_ECR_ACCOUNT_URL | AWS_REGION | AWS_SECRET_ACCESS_KEY | RAILS_ENV | RAILS_MASTER_KEY |
---|---|---|---|---|---|
AMIのアクセスキー | ECRのURL ~.comなどで終わる | リージョン名 | AMIのシークレットキー | 本番であればproduction | master.keyの中身の文字列 |
4. masterへプッシュ
動けばOK
今後
- テストの追加
- ステージングの追加
- ブランチ別でのCI追加
- Nginxの導入
などなど
難しすぎて必死のパッチです。