- 1. PythonでRemoEから消費電力を取得する方法
- 2. 【Node.js】LINE MessageAPIで作った天気予報アプリをAWSでデプロイしてみる!
- 3. 【AWS CDK】cdk deploy, cdk destroyの `(y/n)?`を上書きする
- 4. FirebaseのAuthenticationのメールアドレス確認の文章を変更する方法
- 5. Fargate 環境のタスクにNew Relic Infrastructure エージェントをサイドカーとして設定する
- 6. AWSアソシエイト試験に向けて12(AWSにおける疎結合とサーバレス)
- 7. AWS Amplify + API gateway + Lambda + Dynamodb でシンプルなサーバレスWebアプリを作ってみた
- 8. 冗長性のあるブログサービスを構築する(冗長構成)
- 9. AWS Online Summit Japan(2021/5/11~12)参加レポ ②
- 10. AWS EC2にDocker ComposeでGitlabを導入
- 11. AWSの資格を勉強してるときよく見る単語集その①
- 12. ECS deploy通知
- 13. Amazon CloudWatch Logs Insight サンプル集
- 14. CodeDeployエージェントのメモリ問題
- 15. AWS Certificate Manager(ACM)でクライアント証明書を発行してnginxに設定する方法
- 16. 手動で作成したAWSリソースをCloudFormation管理下に置く
- 17. AWS SSO + CLIでロール連鎖をする際のセッション時間制限をマシにする方法を考えてみた
- 18. AWS WorkSpaces に Amazon LInux 2 の仮想デスクトップをJavaやPHP開発環境としてセットアップした時の作業履歴
- 19. WordPressでNephila clavata (絡新婦)を使って負荷分散をした話
- 20. ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running? If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
PythonでRemoEから消費電力を取得する方法
#目的
Nature RemoEに登録したスマートメーターから消費電力データを取得する。#方法
ざっくりの流れは以下の通りです。1. [Nature Remo Cloud API](https://swagger.nature.global/)のGET /1/appliances というエンドポイントを叩く
2. smart_meterというプロパティからepcとvalを取得する
3. 正方向の積算電力量に係数を掛けて、単位変換を行う
4. 任意の期間の積算電力量の差分をとるそれでは、コードを載せながら、それぞれ詳しく説明していきます。
####[Nature Remo Cloud API](https://swagger.nature.global/)のGET /1/appliances というエンドポイントを叩く
APIは、HTTPクライアントがNatureのサーバへHTTPSリクエストを行うことで利用します。レスポンスはJSON形式です。認証、認可にはOAuth2を利用します。
APIを利用する際には、必ず以下のHTTPヘッダを付加する必要があります。Auth
【Node.js】LINE MessageAPIで作った天気予報アプリをAWSでデプロイしてみる!
先日、Node.jsでアプリを天気予報アプリを作成しました。
https://qiita.com/Ryo9597/items/bf93618663f28e9d8f7f
この記事内ではデプロイは、`Glitch`を使いました。
https://glitch.com/
まぁ無料なわけで色々問題があります。
・プロジェクトは、利用されていないときは5分でスリープ状態になる
・4000件/1hのリクエスト制限がある(Error: 429 too many requests)ということでAWSにデプロイすることにします。
それではアーキテクチャに関してみていきましょう。## アーキテクチャ
![Architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/479f319c-9032-4137-65d3-3aa6a37b9b5d.png)
ちなみにAWSのアーキテクチャなどを作るときは、`drawio`がおすすめです。
VSCodeから使えるので是非使ってみてください。
【AWS CDK】cdk deploy, cdk destroyの `(y/n)?`を上書きする
## はじめに
通常、`cdk deploy`、`cdk destroy`すると以下のように`(y/n)?`と表示される。
“`deploy.sh
$ cdk deploy
~~
Do you wish to deploy these changes (y/n)?
“`“`destroy.sh
$ cdk destroy
~~
Are you sure you want to delete: YourStackName (y/n)?
“`ただ、これらのコマンドを自動化する際はこの表示が煩わしいため、オプションなりで上書きする方法を調べてみた。
## `cdk deploy`
`–require-approval` オプションに `nerver` を指定する。
“`sh
cdk deploy –require-approval never
“`もしくは、`cdk.json` に `”requireApproval”: “never”` を追加する。
## `cdk destroy`
`-f` or `–force` オプションを用いる。
“
FirebaseのAuthenticationのメールアドレス確認の文章を変更する方法
## できるようになること
メールアドレス確認のテンプレートを使用せず、文章を変更できるようになります## 環境
* Amazon Simple Email Service(Sendgridでも可)
* FirebaseCloudFunctions## 大まかな流れ
1. `createUserWithEmailAndPassword` して、`auth.user` を `firebase` に作成する
2. `cloud functions` で `auth.user` が作成された時に、メールアドレス確認リンクを作成する
3. メール文章にリンクを載せて、メール配信サービスを使って送信する## コード
#### 1. `createUserWithEmailAndPassword` して、`auth.user` を `firebase` に作成する
“`js
firebase.auth().createUserWithEmailAndPassword(email, password)
.then((userCredential) => {
//
Fargate 環境のタスクにNew Relic Infrastructure エージェントをサイドカーとして設定する
#はじめに
本記事では、稼働中の Fargateの環境に New Relic Infrastructureエージェントをサイドカーに設定し、コンテナをモニタリングできるようにするまでの手順について記載しています。詳細:
https://docs.newrelic.com/docs/integrations/elastic-container-service-integration/installation/install-ecs-integration/
##前提条件
– AWS インテグレーションの設定が完了していること。
– AWS インテグレーションで、ECS サービスをモニターする設定にしていること。参考:
https://docs.newrelic.com/jp/docs/integrations/amazon-integrations/get-started/connect-aws-new-relic-infrast
AWSアソシエイト試験に向けて12(AWSにおける疎結合とサーバレス)
## はじめに
疎結合及びサーバレスの分野はWell-Architected Frameworkでは
– 信頼性……疎結合
– パフォーマンス効率……サーバレスの領域にありベストプラクティスではそれぞれ
– コンポーネントの疎結合
– サーバーではなく、サービスの領域になる。
## 疎結合とは(なぜサーバレスなのか)
疎結合とサーバレスは相互依存……というより疎結合にするためにサーバーレスを求め、サーバーレスを求めると疎結合になるという関係性にある。
じゃあなぜそうなのかを簡単に押さえてみる。### 疎結合とは
ざっくりいうと、コンポーネント間は連携はしているが相互依存度は低いもしくは0であるような状態のことをいう。
つまり、コンポーネントは基本的には独立している状態に近い。
これはで1つのコンポーネントが潰れることで、他のコンポーネントも連鎖的に障害となり結果サービスが停止してしまう事態(単一障害点)を避けることにもつながる。
AWSにおける疎結合に関連する主なサービスは– Lambda……サーバーインスタンスで直接連携するのではなく、Lambdaのトリガ
AWS Amplify + API gateway + Lambda + Dynamodb でシンプルなサーバレスWebアプリを作ってみた
AWSのお勉強、Webアプリのお勉強、その他もろもろを兼ねてサーバレスWebアプリを作ってみた。
アプリ自体は簡単なものなので、本記事ではAWSの構成を中心に記述する。# アプリ概要
フリー麻雀の成績、収支を管理するアプリ。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306681/4e30d3ca-4bcb-93a3-f257-778d694f25a7.png)入力モードでは店舗名と着順(例:113234244)、収支を入力し、データベースに記録する。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306681/b7b79b9a-8d59-c59b-5258-e8d891c672ba.png)
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306681/928eb492-461f-52eb-12c9-f
冗長性のあるブログサービスを構築する(冗長構成)
# 内容
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
「基本的なブログサービスを構築する(シングル構成)」のレッスンに引き続き、
「冗長性のあるブログサービスを構築する(冗長構成)」のレッスンにて、より障害に強い冗長化の構成を学習しました。
前回のレッスン https://qiita.com/zakinicof/items/e040e1eb343e4c6220e9
# このレッスンのゴール前回の構成
![スクリーンショット 2021-06-21 13.48.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790886/0580918a-5c77-f8a5-d044-54016605381a.png)
上記の構成だと、EC2に障害が発生した場合、サービス全体が停止してしまうため、AZ 1cに新たにEC2とRDSを構築する。
2台のEC2はRDS Masterのデータを
AWS Online Summit Japan(2021/5/11~12)参加レポ ②
##はじめに
こんにちは、新米プログラマーの[Yuu_N](https://qiita.com/Yuu_N)です。
業務経験は研修でJavaを使用してECサイトを作成した後、C#を用いた業務アプリの開発の経験を経て今は社内研修(Java)のサブ講師をしています。
先月開催していた[AWS Online Summit Japanの参加レポート](https://qiita.com/Yuu_N/items/6cd42edf2b5a671a4066)の第二弾となります。
第一弾を読んでいただけている方は以下参加した目的、参加したセッションは第一弾と重複する内容となっているので飛ばして読んでいただけると幸いです。##参加した目的
4月に開催したAWSome Daysでは体系的にAWSの良さや主要のサービスについて学ぶことができたのでそこから更に基本的なサービスについて深堀して学びたいと思ったためです。##参加したセッション
参加したセッションは以下になります。
本イベントではセッション数が150を超えていたのでどうやって自分が学びたい内容のセッションを探せるか不安だったのですが、セッシ
AWS EC2にDocker ComposeでGitlabを導入
#事前準備
[AWS EC2にDocker ComposeでJenkinsを導入](https://qiita.com/peanuts2013/items/6753c026b26db4d71130) の続きとなります。#作業ディレクトリに移動
“`bash
[ec2-user@ip-xxx-xx-xx-xxx container01]$ cd /home/docker/container01
“`#docker-compose.ymlを編集
今回は試すにあたり、[GitLab最小構成セットアップ(AWSに応用可)](https://qiita.com/Kento75/items/cd943fe5e9af98f00539) を参考にさせて頂きました。– [AWS EC2にDockerでDocker Compose(1.29.2)を導入](https://qiita.com/peanuts2013/items/2ca576e855c880518e45) にも記載しましたが、EC2のインスタンスタイプは「t2-medium」が最低レベルです。
※複数コンテナ(Redmine,
AWSの資格を勉強してるときよく見る単語集その①
## はじめに
こんにちは!初めまして!喜村といいます!
今回はクラウドインフラの一つであるAWSの資格であるSAAやDVAを勉強しているときによく出てくる単語をざっくり纏めました。よろしくお願いします!(。・ω・)ノ゙
## API
AWSだけに限らずWeb系の仕事に関わってくるとよく出てくる**API**。これは「**Application Programming Interface**」の頭文字です
英文字だけで意味を理解しようとすると、アプリケーション・プログラミング・インターフェイスで、大雑把に言うと**アプリケーションをプログラミングするためのインターフェース**という意味です。## インターフェース
APIで出てきた単語インターフェースってなんでしょう??
これは**「何か」と「何か」を繋げるもの**です。例えばUSBも「パソコン」と「周辺機器」を繋ぐものですのでインターフェースの一つになります。
## プロビジョニング
プロビジョニングとは、**必要に応じてネットワークやコンピューターのなどの設備やリソースを提供できるように予測し、準備しておく
ECS deploy通知
# 概要
ECSのdeployの開始と終了を通知する仕組み。
Amazon ECS のイベント内にデプロイ完了通知があるのでこちらを拾って通知する。
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs_cwe_events.html通知の流れ
EventBridge→Lambda→slack(webhook)の流れ。# 前提
予め通知したいslackのwenhookURLの取得をしておく。# Lambda
まず、Lambda関数の作成。以下で作成する。ラインタイム:Python3.8
タイムアウト値:1分
メモリ128M以下code
“`python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import boto3
import urllib.request,urllib.parse
import json
def lambda_handler(event, context):
msgdata = event[‘detail
Amazon CloudWatch Logs Insight サンプル集
あまりサンプルがないように思えたのでメモとして残しておく
1000文字以上のメッセージを出力
“`
fields @timestamp, @message, strlen(@message) as str_len
| sort str_len desc
| filter strlen(@message) > 1000
| limit 200
“`Lambdaの課金処理時間が1000ms以上のものを抽出
“`
fields @timestamp, @message
| parse @message ‘*Billed Duration: * ms*’ as m1, lambda_time, m3
| filter lambda_time > 1000
| limit 200
“`
CodeDeployエージェントのメモリ問題
## 事象
codepipelineから「変更をリリース」したところ、CodeDeployでコケた。エラー
“`
2021-06-16 09:47:03 ERROR [codedeploy-agent(2559)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Errno::ENOMEM – Cannot allocate memory – rm -rf /opt/codedeploy-agent/deployment-root/b59fab18-5d0f-41bf-92e8-60410f9c6597/d-HCQHTD03B 2>&1 – /opt/codedeploy-agent/lib/instance_agent/platform/linux_util.rb:95:in
“`メモリを割り当てられないらしい。
## 原因
デプロイ先のEC2インスタンスのメモリが80%を超えていた。プロセスのメモリ使用率の割合を調べてみると、CodeDeployエージ
AWS Certificate Manager(ACM)でクライアント証明書を発行してnginxに設定する方法
# はじめに
ACMでプライベートCA(認証局)を立てて、有効期限を指定してクライアント証明書を発行してnginxに設定する方法をまとめます。
プライベートCAの構築には400USD/月の費用が発生するので気をつけてください。# 1. ACMでプライベートCAを立てる
ACMのコンソールにアクセスし、プライベート認証機関の「今すぐ始める」からプライベートCAを作成します。
ルートCAを選択し、認証機関名の設定をします。
全ての項目の入力が完了するとプライベートCAが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270692/23089be2-5178-11a5-6306-bc53017cf478.png)# 2. ルート CA 証明書をインストールする
ルートCA証明書の有効期限を10年に設定して作成します。
後ほど作成するクライアント証明書の有効期限はルートCA証明書の有効期限を超えることはできません。
![image.png](https://qiita-im
手動で作成したAWSリソースをCloudFormation管理下に置く
# はじめに
IaCの有用性については様々なところで言われてはいるものの、手動で作成したリソースがすでにあると中途半端にIaCをしてもなぁ……と敬遠されがちなところがあるかと思います。
そう思って、既存のリソースをコード管理する方法がないかを調べていたところ、CloudFormationのインポート機能を使えば、既存リソースもコード管理下に置けることがわかりました。
この記事はCloudFormationのインポート機能をテストしたときの備忘録になります。# 0. 準備
まずはAWSコンソール上で手動でリソースを作成します。
今回は、Security Groupを作成しました。
設定としてはこんな感じです。![スクリーンショット 2021-06-17 16.10.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213467/3f9dbfa1-a2f8-cb24-59f7-9280ceacdf07.png)
# 1. 作成したSecurity Groupと同じ内容のテンプレートを作成する
`
AWS SSO + CLIでロール連鎖をする際のセッション時間制限をマシにする方法を考えてみた
## これは何
3000文字Tipsイベントの参加記事です。https://qiita.com/official-events/d523df99d6479293ffa7
## はじめに
本記事では、AWS SSO利用時にネックとなりやすい、[ロール連鎖における1時間のセッション時間上限](https://aws.amazon.com/jp/premiumsupport/knowledge-center/iam-role-chaining-limit/)による使い勝手の悪さをマシにする方法についてご紹介します。
Webサービスプロバイダである弊社では複数のAWSアカウントを管理しており、IT運用部門と開発部門が協力して[AWS SSO](https://aws.amazon.com/jp/blogs/news/aws-single-sign-on-now-enables-command-line-interface-access-for-aws-accounts-using-corporate-credentials/ )の導入を進めています。
![image.png](htt
AWS WorkSpaces に Amazon LInux 2 の仮想デスクトップをJavaやPHP開発環境としてセットアップした時の作業履歴
# 前置き
備忘のための記録なので解説などは無し。
# 経緯
昨年末に新規購入した MacBook Pro が先日(2021年6月17日の晩)に突然起動しなくなった。
Appleサポートに問い合わせて最終的に修理してもらうことになったんだけど、修理が終わって帰ってくるのに7営業日ほどかかるとのこと。その間、手元にある古い MacBook Air(2013-late 標準構成) を引っ張り出して仕事を代替しないといけなくなった。
今やってる仕事は「SpringBootを使ったWebアプリケーションを開発するためのDocker環境や各種IDE(EclipseやIntellij IDEA)やその他開発ツールを同時に立ち上げつつ、ZoomやMeet等のコミュニケーションツールで話しながらブラウザのタブをたくさん開いてる」なんていう状況が起きるので、もはやこの古い端末ではリソース不足。
**そこで、Webアプリケーション開発環境を AWS WorkSpaces のLinux仮想デスクトップへ置いてリモートデスクトップ的に操作することにした。**構築して操作してみたら、コーディングと
WordPressでNephila clavata (絡新婦)を使って負荷分散をした話
#目的と手段
管理しているHPの読み込み速度を上げたくて悩んでいました。画像や動画が多いサイトで読み込みに時間がかかっています。そこでWordPressのプラグインNephila clavata (絡新婦)を使って負荷分散をし、読み込み速度の改善を図りました。以下にその時の流れを書いておきます。
#Nephila clavata (絡新婦)
WordPressのメディアライブラリに画像をアップロードすると自動でAmazon S3へアップロードし、リンクも変更してくれる大変便利なプラグインです。
##使い方
###S3バケット作成
まずはS3のバケットを作ります。バケットネームはstatic.〇〇.com とかの静的ファイルを配布したいドメイン名が良いと思います。自サイトのドメイン名とは別のまだ使っていないサブドメインを利用してください。リージョンは日本なら東京です。作成したら、セキュリティ証明書画面で取得した「アクセスキー」「シークレットアクセスキー」をメモしておいてください。
###Nephila clavata (絡新婦)の設定
Nephila clavata (絡新婦)をインスト
ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running? If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
“`
sudo docker-compose run web rails new . –force –no-deps –database=postgresql –skip-bundle
“`コンテナを作成しようとしたところ、以下のエラーが発生しました。
“`
ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running?If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
“`#原因
結論から申し上げますと、今回の場合はdockerのサービスを開始していなかったのが原因でした。
#解決策
“`
sudo systemctl start docker
“`
を行ない、docker サービスを起動させ、再度“`
sudo docker-compose run web rails new . –for