- 1. AWSのAPI Gateway + Lambda + DynamoDBでAPI作ってみた
- 2. 0からRuby on Railsの環境構築【Cloud9】(Rubyのバージョン変更からRailsのインストールまで)
- 3. Google ColaboratoryでAutoGluonをinstall & importする方法
- 4. 容量がいっぱいでAWSにデプロイできなかった時の対処方法
- 5. CSVファイルをAWS DynamoDBに自動更新する
- 6. GreengrassのLocal connection detectionの設定をCloudformationから設定する
- 7. Well-ArchitectedFrameworkの設計原則
- 8. 【AWS】Amazon EFSとAmazons3の違い
- 9. React.js & Next.js, Material UI + AWS Lambdaでお問合せフォームを作ってみた
- 10. AWS ソリューションアーキテクト アソシエート合格までのまとめ
- 11. CloudFormationでELBの構築②
- 12. Amazon Linux 2にstrongSwan5.9.1をインストールする
- 13. 【Rails】ローカル環境でS3の画像投稿ができるのに、Heroku上でS3に切り替わらない問題
- 14. ①S3を使用するために必要なGemfileを導入
- 15. Cloud9でno space left on deviceが出た時の対応
- 16. 【React】ユーザー認証をCognito + Amplifyで構築してみた ~サインインページカスタマイズ編~
- 17. AWS Client VPN構築・設定(相互認証、プライベートDNS)
- 18. AWS Braket を使ってQAOAを実装してみる②
- 19. AWS Braket を使ってQAOAを実装してみる①
- 20. Amplify 学習資料
- 21. EC2インスタンス起動後に「DeleteOnTermination」を変更する
AWSのAPI Gateway + Lambda + DynamoDBでAPI作ってみた
# はじめに
はじめまして。筆者の伊藤です。今回はタイトルにある通りAWSを使ってサーバレスなAPIを作ってみたいと思います。
本記事の目的は以下の通りです。+ アプリ開発未経験者によるAPI設計構築とpython学習(初歩的な内容となります)
+ サーバレスAPI構築に必要となるAWSサービスの学習似た目的の方がいらっしゃれば一度記事に目を通してみて下さい。
# APIとは?
そもそもAPIとは何なのか?作る前に改めて確認してみましょう。
API(Application Programing Interface)とは
「サービス・アプリ開発を効率化するためのある機能・データと
その仕様を定め公開しているもの」とのこと。
一般的にインターネット上で公開されているものはWeb APIと呼ばれ、
私たちでも利用することが可能ですね。(Twitter、Facebook、Amazonなど)
APIをサービス・アプリ開発に活用することで
利用者は自身のサービス・アプリに少ない労力で新しい機能や最新情報を追加でき
開発者はAPIを使ってもらうことでAPIの宣伝や利用料を得る
といった
0からRuby on Railsの環境構築【Cloud9】(Rubyのバージョン変更からRailsのインストールまで)
# Ruby on Railsの環境構築(Cloud9)
本記事はRuby on Railsの環境構築を**初心者の方でも迷わずできるように解説した**記事です。
Ruby on Railsは、広範囲にわたる開発で使用されています。日本のスタートアップでも採用されていることが多く、食べログやnote、会計ソフトのfreeeなどもRuby on Railsによって開発されています。
そんなRuby on Railsですが、2019年8月にバージョン6.0がリリース、2020年12月にはバージョン6.1がリリースされました。また、Ruby自体も2020年12月にバージョン3.0に大型アップデートされ新しい機能が追加されています。
ここでは、**Ruby 3.0とRuby on Rails 6.1.1**の環境構築方法を説明していきます。
## 目次
– [環境](#環境)
– [Rubyのバージョンを確認する](#Rubyのバージョンを確認する)
– [Rubyのバージョンを変更する](#Rubyのバージョンを変更する)
– [Bundlerをインストール](#Bundlerをイ
Google ColaboratoryでAutoGluonをinstall & importする方法
# はじめに
普段、Google Colaboratory(Colaboratory)[^Google Colaboratory]を利用しているのですが、Colaboratory上でAutoMLであるAutoGluon[^AutoGluon][^AutoML のための機械学習 フレームワーク AutoGluon のご紹介]をinstall & importして使ってみようと思ったことがありました。しかし、解決までに地味につまずくことがありました。似たような経験をしてせっかくのAutoMLの体験を断念する人もいるかと思い、この記事を書きました。慣れていない人でも再現できるよう手順をなるべく丁寧に書きます。(2021年1月20日の情報です。状況が変わった場合、コメントなどで教えていただけると助かります。)
[^Google Colaboratory]: https://colab.research.google.com/notebooks/welcome.ipynb
[^AutoGluon]: https://auto.gluon.ai/
[^AutoML のための機械学習 フレームワ
容量がいっぱいでAWSにデプロイできなかった時の対処方法
# 今回発生した問題
今回は
「AWS内の『/dev/xvda1』の容量がいっぱいだったためにデプロイできなかった」
という問題が発生したので、その解決策をメモしておきたいと思います。結果的に
「logファイルを500MBほど削除すること」
により、無事デプロイすることができました。# 背景
個人で作っているRailsアプリをAWSにデプロイしようとした時のことです。
いつものようにターミナルから「bundle exec cap production deploy」でデプロイしたところ、
「SSHKit::Command::Failed」 といったエラーが表示され、デプロイできませんでした。しかし、AWS EC2へのSSH接続は問題なくできました。
“`none:ターミナル
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|https://aws.amazon.com/amazon-linux-2/
3 package(s) needed for secur
CSVファイルをAWS DynamoDBに自動更新する
#はじめに
私はよく、スクレイピングで収集したデータをCSVファイルで出力しています。
しかし、データを効率よく使うには、CSVファイル内のデータをデータベースなどにストアしなくてはいけません。
せっかくデータ収集を省力化しても、データベースの運用に時間を取られるのは苦痛ですよね?
その悩み、クラウドのデータベースサービスで解決しましょう!本投稿では、AWS の DynamoDB にCSVファイル内のデータを自動で反映する方法をご紹介します。
これで煩わしいデータベース更新業務とはオサラバです!#目次
– [AWS CLI の設定](#aws-cli-の設定)
– [DynamoDBのテーブル更新用コード (Python)](#dynamodbのテーブル更新用コード-python)
– [方法1:仮想マシン(VM)からcronで定期実行](#方法1仮想マシンvmからcronで定期実行)
– [方法2:GitHub Actions](#方法2github-actions)
– [二つの方法の比較](#二つの方法の比較)今回は、**既にAWSで自動更新したいDynamoDBが
GreengrassのLocal connection detectionの設定をCloudformationから設定する
凄いニッチですが、詰まったので残しておきます。
Greengrass(`V2`でなく`V1`)で、 `Core connectivity information` という設定項目があります。
項目としては以下から選択する形になります。
– Automatically detect and override connection information
– Manually manage connection information![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116068/9bc43891-d9a9-3af9-408a-ea44d0c7c37f.png)
これをどうやってCloudformationやAPIで設定するかを探していたのですが、どこを探しても項目が見つかりません。そんな時に以下のURLを見つけました。
https://forums.aws.amazon.com/thread.jspa?threadID=264237
引用すると以下のコマンド
Well-ArchitectedFrameworkの設計原則
## 記事の目的
・well-architectedFramework とは何かについて簡単に学ぶ
・well-architectedFrameworkTool とは何をする為のツールなのか簡単に学ぶ## well-architectedFramework について
AWSの基本的な5つの設計原則。|原則|概要|
|—-|—-|
|信頼性|可用性、回復力、信頼性の高いアーキテクチャの設計がされている。|
|パフォーマンス効率|コンピューティングリソースの効率的な使用に焦点を当てた設計が成されている。|
|セキュリティ|情報とシステムの保護(機密性と完全性)に焦点を当てた設計がされている。|
|コスト最適化|不要なコストの回避が出来ている設計がされている。|
|オペレーショナルエクセレンス|ビジネス価値を提供するためのシステムの実行とモニタリング、およびプロセスと手順の継続的な改善に焦点を当てた設計が出来ている。|## well-architectedFrameworkを実現するための補助
・上記の設計原則はAWSの Well-architectedFramewor
【AWS】Amazon EFSとAmazons3の違い
どちらもクラウドストレージ。
## Amazon S3
– Httpsでアクセスできるエンドポイントを提供。
– バックアップ等で使うことが多い?## Amazon EFS
– EC2等にマウントして使う。
– 複数サーバー間の共有ストレージとして使うことが多い?## 結論
EC2にマウントして、ディレクトリの一部として使うならEFS、HTTPSでアクセスできるエンドポイントが欲しいならS3のように使い分けると良い(たぶん)## 参考
React.js & Next.js, Material UI + AWS Lambdaでお問合せフォームを作ってみた
# はじめに
今回の記事は以下2冊の書籍の復習を兼ねて作成した内容になります。* React.js & Next.js 超入門(掌田津耶乃さん 著)
* AWS Lambda実践ガイド(大澤文孝さん 著)# 何を作ったのか
今回は上記2冊で学んだ内容を総動員ということで以下のようなお問合せフォームを作成してみました。
こちらに内容を記載し、「送信」ボタンをクリックすると管理人へメールが飛ぶ仕様です。
まあこれだけですとわざわざライブラリ等を利用するほどでもないのですが、一応復習ということで敢えて利用して作りました。
フロントエンドではReact.js & Next.js, CSS, Material UIを利用し、バックエンドではLambda(Python), S3, DynamoDB, API Gatewayを利用しています。
![お問合せフォーム.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538249/1c4031e8-0ca8-917c-2003-2e3ae2dce7e8.gif)
AWS ソリューションアーキテクト アソシエート合格までのまとめ
#目次
#0. はじめに
先日、AWS ソリューションアーキテクト アソシエート に合格したので、忘れないうちに色々とアウトプットしておこうと思います。これから受験を考えている方の役にたてればと思います。
どんな人間がどのくらいの時間をかけて取得したのかを説明するために、少しだけ自分語りをさせてください。
24歳のインフラエンジニアです。現在は GCP とか AWS を仕事で触ってます。クラウドは触り始めて半年くらいです。ネットワークは少しだけ詳しいですが、プログラミングはほとんどできません。持ってる資格はこんな感じ
![スクリーンショット 2021-01-18 20.17.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689597/4c7517ee-6eb9-62fc-b7aa-8fee7876219c.png)#1.受験動機
クラウドを触り始めたはいいけどどこから手をつければいいのかわからず、体系的に学習するために受験を決めました。#2.出題の範囲
まーあ広いです。細かな内容はここ
CloudFormationでELBの構築②
## 前回
[CloudFormationでELBの構築](https://qiita.com/toyoyuto618/items/05bfb0ca2fbe14207274)## 概要
EC2インスタンスはプライベートサブネット
ELBはパブリックサブネットに配置したネットワーク構築をCloudFormationベースで紹介します。
またプライベートサブネット内のEC2インスタンスをWEBサーバーにするため、
各パッケージをインストールしなくてはいけません。今回の方法は、NatGatewayを配置し、
NatGateway経由でパッケージのインストールを行いたいと思います。
## 対象者
– AWSの管理コンソールからELBを構築された経験がある方
– CloudFormationの知見がある方## 構築されるもの
– VPC
– InternetGateway
– Subnet
– RouteTable
– NatGateway
– Elastic IP
– EC2
– ELB
– SecurityGroup
– TargetGroup## 構成図
![elb
Amazon Linux 2にstrongSwan5.9.1をインストールする
Amazon Linux 2でEPELを有効化しstrongSwanをインストールすると、strongSwan5.7がインストールされます。しかし、swanctlのインストール方法が見つけられなかったため、公式サイトより2021/1時点でのCurrent ReleaseであるstrongSwan5.9.1をダウンロードしインストールします。
といっても、`configure`して`make`して`make install`するだけなのですが、自分用の覚書として残しておきます。#環境
– Amazon Linux 2 minimal x64 (ami-0115f8fe26e0858d9)#インストール手順
ダウンロードは以下のサイトから。
https://www.strongswan.org/download.html
ルートユーザーでインストールしないとうまくいかなかったため、最初に`sudo su -`してます。“`
sudo su – #rootユーザーに切り替え
yum update -y
yum install wget gcc gmp-devel -y
wget
【Rails】ローカル環境でS3の画像投稿ができるのに、Heroku上でS3に切り替わらない問題
# 現象
ローカル環境でうまくS3に画像を保管出来た!!
しかし、Heroku側にマージしてもなぜかHerokuのDB上で画像を保管している。。。
エラーも出ない。。
なぜだろうか。。。# 原因
今思えば当たり前の話なのですが、、
原因は本番環境用(Heroku)のファイルにActiveStorageの設定をしていないというものでした。|種類|環境|設定ファイル|
|:—|:—|:–|
|開発環境|ローカル環境|development.rb|
|本番環境|Heroku|production.rb(⇦こっちに設定入れてなかった)|
***** 同じミスをしないように手順を残しておきます *****# ローカル環境での設定(※aws側の設定は割愛)
①S3を使用するために必要なGemfileを導入
“`Gemfile.
gem “aws-sdk-s3”, require: false
“`②追記したら、ターミナルにて開発中のア
Cloud9でno space left on deviceが出た時の対応
## EC2インスタンスの再起動
まずはCloud9が動いているEC2インスタンスを再起動。
結果変わらず。## エラーの原因
– ディスク容量を使い果たした
– inode の枯渇のどちらか
## 問題の特定
### ディスク容量を使い果たした
“`zsh
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 483M 60K 483M 1% /dev
tmpfs 493M 0 493M 0% /dev/shm
/dev/xvda1 9.8G 9.6G 68M 100% /
“`
100%って書いてあるのでたぶんこれが原因。### inodeの枯渇
> inode とは、ファイルのサイズとか、更新日時とか、属性情報が書かれたデータのことで、実ファイルとは別に存在している。このデータ領域がなくなることを「 inode の枯渇」と呼ぶ“`
$ df -i
Filesystem Inodes IUsed
【React】ユーザー認証をCognito + Amplifyで構築してみた ~サインインページカスタマイズ編~
## はじめに
Reactで作成したWebアプリケーションのユーザー認証部分をCognito + Amplifyフレームワークで構築してみました。「【React】ユーザー認証をCognito + Amplifyで構築してみた」の[構築準備編](https://qiita.com/maika_kamada/items/1289b8926208d35751b1)と[構築完成編](https://qiita.com/maika_kamada/items/bd55a9fa3dd551d63b94)を経て、現状下記のようなサインインページのWebアプリケーションが出来上がっています。![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546572/51ac1e5f-3746-8ef9-e384-32582e3ea8b2.gif)
ただ、このWebアプリケーションは管理者が事前にユーザーを登録し、登録されているユーザーのみが使用できるようにしたいので、今回はサインインペ
AWS Client VPN構築・設定(相互認証、プライベートDNS)
# はじめに
AWSのClientVPNを利用したクライアントVPN構築・設定の行った際のメモ。
再度構築設定する際に参考にするために記録する。# 前提
– 認証方式は、相互認証
– Route53プライベートDNSの利用
– サーバ証明とクライアント証明書は同一環境(EC2)で作成# 各種証明書作成
## 1. OpenVPN easy-rsaをダウンロード
“`
$ wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz
$ tar zxfv EasyRSA-3.0.7.tgz
$ cd EasyRSA-3.0.7
“`
## 2. PKI環境を初期化
※サーバ証明書の有効期限を延長させる場合は事前に下記のように設定する
(EASYRSA_CERT_EXPIREは、日数)“`
$ cp vars.example vars
$ vi vars
set_var EASYRSA_CERT_EXPIRE 365
$ ./easyrsa init-pki
`
AWS Braket を使ってQAOAを実装してみる②
# この記事について
AWS Braket が公開されてから、一般の人にとっても量子コンピュータの実機に触れる機会が増え、それに伴い、私も量子コンピュータのお勉強をしています。
Braketではゲート型の最適化を行うにあたってQAOAというアルゴリズムを使用します。
AWS Braketのサンプル上ではGraph Coloring Problem という問題を解いており、「各ノードに赤や青の色をつけ、色の異なるノード間の各枝に点数をつけていきより良い点をしよう」という問題の求解を行っています。
こちらの問題ですが、以下の式で表されるコスト関数を定義し、($z_n= {-1,1}$, $J$は枝間の重み)それを最小化する問題に帰着できます。“`math
H_{C}=\sum_{i>j} J_{i,j} z_{i} z_{j},
“`このような問題に帰着できるものであれば、AWS Braketのサンプルを流用することで動かすことができますが、最適化問題をより一般的に表すには、以下の通り線形項も加味する必要があります。
“`math
H_{C}=\sum_{i>j} J_{i
AWS Braket を使ってQAOAを実装してみる①
# この記事について
AWS Braket が公開されてから、一般の人にとっても量子コンピュータの実機に触れる機会が増え、それに伴い、私も量子コンピュータのお勉強をしています。
Braketではゲート型の最適化を行うにあたってQAOAというアルゴリズムを使用します。
AWS Braketのサンプル上ではGraph Coloring Problem という問題を解いており、「各ノードに赤や青の色をつけ、色の異なるノード間の各枝に点数をつけていきより良い点をしよう」という問題の求解を行っています。
こちらの問題ですが、以下の式で表されるコスト関数を定義し、($z_n= {-1,1}$, $J$は枝間の重み)それを最小化する問題に帰着できます。“`math
H_{C}=\sum_{i>j} J_{i,j} z_{i} z_{j},
“`このような問題に帰着できるものであれば、AWS Braketのサンプルを流用することで動かすことができますが、最適化問題をより一般的に表すには、以下の通り線形項も加味する必要があります。
“`math
H_{C}=\sum_{i>j} J_{i
Amplify 学習資料
## AWS 公式 Slideshare
[20200520 AWS Black Belt Online Seminar AWS Amplify](https://www2.slideshare.net/AmazonWebServicesJapan/20200520-aws-black-belt-online-seminar-aws-amplify-234663231)
[AWS Black Belt Online Seminar AWS Amplify]
(https://www2.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-amplify-122274815)[[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開…]
(https://www2.slideshare.net/AmazonWebServicesJapan/cto-night-day-2019-aws-amplify-webm
EC2インスタンス起動後に「DeleteOnTermination」を変更する
EC2インスタンス起動後に「DeleteOnTermination」を変更する
⓪対象のインスタンスの詳細を調べる
マネジメントコンソールから、「DeleteOnTermination」を変更したいEBSがアタッチされているEC2インスタンスの詳細を調べる。記録しておく情報は以下の通り。
・対象EBSがアタッチされているEC2インスタンスのインスタンスID
・対象EBSのデバイス名①インスタンスの状態を調べる
以下のコマンドをAWS CLIから入力して、ボリューム情報を参照する。
“`aws ec2 describe-instances –instance-id <インスタンスID> –query Reservations[].Instances[].BlockDeviceMappings[]
“`②①で表示された内容から以下の内容を確認する。
・⓪で確認した対象EBSのデバイス名
・⓪で確認した対象EBSのデバイス名の「DeleteOnTermination」の値(boolean)③「DeleteOnTermination」の値を更新する
以下のコマンドをAWS