- 1. Serverless FrameworkでPython版Lambda関数を作成
- 2. AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けた知識の整理③ DR対策
- 3. AWSで ELBを使ったEC2のAuto Scalingを試す(チュートリアル)
- 4. AWS SAM アプリケーションをデプロイする
- 5. AWSの無料トライアル期間が終わって毎月$55請求されて辛かったサービスをコスパが良いと噂のLightsailに移行した話
- 6. AWS Lambda(Python)を使うならのまとめ
- 7. AWS SAA(SAA-C01)取得までのメモ
- 8. プライベートなEC2へSSH接続
- 9. リゾルバーでAppSyncの中を開発する
- 10. Amazon SESのバウンスレート上昇時の対策
- 11. プライベートサブネットの EC2 に SSM で入…れない
- 12. AWS認定ソリューションアーキテクトアソシエイト 高得点合格の勉強法紹介
- 13. 使わないと請求される!? EIPの不思議
- 14. [AWS,Rails]EC2のRailsアプリに外部から接続できない問題の解決
- 15. Webの基礎知識
- 16. AWSの運用費を削減する方法
- 17. Amazon ElasticsearchServiceのK-NNを触ってみる
- 18. 【AWS】インスタンスがないのに課金される謎が解けた
- 19. 個人開発でDBコストを抑えるならEC2一択
- 20. AWS のビデオカンファレンスサービス Amazon Chime を使う
Serverless FrameworkでPython版Lambda関数を作成
Python言語で書いたLambda関数を[Serverless Framework](https://serverless.com/)を用いて作成・デプロイした際の設定の記録です。
# 環境
– macOS Catalina
– serverless framework 1.65.0
– python 3.7.4
– node v12.15.0# プロジェクトのセットアップ
事前にServerless Frameworkのアカウントを作成しておく必要があります。
https://serverless.com/serverlessコマンドのインストール
“`sh
$ npm install -g serverless
“`Serverlessプロジェクトの作成
“`sh
$ serverless
“`プロジェクト名の入力やアカウントへのログイン等を行います。
開発言語の選択肢では「AWS Python」を選びましょう。入力が完了すると新しくServelessプロジェクト用のディレクトリが作成されます。
# 初期デプロイ
作成されたディレクトリに
AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けた知識の整理③ DR対策
# 概要
AWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に向けた小ネタ集③。
リージョン障害時のDR(ディザスタリカバリ)についてです。
代表的なサービスがどのようにリージョン障害に備えるかのまとめです。## はじめに
AWSでのDR対策は求められるRPO/RTO、可用性、コストの兼ね合いで様々な対策が取れますが、よく以下の4つに分類されます。
* バックアップ&リストア
* パイロットライト
* ウォームスタンバイ
* マルチサイトその中でプロフェッショナル資格で頻出のパイロットライトに関する整理です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/0f0027bf-afd0-7799-49eb-d967ade0f3f8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188544/7161a58c-701d-7bd6-55dd
AWSで ELBを使ったEC2のAuto Scalingを試す(チュートリアル)
Auto Scalingは、AWSでインフラを構築する際に、重要機能なので軽く触れるようになっておきたい。そのためチュートリアル的な構成で実際に構築してみた。
# 構築する構成
ELB(ALB)で、EC2インスタンス上のWebアプリケーションに振り分ける。
EC2インスタンスは、オートスケーリングにより、増減する。![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85440/0d801c45-2a63-0a5e-b255-506459bcda8c.png)
# 構築する
## ネットワーキングの設定
### VPCの作成
– 今回の指定値(抜粋)
– VPC名: autoscale-demo-vpc
– IPv4 CIDRブロック: 10.0.0.0/16### サブネットの作成
2つのAZにまたがる構成を作成するため、サブネット作成時にAZを指定する。– 今回の指定値(抜粋)
– 1つ目
– 名前: autoscale-demo
AWS SAM アプリケーションをデプロイする
https://aws.amazon.com/jp/serverless/sam/
AWS SAM (Serverless Application Model) は、AWS 上にサーバーレスアプリケーションを構築するためのオープンソースフレームワークで、CloudFormation のパッケージを簡単に作成、デプロイできるようにしたものです。
v0.33.1 でインタラクティブモード(`deploy –guided`)が実装され、サーバーレスアプリケーションの配布・デプロイが劇的にシンプルになったと思います。
## セットアップ
Docker, AWS CLI, AWS SAM CLI をインストールする必要があります。
### Docker
[Docker](https://www.docker.com/) をインストールします。
### AWS CLI
AWS アカウントを持っていればインストール済みだと思いますが一応。[AWS CLI](https://aws.amazon.com/jp/cli/) をインストールし、認証情報を設定しておきます。
例) bre
AWSの無料トライアル期間が終わって毎月$55請求されて辛かったサービスをコスパが良いと噂のLightsailに移行した話
# 乗り換えのきっかけ
1年強前に勉強を兼ねてAWSの無料トライアル期間を利用してWordspressを使ったサービスを公開していました。「**そうえば、そろそろ無料期間終わってるんじゃない?**」と思い、請求画面を開くと、案の定、複数月に跨いで多額の請求が…
コロナで自宅待機だし、今やるしかない!と思い行動に移りました。
![スクリーンショット 2020-03-08 1.08.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191919/2bf716d9-0a91-2244-099e-d0f27ca29143.png)
アーキテクチャとしては、よくある一般的なインフラ構成で、EC2(t2.micro)とRDS(MySQL)を使い、それをALBで流すような構築をしていました。
こんな感じです(AWSの公式サイトから引用しました)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/19191
AWS Lambda(Python)を使うならのまとめ
## はじめに
AWS Lambda(Python)を使うならやったほうが良いことをまとめてみた。
まだ試していないものも含む。随時更新。## やったほうがよさそうなこと
– Jeffyフレームワークの適用
トレースやロギングの共通処理の実装を簡略化できる。– AWS Lambda Destinationsの適用
Lambdaの実行結果に応じて次の処理を実施することができる。
https://qiita.com/kojiisd/items/efcb2ac3d5cc176534ba– AWS Lambda Layersの適用
よく使うライブラリを共通化できる。
https://qiita.com/t_okkan/items/394a15577bd1aad46ec3– 並列処理化
重い処理を並列処理する。
https://qiita.com/kenmaro/items/69fdd84e18e793a21790
https://aws.amaz
AWS SAA(SAA-C01)取得までのメモ
AWSがこれだけ普及しているのに、全く知らないのはエンジニアと呼べるのかい?と思い、SAA取得を決意!
クラウド・サーバ・ネットワークに関する知識もほぼ皆無な状態でしたが
1ヶ月半学習し、なんとか合格
全セクションにおいて「十分な知識を有する」でした学習の流れは、大まかに以下2つになります
1.Udemy学習教材
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け22時間完全コース)
→セール期間であれば1200〜1500円で購入できます(量・質共に参考書より圧倒的にコスパが良い)
AWS何それ?レベルの人でもハンズオン形式で学習するので、知識が無くても問題なく進めていけますが
分からない用語はちゃんとググりましょう(22時間の倍はかかると思って!)
実際に手を動かすことで、イメージができるようになるので、大幅に理解できるようになります
模擬試験1〜3を90%以上取れるようになるまでレッツチャレンジ!2.WEB問題集
AWS WEB問題集で学習しよう(https://aws.koiwaclub.com/)
→1.Udemy学習教材
プライベートなEC2へSSH接続
# 背景
—-
# 背景
社内のプロジェクトで以下の話が上がってきて対応した記録です。
・ 普段、[Amazon Workspaces](https://aws.amazon.com/jp/workspaces/)でプライベートなEC2にアクセスしている
・ 今回、一時的に作業効率を上げたく直接アクセスしたい—–
# 簡単な構成
—–
## 簡単な構成
・ Amazon WorkspacesからEC2へアクセスする
・ EC2はNAT Gatewayでインターネットから必要なパッケージをDLする![image_before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182636/1af1c7fb-5c19-c2e8-55c4-b6b49a7000bf.png)
—–
# 想像したこと1
## リスク
・ インターネットからアクセスしてはいけないポリシーがある(はず)
・ 同一サブネットにある他のリソースにアクセスできないようにする## コスト
リゾルバーでAppSyncの中を開発する
# リゾルバーでAppSyncの中を開発する
## はじめに
AmplifyでAppSyncをセットアップする際、認証タイプでCognitoを選択し、サンプルスキーマとしてFGAC(=Fine Grained Access Control = きめ細かなアクセス制御)の雛形を選択すると、Cognitoユーザー名が勝手にDynamoDBのowner列に設定されますよね。(で、認証済みユーザーでフィルタして取ってこれるようになる。)これ、不思議だったんです。
AppSyncのMutation(Create)で、引数に指定してないのにownerの他にもcreatedAtやupdatedAtなどが勝手に入ってくる。
![Screenshot 2020-03-06 at 22.28.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394775/84460d6a-5830-4b3c-d065-38dcf8c61756.png)
contentしか指定してないのに、
![Screenshot 2020-03-
Amazon SESのバウンスレート上昇時の対策
# はじめに
Amazon SES使ってますか?
多くのユースケースとしてAmazon Cognitoからのアクティベーションコードの送信時の利用が想定されますが(実際に公式も推奨してますし。)、SESを利用時には切っても切り離せない問題として **バウンスレート** と **スパム率** があります。SESではバウンスレートとスパム率が閾値を超えるとメールの送信が **制限** ないしは **停止** する可能性があります。今回は **Cognitoからのアクティベーションメール送信をユースケース** とし、その対応策を考えていきたいと思います。
※アクティベーションコードのメールをスパム報告するユーザーは多くないと思っているので、今回はメール送信停止の主な原因であるバウンスレートを中心に書いていきます。各種用語については今回は説明を省きます。優しい私がここにドキュメントを貼っておくのでわからない人は読んでください。
[Amazon SES と配信性能](https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuid
プライベートサブネットの EC2 に SSM で入…れない
## 概要
最近 AWS を使ったインフラ構築もするようになりました。ピタゴラスイッチ作ってるみたいで楽しい。
そんな中、VPC のプライベートサブネットに建てた EC2 に SSM Session Manager で入ろうとしたところ入れず困ったので、備忘録としてメモします。## SSM (Systems Manager) Session Manager とは
[AWS Systems Manager Session Manager \- AWS Systems Manager](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html)
– EC2 に KeyPair を登録したりしなくても EC2 のシェルを叩けて便利。しかも無料。
– `ssm-user` でログインされ、 PW 無しで `sudo` もできる。
– SSM 系のポリシー(詳細忘れました)をアタッチしたロールを、 EC2 のインスタンスプロファイルに割り当てる必要があります。##
AWS認定ソリューションアーキテクトアソシエイト 高得点合格の勉強法紹介
# 概要
2019年8月(半年以上前ですが)に、「AWS認定ソリューションアーキテクトアソシエイト」(以降SAA) に **973点**(合格ライン720点)で合格できましたので、そのための勉強方法を共有します。2020年3月にSAA試験が改訂されるため、今後はあまり参考にならないかもしれませんが…。
# 学習開始前の状態
SAA試験学習前の状態は以下の通りでした。## 経験
– ITエンジニア・アーキテクト 15年目
– 主にJavaアプリケーション(Web、バッチ)の開発、標準化、アーキテクチャ設計に関わることが多い
– バージョン管理・リリース管理の整備、自動ビルド・デプロイの構築なども担当
– インフラは学習目的でアプリケ
使わないと請求される!? EIPの不思議
クイズ。
以下、EIPを使用していて費用がかかるのはどれでしょうか。
1. EC2インスタンスにEIPが関連づけられて起動している時。
2. EC2インスタンスにEIPが関連づけられて停止している時。
3. 取得したEIPがどのEC2インスタンスにも関連づけられていない時。正解はなんと`3`なんですよね。
要は`EIPは使われていないと費用がかかるということになります。`以下[公式](https://aws.amazon.com/jp/premiumsupport/knowledge-center/elastic-ip-charges/)抜粋。
>次の条件が満たされている限り、Elastic IP アドレスに料金は発生しません。
>Elastic IP アドレスが EC2 インスタンスに関連付けられている。
>Elastic IP アドレスに関連付けられているインスタンスが実行中である。
>インスタンスに 1 つの Elastic IP アドレスしか添付されていない。なんで使わないと費用がかかるかの理由は書いてないんですが、貴重なIPなんだから使え!ってことな
[AWS,Rails]EC2のRailsアプリに外部から接続できない問題の解決
###問題の概要
世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce上記記事を参考にEC2のサーバー構築をしており、unicornとnginx両方正常に起動している状態でElasticIPにアクセスしようとしても
>このサイトにアクセスできません
>[xx.xx.xx.xx]からの応答時間が長すぎます。と表示される。
その他にも特徴があり
– curlコマンドが弾かれる
`$ curl http://xx.xx.xx.xx`
– nginxのログ、unicornのログにエラーは出ていない。
###原因
SSL証明書を発行していないにもかかわらずHTTPS接続を要求しており、サーバー側が対応できず接続を拒否している。原因は2つあり
– **ブラウザの問題**
どこかのタイミングでブラウザからHTTPS接続を要求し、キャッシュに残っていた(→自動的にHTTPS接続を要求する)– **Railsの設定の問題**
Webの基礎知識
IT未経験のスクール生が学んだことをアウトプットします:open_mouth:
Webサイトを閲覧する際の基礎知識です。
#Webの仕組み
Webとはインターネット上で用いられている、文書の公開、閲覧システム。
文字や画像、動画など一体化した文書を公開、配布、入手、閲覧ができます。
Webとは「クモの巣」という意味であり、大規模な文書間の繋がりを図示すると、クモの巣ように見えることから呼ばれています。##なぜWebアプリケーションを利用できるのか
普段閲覧しているWebサイトはクライアントとサーバの間で通信が走っていることによって閲覧できます。####クライアント
クライアント(Client)とは「何かを提供される人」という意味です。
ここではWebサイトを閲覧するスマホやPCにあるWebブラウザのことを言います。####サーバ
サーバ(Server)とは「何かを提供する人」という意味です。
Webサーバなどを表すソフトウェア、ソフトウェアを格納するハードウェアがあります。###クライアントとサーバのやりとり
1.クライアント側(PC,スマホ)がサーバ側にリクエスト
AWSの運用費を削減する方法
## 概要
– AWSの運用費を削減するための方法をまとめてる## 現状把握
コストやすくするためにも、何はともあれ現状を見るべし
具体的には下記の順序で画面遷移をすると、AWSの各種サービス別の月額費用がわかる
どこにどれだけかかっているかは運営するサービスの性質にによって様々なので、ひとまずこれで現状を見るのが良さげ“`
1. マネジメントコンソールを開く
2. Billingを選択する
3. 左サイドバーからCost Explorerをクリックする
4. Monthly Spend by Service Viewをクリックする
“`![https___qiita-image-store.s3.amazonaws.com_0_102733_16432517-f325-6cdd-785a-61cc5b0f42f9 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102733/7ab3496f-f3fb-20ce-cbc6-78410cf52f34.png)
## AWSの運用費
Amazon ElasticsearchServiceのK-NNを触ってみる
# はじめに
AWSよりAmazon ElasticSearchServiceでk-NN検索ができるという発表があったのでちょっとだけ試してみました。
https://aws.amazon.com/jp/about-aws/whats-new/2020/03/build-k-nearest-neighbor-similarity-search-engine-with-amazon-elasticsearch/
なお、opendistro版にはすでに実装されていた機能だそうです。(ちなみに私、ElasticSearchは勉強中なのであまり詳しくないです)# 環境構築
ElasticSearch 7.1以降に対応ということです。手元に6.8までしかなかったので、7.1を新たに作りました。ドメイン構築時にk-NN専用の設定は必要ないので、細かいところは割愛します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/a077e0aa-7bee-5f81-e8fb-51db2d545
【AWS】インスタンスがないのに課金される謎が解けた
去年、AWSに登録して、無料期間が終わっているのは知っていたのですが、全く使っていないはずなのに課金される謎がありました。
Cost Reportsによると、ボリュームというものに課金されているらしい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322882/7e6c04ee-d2f5-24c0-9a5a-ccfe53a8bd2d.png)
> EC2 インスタンスで料金が発生するのはそれを起動している間だけですが、インスタンスに接続されている EBS ボリュームの場合、インスタンスを停止したとしても、情報の保持と料金の発生は継続されます。
(中略)
EBS 関連の課金を停止するには、要らなくなった EBS ボリュームと EBS スナップショットを削除します 。
[インスタンスがすべて停止しているのに EBS に課金されるのはなぜですか。](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ebs-charge-st
個人開発でDBコストを抑えるならEC2一択
# 記事を書く背景
どうも、個人開発で[walica](https://walica.jp/)というサービス作っている者です。
walicaは、2018年にサービスリリースしまして、今では月間3,000人が使っている、そこそこ使われるサービスになっています。ところで、月間PV4万くらいですが、**マネタイズには失敗している**ので
リリースしてから16ヶ月、**赤字が続いています。** ???広告収入がやや伸びてきていますが、赤字の主な原因は**インフラ費用**です。
また、普段は[自分のブログ](https://kyogom.com)で淡々と記事を書いているのですが、今回Qiitaで記事を書くことで、デメリットの指摘などのフィードバックコメントをいただきたいと思っています。
自分はインフラにそこまで詳しくないので、コメントや記事の修正を通して**コスト最適化に重点を置いた個人開発のベストプラクティス**について議論できたら幸いです。
# 発生したインフラ費用の内訳 (2018年当時)
“`
DB (RDS | MySQL) … $23
AWS のビデオカンファレンスサービス Amazon Chime を使う
https://aws.amazon.com/jp/chime/
Amazon Chime は、Amazon Web Services が提供するビデオ会議です。昨年末に東京リージョンも対応しました。
– [Amazon Chime は 14 の AWS リージョンを使用して、参加者により近い場所で会議をホストできるように](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/amazon-chime-can-now-host-meetings-in-14-aws-regions/) (2019/12/3)
– [Amazon Chime Meetings App for Slack アプリが利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/announcing-amazon-chime-meetings-app-for-slack/) (2019/12/4)専用のアプリをインストールしなくても、ブラウザだけでも参加できるのが利点かと思います。画面共有