- 1. Djangoチュートリアル(ブログアプリ作成)② – model 作成、管理サイト準備編
- 2. CloudFormationをゼロから勉強する。(その7:変更セットとドリフト検出)
- 3. Djangoチュートリアル(ブログアプリ作成)① – 準備、トップページ作成編
- 4. termux×AWS IoT でスマホ位置情報をAWSに送信
- 5. 第六章: 最後に
- 6. 第四章: ELBとRoute53を使って独自ドメインををSSL化してHello worldを表示させよう
- 7. 第一章: ドメインを取得してRoute53に登録する
- 8. AWSのELBとEC2を使ってwebアーキテクチャを構築しよう
- 9. [初学者] AWS デプロイ時のエラー解決に役立ちそうなコマンドや知識
- 10. AWS WAF概要
- 11. Raspberry Piで温度を測って、AWS CloudWatchの無料枠をつかってロギングする
- 12. 「サイトが見れない!!!!」ってなったときの対応
- 13. AWS 苦手克服用まとめ 【完全自分用】
- 14. LambdaをALBのターゲットに指定した際のメモ
- 15. AWSでエラーの原因が分からない場合は設定値を見直してみよう
- 16. 【AWS lambda】lambdaで各種ライブラリを含めてデプロイする(パスワード付きzipを生成し、s3にアップロードする) @ Python
- 17. Twitter の障害情報を調べようとしてつまずいた話
- 18. 【AWS初学者用】AWS Auto Scalingとは
- 19. 俺でもわかるAurora PostgreSQLバージョンアップの実ダウンタイム雑メモ
- 20. AWSソリューションアーキテクト(SAA)試験対策関連用語
Djangoチュートリアル(ブログアプリ作成)② – model 作成、管理サイト準備編
[前回](https://qiita.com/tmasuyama/items/09d74525ac8818ae6ed8) はブログアプリの基礎となる部分を作成し、動作確認まで行うことができました。
今回は、実際に記事を登録するための準備をし、記事の作成を行いましょう。## 記事 model の作成
ブログで記事を管理するためには model を作成します。
model はデータベースと Django の橋渡しの役割を持っており、これのおかげで我々は SQL といったデータベース構文を意識することなくデータベースにデータを登録することができます。最初に設定する models.py では、どのようなデータを登録していくのかを定義します。
Excelの表でいうと、表の各カラムのカラム名を定義したり、各カラムに入るデータがどのようなもの(文字列や数値など)を定義するところです。今回はブログアプリであり、記事 (Post) を修正していくので Post モデルを作成します。
タイトル、本文、日付が入ればとりあえず十分です。“`python:blog/models.py
from
CloudFormationをゼロから勉強する。(その7:変更セットとドリフト検出)
# はじめに
今回はスタック実行前に事前に変更箇所を確認できる`変更セット`と、スタック実行後に手動操作などで変更されたリソースを確認できる`ドリフト検出`を試してみようと思います。– 【前】[CloudFormationをゼロから勉強する。(その6:Transformによるインクルード)]()
# 変更セットについて
前述の通り、スタック実行前に変更箇所を確認することができる機能です。スタック実行前に変更されるリソースやパラメータを確認できるので、スタック実行することによって**意図せずリソースが削除されたりする事故が防げます。**
テスト環境ならともかく、サービスが動作している本番環境でスタックを実行する際には**必須の機能**かと思います。
# ドリフト検出について
これも前述の通り、スタック実行後に手動操作などで変更されたリソースを確認できる機能です。本来は環境を`CloudFormation`で管理しているのであればスタックで作成したリソースや設定に対して手動で操作することは極力避けるべきですが、何かしらの理由で手動操作した場合でも変更箇所を検出することがで
Djangoチュートリアル(ブログアプリ作成)① – 準備、トップページ作成編
今回は Django を使って、記事を投稿できるブログアプリを作成していきます。
シリーズに分けて紹介していきますが、まずはローカルで作成した上で Docker 構成にしたり、AWS にデプロイしたり、CircleCI で自動テスト・デプロイまでをシリーズ化していきます。
## Django とは?
Djangoは Python で実装できる Web アプリケーションフレームワークです。フレームワークとは、アプリケーションを開発する際に使われる機能がまとまったソフトウェアです。
フレームワークを導入することで、効率よく Web アプリを進めることができます。今回は Blog アプリを作っていきますが、Django を使えばデータベースを用いた、コンテンツ管理システムやWikiからソーシャルネットワーク、ニュースサイトなど、高品質なWebアプリケーションを簡単に、少ないコードで作成できます。シンプルなWebアプリケーションであれば、数分間で作れてしまう場合もあります。もちろん、機能を拡張して複雑なWebアプリケーションを作成することもできます。
また、Djangoは、Ins
termux×AWS IoT でスマホ位置情報をAWSに送信
#はじめに
妻に、「職場を出たらラインしろ」と言われているのですが、正直面倒です。
自分が職場を出たことを自動で通知できないかなと思い、とりあえず位置情報をAWSに送ってみました。![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287677/f9429f7f-320e-2383-24da-e35578dd9fdb.png)
#環境
スマホ:京セラ(KTV44)
OS:Android 9##スマホ(termux)側
AndroidにGoogle Playを利用して、termuxをインストールします。
https://play.google.com/store/apps/details?id=com.termux&hl=jaスマホだとキーボード入力しづらいため、
インストール後に下記コマンドを入力し、ssh用の環境を構築します。“`shell
$ termux-setup-storage #termuxにandroidストレージの使用を許可する。
$ pkg install o
第六章: 最後に
## 最後に
全ての章が終わりました。お疲れ様です。
余計なコストをかけない様に作ったサービスは全て削除しておくことをお勧めします。* Elastic IPアドレスの関連付けの解除+解放
* Ec2のsnapshotを削除
* Ec2のボリュームを削除
* IAMを削除
* RDSのDBインスタンス終了
* RDSのスナップショットを削除
* ELBを終了
* ネットワークインターフェースを削除
* セキュリティーグループを削除
* CloudWatchのログを削除
* ルートテーブルを削除
* インターネットゲートウェイを削除
* サブネットを削除
* VPCを削除
* ACMを削除
* Route53のホストを削除[前へ: 第五章: EC2からRDSに接続してみよう](https://qiita.com/Yuuki46240345/private/551539a3f1a037a75c37)
[最初へ: AWSのELBとEC2を使ってwebアーキテクチャを構築しよう](https://qiita.com/Yuuki46240345/private/0ee089a493254
第四章: ELBとRoute53を使って独自ドメインををSSL化してHello worldを表示させよう
### ACMで無料のSSL証明書を発行しよう
1. awsコンソールからACMと検索してください。Certificate Managerというのがヒットすると思います
2. 証明書のプロビジョニングの「今すぐ始める」ボタン押下
3. [パブリック証明書のリクエスト]を選択して、「証明書のリクエスト」ボタン押下
4. ステップ1でドメイン名を入力し、次へ
![スクリーンショット 2020-10-16 7.09.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528444/d719a6ae-898e-e527-a2b3-70d27a0ddd65.png)
5. DNSの検証を選択して「次へ」
6. タグの追加ではタグと値に**Name**, **my-best-acm**を入力して「確認」
7. 次の画面で「確認とリクエスト」ボタン押下
8. この画面になったら赤枠の箇所を押してcsvをダウンロードして「続行」ボタンを押下
![スクリーンショット 2020-10-16 7.13.10.png](ht
第一章: ドメインを取得してRoute53に登録する
スムーズに終わらせるために一番時間のかかるドメインの取得から取り掛かりましょう。
## 流れの説明
1. お名前.comでドメインを取得
2. ドメインの自動更新を解除する
3. Route53に取得したドメインを登録
4. このドメインのネームサーバーをお名前.comからRoute53のネームサーバーに変更する### 一番時間のかかるドメインの設定から始める
1. [お名前.com](https://www.onamae.com/navi/login/?btn_id=navi_login_onamaetop_header_newdesign&ab=navilogin_other_abflow)にログイン2. ドメイン→ドメインの登録を押す
![スクリーンショット 2020-10-14 20.12.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528444/8ec6c3ee-1cd0-36d3-1d68-f14bd5e3db98.png)3. 次の画面で独自のドメイン名を入力して検索す
AWSのELBとEC2を使ってwebアーキテクチャを構築しよう
今回使う環境としてPCはmacを使います。windowsの方は適宜読み替えて読み進めてください。
# この記事のゴール
**以下の画像の様な基本的なwebアーキテクチャを設計すること**
![Untitled Diagram (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528444/95593a8f-64f2-b53b-8649-625323628499.png)[第一章: ドメインを取得してRoute53に登録する](https://qiita.com/Yuuki46240345/private/7c332948fefa9f4130dc)
[第二章: VPCやサブネット等の設定をしよう](https://qiita.com/Yuuki46240345/private/e7631c3172ffba52ede6)
[第三章: EC2とRoute53を使って独自ドメインでHello world!を表示させよう](https://qiita.com/Yuuki46240345/private/
[初学者] AWS デプロイ時のエラー解決に役立ちそうなコマンドや知識
###背景
AWSへのデプロイ時に多くのエラーに悩まされたため、記事にまとめようと思いました。
私と同じような初学者の方の役にたてば嬉しいです!—
###構成
私自身はRuby on Rails, VPC/EC2(Nginx,Unicorn)/RDS(PostgreSQL)/Route53/ALBを使用してデプロイしました。
デプロイ時に参考にした記事
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce
https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556—
###共通psコマンドを使用することでプロセスを確認することができます。
psコマンドについて参考にした記事“`
$ ps -x #現在実行中のプロセスを確認するコマンド
“`– – –
###アプリケーション関連
デプロイ先のアプリケーションで`we’re so
AWS WAF概要
AWS WAFの概要記事。
## AWS WAFとは
* AWSが提供するWAF(Web Application Firewall)。
* WAFとは…
* Webアプリケーションの脆弱性を突いた攻撃からWebアプリケーションを守るためのセキュリティ対策ソリューション。
* 一般的なWebアプリケーションに対する攻撃手法(SQLインジェクションやXSSなど)からWebアプリを保護する。
* 利用形態には、ソフトウェア、ハードウェア、サービスなどがある。
* L7保護のためのもので、L3/L4保護のためのファイアウォールとは異なる役割を持つ。
* CloudFront、 ALB、API Gatewayにアタッチして利用する。## 提供機能
* **悪意のあるリクエストのブロック**
* SQLインジェクション、クロスサイトスクリプティングなど。
* AWSや他のパートナーが提供するマネージドルールに基づいたブロック処理。
* **カスタムルールに基づいたWebトラフィックのフィルタ**
* ルー
Raspberry Piで温度を測って、AWS CloudWatchの無料枠をつかってロギングする
– サーバールームの温度測って、遠隔で確認したい。
– アラームとかあると助かる。
– AWS無料枠でできる(はず)?# 必要なもの
– Raspberry Pi
– インターネットにつながる程度にはセットアップしておくこと
– 温度センサー
– DS18B20。アマゾンで五個で1,500円しないくらい
– 正しく接続できると、“`/sys/bus/w1/devices/28-XXXXXXXXXXXX/temperature“`で温度x1,000が読める
– raspi-configで1-wireドライバを有効にして接続。詳細はググろう。
– AWSアカウント# 前準備
## RasPiにboto3(AWS SDK for Python)をインストールしておく
“`
pip3 install boto3
“`## AWS上にユーザーを作る
– IAMでユーザー作って、APIキーを取得しておくこと
– 以下のアクセス権限が必要
– AmazonAPIGatewayPushToCloudWatchLogs
– cloudw
「サイトが見れない!!!!」ってなったときの対応
タイトル見ただけで心臓がキュッってなりますが…
今までの経験からメモ書きしてみました
半分くらい自分用#原因究明に使える指標
##HTTPのステータスコード
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
これらのうちエラーになるのは400系と500系
ざっくりとした違いは下記– 400系:アクセス自体ができてない
– 名前解決ができてない
– 権限がない
– サーバーが落ちてる
– 500系:サーバー内部の処理でエラーを吐いて止まってる
– サーバー設定が間違ってる
– サイトを動かしているフレームワークのエラーどっちかによって対応が変わるのでまずはここを切り分けます
##ログファイル
linux系で出力のパスをいじってないなら/var/log/の中に大体のログがあると思います。“`
apache: /var/log/httpd/
nginx : /var/log/nginx/
nginx+phpならphp-fpmも要確認: /var/log/php-fpm/
`
AWS 苦手克服用まとめ 【完全自分用】
#【AWS 苦手克服用まとめ】
AWS基礎の苦手克服のためにまとめました。
随時追加予定。###・AWS Snowmobile
超大容量データを AWS に移動するために使用できるエクサバイト規模のデータ転送サービス
セミトレーラートラックが牽引する長さ14 m の丈夫な輸送コンテナで、Snowmobile 1台あたり 100 PB まで転送できます。50TBのデータ転送には容量が大きすぎるためコスト効率的ではありません。###・Amazon Dynamo DB
シームレスで拡張性のある高速で予測可能なパフォーマンスを提供
完全に管理されたNOSQLデータベースサービス
セッションデータの処理に向いており、高速で処理を実行できる###・Amazon Neptune
高速かつ信頼性の高いフルマネージドグラフデータベースサービス
高度に接続されたデータセットと連携するアプリケーションを簡単に構築および実行が可能
利用することで、洗練されたインタラクティブなグラフアプリケーションを作成することができる###・AWS Lambda
データのプロセス処理に使用できるサー
LambdaをALBのターゲットに指定した際のメモ
## ターゲット登録手順
1. Lambda Function作成
1. Lambda Function宛のTarget Group作成
1. ALBのリスナールールで転送先にTarget Groupを指定### MultiValueHeaderの使用
– Target Group で設定。 後からでも変更可。
– Attributes -> Multi value headers
– デフォルトは Disabled## リクエスト・レスポンス
– API Gateway だとメソッドリクエスト・メソッドレスポンスで色々設定できるが、ALBにそんなものはない
– ので Lambda でよしなにやる### リクエスト
– Lambda Function の event から取得
– MultiValueHeaderの設定によって構造が変わる“`Json:MultivalueHeader:Disabled
{
“requestContext”: {
“elb”: {
“targetGroupArn”: “***
AWSでエラーの原因が分からない場合は設定値を見直してみよう
# はじめに
自分が設定したCodeBuildのプロジェクトでエラーが起き、原因究明に時間をかけたあげくただの設定値ミスだったことが結構あったので記事にしました。# 起きたこと
CodeBuildのプロジェクト内でコマンドがコケました。“`
echo ${DOCKER_PASSWORD} | docker login -u ${DOCKER_USERNAME} –password-stdin
“`エラーメッセージとして「Cannnot perform an interactive login from a non TTY device」が出力されていたため、「dockerのログインがうまくできていないのかな」と思いこのエラーメッセージを中心に調べましたが特に解決策がなく、途方に暮れていました。
ロール、環境変数等は既に動いている他のプロジェクトと同様に設定したつもりであり、ビルドの詳細を確認しても特に他のプロジェクトと設定が異なっている風には見えませんでした。
1時間ぐらい格闘した後、「環境変数を設定し直してみよう」という話になり、テキストボックスに予め入力されて
【AWS lambda】lambdaで各種ライブラリを含めてデプロイする(パスワード付きzipを生成し、s3にアップロードする) @ Python
#やりたいこと
タイトルそのまんまですが、lbxxx.soなどのライブラリを含めてデプロイし、AWS lambda上でパスワード付きのzipを生成し、S3のバケットに格納します。#立ちふさがる壁
そんな私のやりたいことの前に壁が立ちふさがります。
1. **[zipfile](https://docs.python.org/ja/3/library/zipfile.html)(Pythonで標準で用意されているzipファイルの作成などを行うモジュール)では、パスワード付きzipファイルの暗号化がサポートされていない!**
2. **ローカルのソースコードをzipファイルに固めて、lambdaにデプロイしただけでは、パスワード付きzipを作成することができない!**いかにして、この壁を乗り越えたのかをここに残したいと思います。
#環境
####ローカル開発環境
+ Win10(ホストOS)
+ Docker
+ Linux 10(DockerコンテナのOS)
+ VS Code
+ Python 3.8.6
+ pip 20.2.3
+ aws-cli 2.0.56VS C
Twitter の障害情報を調べようとしてつまずいた話
**この記事の内容は私が独自に調査したものであり、障害の真因を示すものではありません。**
**情報の取り扱いには十分ご注意ください。**## 出来事
2020 年 10 月 16 日、朝起きて Twitter を見ようとしたら・・・あれ、見れない。
最新のタイムラインと通知が見られない。トレンドはなぜか知らないが見ることができる。## AWS とかの障害?と予測したものの
~~Twitter 使えねぇとか言う前に~~ どっかのサーバに障害が起こったのかな?と思って、 `AWS 障害` とか `GCP 障害` とかでググってみる。
そうすると、 AWS も GCP も障害情報が Twitter に発信されているということが分かった←
これじゃなにもわかんないw## 素直に検索してみる
素直に `twitter 障害` と検索すると、何やら手掛かりとなるサイトを発見した。
[Twitterの機能停止マップ。 Downdetector](https://downdetector.jp/shougai/twitter/mappu/)
`Downdetector` という
【AWS初学者用】AWS Auto Scalingとは
# 本記事について
本記事はAWS初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。## Auto Scalingとは
AWS Auto ScalingとはAWSが提供するリソースの使用状況に応じてインスタンスを自動的に増減させる事(スケールアウト・スケールイン)ができるサービス。なお、異常なインスタンスやAZを切り離すことも可能とのことです。Auto Scalingの対象となるリソースはいくつかあるみたいですが,今回はEC2にAuto Scaling(EC2 Auto Scaling)を使用することを前提として進めます。
補足としてAuto Scalingは**AMIからEC2インスタンスを起動するので、AMIは常時最新の状態にしておきましょう**。以下はAuto Scalingを実行するにあたっての3つの設定です。
## スケーリングプラン
Auto Scalingを実行するためにどんな条件・タイミングで実行するかを設定します。– Cloud Wat
俺でもわかるAurora PostgreSQLバージョンアップの実ダウンタイム雑メモ
俺です。
Aurora PostgreSQLのバージョンアップをいくつかやったのでメモを残します。Aurora PostgreSQL バージョンアップ・パッチ適用の全体時間はだいたい20min~30minぐらいです(Event logより)
バージョンアップ中にDB Instanceの再起動が行われ、一時的に全ての接続が失われます。この一時的にっていうのは一体どれぐらいの期間なのか、数秒なのかそれとも自分が定年退職するまでの期間なのか実際のダウンタイムがきになったので
バージョンアップ中に`psql -c SELECT NOW();` を `while : sleep 1` でぶん回して接続が復帰するまでの脳筋的体感時間を計測した結果をざっくりメモで残しておきます。|no|verup前|verup後|クラスタ・インスタンスパラメータグループの変更、要不要|再起動対象|脳筋体感的ダウンタイム|備考|
|—|—-|—-|—-|—-|—-|—|
|1|9.6|10.12|クラスタパラメータグループ・インスタンスパラメータグループ共に変更必要|writ
AWSソリューションアーキテクト(SAA)試験対策関連用語
### はじめに
AWSSAA試験対策でUdemyの模擬試験を学習する中で出てきた用語をA~Z、あ~んの並びで記載しました。
79個の用語があります。
ごく簡単な説明ではありますが、これを知っているだけでも、問題の理解度がかなり変わり、意味が分かっているだけで解ける問題がかなり多い印象でした。
仮にこれをカンペに模擬試験を1回行うと、7割は取れる感触です。
あとはハンズオンなどで、具体的なイメージをつかむため、いくつかのサービスで体験すると合格できそうです。
今後学習を続けながら、まずは自分自身が合格し、これを見ながら解いたら合格できるというものに仕上げていき、今後受験される方の補助になればと思います。### 模擬試験を理解するにあたって出てきた用語
#### ●ALB(Application Load Balancer)
Webサービスに発生する負荷を分散するロードバランシングサービス
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/introduction.html####