- 1. [AWS]アクセス権限を管理する方法
- 2. [AWS]システムを監視する方法
- 3. 【AWS】AWS ソリューションアーキテクトアソシエイトに合格した勉強法
- 4. IAMベストプラクティスにほぼほぼ準拠したIAMユーザ・グループ作成と、MFA デバイスの自己管理を許可するポリシーの取り扱い注意点
- 5. サーバーレスでスクレイピングして、狙った中古PCを我が手中に…
- 6. AWSソリューションアーキテクト アソシエイトに2ヶ月で合格した話
- 7. AWS〜RDSについて〜
- 8. Terraformのstateをリモートで管理する
- 9. 【AWS 認定試験】1ヶ月でアソシエイトレベルの認定を3冠した話
- 10. OpenVPN AccessServerの構築
- 11. AWS SAM で API をローカルでテストする
- 12. 前はできたのに…EC2へのSSH接続ができない
- 13. AWSのRDSの一時表領域が肥大化して止まったので小さくする
- 14. AWS Well-Architected Framework「セキュリティ」
- 15. AWS STSを使ってみる
- 16. -備忘録- AWS SES を使ってRedmineからのメールを送る
- 17. AWS LambdaからEvent Bridgeに通知してみる
- 18. AWS EC2でMemoryErrorとNo space left on deviceで詰まった話
- 19. AWS CDK(Python)開発からAWSリソース構築までの手順※開発初心者向け
- 20. CloudFront+Lambda@Edgeの画像リサイズでハマったことまとめ
[AWS]アクセス権限を管理する方法
**2020年2月15日現在の内容です。**
構成イメージ
## 用語説明
### IAM(Identity and Access Management)
AWSサービスを利用するユーザー権限を管理するサービス概要
– AWSサービスをセキュアに操作するために、認証・認可の仕組みを提供する
– 各AWSサービスに対して別々のアクセス権限をユーザー毎に付与できる
– IAMの利用は無料—
– ポリシー
– アクセス許可の定義
– ユーザー
– 個々のアカウントのユーザー
– グループ
– IAMユーザーの集合(複数のユーザーにアクセス許可を付与する作業を簡素化できる)
– ロール
– 一時的にア
[AWS]システムを監視する方法
**2020年2月11日現在の内容です。**
構成イメージ
## 用語説明
### システム監視
システムを正常な状態に保てるよう、稼働状況やリソースを監視すること目的
– すぐに障害発生を確認できるようにする
– 復旧にすぐに取りかかれるようにする内容
1. 正常な状態を監視項目 + 正常な結果の形で定義する
2. 正常な状態でなくなった際の対応方法を監視項目ごとに定義する
3. 正常な状態であることを継続的に確認する
4. 正常な状態でなくなった場合に通知を行い、すぐ正常な状態に復旧させる#### 監視の種類
死活監視– 正常にシステムが動作していることを確認
メトリクス監視
– パフォーマンスを定量的に確認
–
【AWS】AWS ソリューションアーキテクトアソシエイトに合格した勉強法
#はじめに
仕事で1年くらい前からAWSの環境のシステム保守運用をするようになりました。
それに伴いAWSの資格の取得を目指すようになりました。
2019年11月ごろから本格的に勉強を始め、2020年1月25日に合格しました。#試験結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266541/4e41af31-e3f3-be8c-b1f0-a0c464bccd10.png)
ギリギリ合格しました!#勉強したこと
##これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け22時間完全コース)
https://www.udemy.com/course/aws-associate/上記のudemyのコースを一通り自分のAWS環境を使って行いました。udemyのコースは頻繁に値下げしており、私は1800円くらいで購入しました。
手を動かしながらやるのでAWSの主要機能の理解が進みました。##徹底攻略 AWS認定 ソリューションアー
IAMベストプラクティスにほぼほぼ準拠したIAMユーザ・グループ作成と、MFA デバイスの自己管理を許可するポリシーの取り扱い注意点
# 1. はじめに
* AWS マネジメントコンソール作業で使用するIAMグループ や IAMユーザーの設計や作成フローを、[IAM ベストプラクティス](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html) を参考にして見直してみる。
* けど、IAMグループ や IAMユーザー の作成に関する [IAM ベストプラクティス](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html) をすべて採用するのは窮屈なので、採用するものを決めて My IAM プラクティスを作成してみる。
* そして、My IAM プラクティスに準拠したIAM グループ、IAMユーザーの作成フローを構築してみる。
* 例として、新規に参画したAWS マネジメントコンソール作業者で、開発チームのAさんの IAM ユーザーを作成してみる。
* あと、IAMポリシーとIAMグ
サーバーレスでスクレイピングして、狙った中古PCを我が手中に…
## どんなことをやるの?
どうしても中古でThinkPadのx250が欲しくなりまして、今回は中古ThinkPad専門店の「Be-Stockさん」のサイトをスクレイピングして、在庫状況を定期的に取得していこうと思います。
今回は初めてサーバーレスで、とは思っておりますが、簡単めに以下のようなアーキテクチャでアプリケーションを作成していこうと思います。![scraper.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/585851/24cc6ea6-c119-f161-c866-d4e3ee7b76ed.png)
> ※諸々初めてなので、もし間違いや改善点があれば優しくかつ容赦無くボコボコにしていただきたい。またその際には、私が一年目未満のエンジニアであること、そして極度の飲酒をしながらこの記事を書いていることを念頭に置いて、愛を忘れないように努めていただきたい。## 1.サイトの下調べ
### スクレイピングの可否
まずはスクレイピングをする前にやることがある。
それはそのサイトをゴニョゴニョ
AWSソリューションアーキテクト アソシエイトに2ヶ月で合格した話
##はじめに
大手メーカー系のSIerにいた情弱エンジニアが、ベンチャーへの転職を機にAWSを勉強し始め、ソリューションアーキテクト アソシエイト(以下、SAA)の資格をゲッツするに至った過程や勉強法などを紹介します。
無駄に長くなりますので、お時間の無い方はブラウザバックをお勧めします。
あと、シングルアクションアーミー(SAA)で検索して飛んできた人もブラウザバックしてください。ここは銃を紹介する項目ではありません。でもリボルバーは確かにカッコいいと思います。44マグナム最高。##御託
Webで調べてみると、世の中には(* ゚∀ ゚) < 1週間勉強したらなんかいけたわ!
とか
٩(ˊᗜˋ*)و < この本1冊読むだけで大体わかるよ〜
とか
(。•ω- 。) < 実際にマネジメントコンソールを触ったことは無いけど合格したおみたいなマジキch……もとい才能の塊みたいな人たちが散見されますが、自分は凡の人ですのでそんなことにはなりませんでした。
(そも、そう言う人たちは効率的に物事に取り組む手法を確立してるんでしょうね。才能という言葉で済ますべからず)なので自
AWS〜RDSについて〜
AWSにDBサーバ構築を行うことに必要な知識、手順をまとめます。
## 今回やることに概要図
![20160828080622.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326801/cc60a01d-b91f-57ab-7ebc-e9c5219e453d.png)
今回はprivateサブネットにDBサーバーを設置する。(画像は他のサイトからいただきました)
## RDSとは
フルマネージドなリレーショナルデータベース。
フルマネージドとはDBの運用管理まで行ってくれるサービス。従来のDBサーバー構築に必要な作業比較
|オンプレミス|EC2|RDS|
|:–:|:–:|:–:|
|アプリ最適化|アプリ最適化|アプリ最適化|
|スケーリング|スケーリング||
|バックアップ|バックアップ||
|アップデート|アップデート||
|OSインストール|||
|物理サーバー設置|||*構築の手間の軽減
*運用の手間の軽減
→コア機能の開発に注力できる!!## 設定可能な内容
*
Terraformのstateをリモートで管理する
CloudFormationでは、スタックの状態(state)はAWS側で管理されているが、Terraformの場合、デフォルトでは管理されません。
状態管理を設定せずに`terraform apply`コマンドを実行すると、ローカル端末に状態管理ファイルが生成されます。(`terraform.tfstate`という名で作成されます。 )
## 状態管理のメリット
メリットは以下の通りです。
– リモートに状態を保存と状態のロックができるため、状態の破損を防ぐことができる
– リモートに状態を保存することで、複数人で同じ状態を共有できるローカルで管理していたら、PCが壊れてインフラ管理できなくなったり、状態管理ファイルを紛失したりするリスクがなくなります。
## 実装してみる
### 状態管理用のスタックを用意する
Terraformでは、状態管理にS3とDynamoDBを使用できます。
S3に状態管理ファイルを保管して、DynamoDBでコンフリクトを防ぐ構成となっています。
また、状態管理用スタックについて公式では以下のように管理することを推奨
【AWS 認定試験】1ヶ月でアソシエイトレベルの認定を3冠した話
# はじめに
この記事では、いかにして約一ヶ月ほどの期間でアソシエイトレベルの認定試験を合格したのかを紹介いたします。
認定試験合格したスケジュールです。[認定資格取得状況](https://www.certmetrics.com/amazon/public/transcript.aspx?transcript=GJMX3D412MQ4165K)
– 2020年1月13日:AWS Certified Developer – Associate (DVA)
– 2020年2月2日:AWS Certified Solutions Architect – Associate (SAA)
– 2020年2月15日:AWS Certified SysOps Administrator – Associate (SOA)# 動機
今までの業務ではAWSを主に分析やETL処理といった用途で扱ってきましたが、新しい業務ではAWSの基本的なサービスを抑える必要がありました。そこで、AWSの勉強の1つのマイルストーンとして認定試験の合格とし、勉強をはじめました。このとき勉強していたのがDVAの
OpenVPN AccessServerの構築
# OpenVPN Access Server
OpenVPNにGUIベースの管理画面が追加されたソフトウェアです。VPNに関する各種設定やユーザ管理をWebから操作できるため非常に便利。Docker版もあるのでインストールも簡単です。
* https://openvpn.net/
* https://github.com/linuxserver/docker-openvpn-as# 画面イメージ
久しぶりに触ってみたらUIがかなり洗練されていました。
AWS で API Gateway → lambdaのテストをローカルで実施する。
## 環境
– macOS Mojave 10.14.6
– Python 3.7.5
– Docker 19.03.5
– AWS SAM CLI 0.43.0## AWS SAM CLI をインストール
“`
$ pip install aws-sam-cli確認
$ sam –version
SAM CLI, version 0.43.0
“`## サンプルのAWS SAM アプリケーションをダウンロード
参考:[チュートリアル: Hello World アプリケーションのデプロイ](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html#serverless-getting-started-hello-world-initialize)“`
$ sam init
“`
前はできたのに…EC2へのSSH接続ができない
プログラミング初心者です。
macのターミナルから、前回はssh接続できたのに、何故か全く同じコマンドを打っても接続できないという現象を解決したので共有します。# いざ、EC2へSSH接続!
“`
$ ssh -i [SSHキーのパス/SSHキーのファイル名].pem ec2-user@[EC2インスタンスのパブリックIP(例10.20.30.40)]
“`
を入力しenter。しかし、ログインできず、しばらくしてタイムアウト。前回と全く同じコマンドを入力しているのに、何故だ?# EC2インスタンスを確認してみる
AWSのコンソール画面へログインして、EC2のインスタンスを確認してみる(下図)![スクリーンショット 2020-02-29 16.07.26 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/513214/14c96a66-b2f5-bc33-6191-7c8f72342b2b.png)
# 確認事項1 EC2インスタンスの状態
もし、インスタンスの状態がrunnin
AWSのRDSの一時表領域が肥大化して止まったので小さくする
# AWSのRDSの一時表領域が肥大化して止まったので小さくする
## 事象
![FireShot Capture 003 – RDS · AWS Console – ap-northeast-1.console.aws.amazon.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/486809/620d0dff-f631-172e-3ab5-c06edc84075e.png)ある時間よりAWSで動いているRDSのOracleインスタンスのストレージ(容量100GB、空き70GB)が急激に減少、枯渇しました。
CloudWatchでストレージ容量の監視をおこなっていたのでアラートが気がつきました。
DBへの新規接続もままならない状態だったので、とりあえずストレージを10G追加したところそのまま安定。
原因の調査と解決にむけて作業を開始することにしました:runner:## 原因の調査
同じインスタンスに複数のユーザーがはいっている構成だったので各ユーザーのデータの使用量を調べます。
*
AWS Well-Architected Framework「セキュリティ」
セキュリティの柱の7つの設計原則をざっくりまとめてみたいと思います。
この内容はnoteのほうで投稿したものと同じ内容になります。
「[②最重要項目:セキュリティ](https://note.com/yoriasanuma/n/n9df28ba45578)」####1, 強力なアイデンティティ基盤の実装
アカウントの用途によって与える操作権限を分けましょう。システムを管理するためのアカウントには設定変更・リソースの追加・削除ができる権限を与え、その他のアカウントには設定値やリソースの使用状況の参照のみできる権限を与えるなど、必要最低限の権限のみ与えるようにします。また、多要素認証(自分で設定したパスワード+一時的に発行される認証コードなど)を利用することでセキュリティを向上できます。権限を一元管理し、認証情報も適切に管理しましょう。
####2, トレーサビリティの実現
だれが、いつ、どんな操作をしたかを常に監視し、ログとして記録しましょう。AWSサービスを組み合わせて、不正なアクセスやリソースの状態の変化をリアルタイムで検知し、自動でアクションを実行させることができます。
AWS STSを使ってみる
#STSとは…
AWS Security Token Serviceの略称で、一時的な認証情報を発行。
認証情報として、「アクセスキー」、「シークレットキー」、「セッショントークン」の3つが発行されるが、
あくまで期限付きで一時的に権限を付与する用途で用いられる。STSで権限付与を行うためには、以下IAMユーザとIAMロールが必要になる。
これらはお互いに同じアカウントに所属していても、違うアカウントに所属していても良い。>1. 権限を引き受けるIAMユーザ
1. 付与する権限の塊であるIAMロールまた、それぞれが下記のポリシー/信頼関係を持つ必要がある。(ロールには、実際にユーザが使いたい権限(EC2操作など)も付与)
## 既存の下記ポリシーをAssume RoleするIAMユーザへ追加する
“`ruby:1.権限を引き受けるIAMユーザに付与するポリシー
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: [
-備忘録- AWS SES を使ってRedmineからのメールを送る
# Redmine からメールを送ろう
Redmine は便利なタスク管理ツールですが、これでメールが送信できないと嬉しさは半減してしまいます。
そこで、備忘録をかねて、ちょっと設定したことを書いていきます。## AWS の設定
### 認証情報の取得
AWSのマネジメントコンソールへ入って
「カスタマーエンゲージメント」の項目にある「Simple Email Service」を選択します。SESの画面が出たらダッシュボードの左ペインから「SMTP Settings」をクリック
メールサーバなどの基本的な設定が書いてあるので、それをメモ帳などにコピペしておきます。この画面で重要な、SMTPの認証情報を手に入れます。
「Create My SMTP Credentials」をクリックしてください。
すると次の画面でIAMの設定をするけどOK?って聞かるので、IAMの名前を変える時はここで変えます。
それが終わったら、右下の「作成」ボタンで作成します。なんと次の画面から日本語
「1 ユーザーが正常に作成されました。
これは、SMTP セキュリティ認証情報をダウンロードで
AWS LambdaからEvent Bridgeに通知してみる
# はじめに
[前回](https://qiita.com/drafts/a49da460fd67e197a5b7/edit)、MackerelのアラートをAWS Event Bridgeに通知してみたので、
今回は、Lambda A→EventBridge→Lambda B&Cの構成を試します。
自作のアプリケーションから、カスタムイベントを発火させるイメージですね。# 構築手順
## Lambda B&C(EventBridge受信側)
* Lambda B
* Lambda Function名:register-item
* 実行ロール:CloudWatch Logsの権限があれば良いので、「基本的な Lambda アクセス権限で新しいロールを作成」を選択
* 処理内容:DBに商品を登録するというイメージだが、今回はログ出力するのみとします。“`python
import jsondef lambda_handler(event, context):
print(Register a new item.)
AWS EC2でMemoryErrorとNo space left on deviceで詰まった話
# 対処
MemoryError → `–no-cache-dir`をつければ通る。
No space left on device → ファイル容量を減らせ!以下余談
### MemoryErrorの対処
AWSのEC2でpipからtensorflowを入れようとしたところ。。。“`sh
pip install tensorflow
~
真っ赤なエラー…
~
MemoryError
“`
MemoryErrorで入れることができない。。。
そんな時は`–no-cache-dir`を付けてキャッシュを無効化すればいい!ということで再度実行。“`sh
pip install tensorflow –no-cache-dir
~
やっぱりエラー…
~
ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
“`エラーが`[Errno 28] No space left on device`に変わった。こいつの原因は
AWS CDK(Python)開発からAWSリソース構築までの手順※開発初心者向け
自分がほぼインフラ一本でやってきて、開発経験が乏しかったことから
開発初心者がCDKを使ってAWSリソースを構築するために行ったことや手順を纏めてみました。
※バージョンによってはこの通り動かないこともあると思いますのでご了承ください
私は2019年12月時点の最新版のバージョンを利用しています## コーディング環境
環境用意は下記の記事を参照
WindowsにCDK環境構築する手順(Python)
https://qiita.com/toma_shohei/items/985916e1a95ec4c38121## CDK(Python)コーディング
◾️まず概要をつかむ
https://pages.awscloud.com/rs/112-TZM-766/images/B-3.pdf◾️環境用意したらWorkShopやってみる
・Workshop(英語)
https://cdkworkshop.com/30-python.html・Workshop(日本語:ダウンロード版)
http://bit.ly/cdkworkshopjp### requirements.t
CloudFront+Lambda@Edgeの画像リサイズでハマったことまとめ
# 概要
Lambda@Edgeとは、CloudFrontのエッジロケーションで実行できるLambda関数です。
コンテンツがオリジンから返されたときにキャッシュできるので、アプリケーション側のパフォーマンスを向上させることができます。
さらにLambda@Edgeの処理として、画像リサイズ機能を組み込むとリサイズされた画像をCloudFrontがキャッシュするので、ユーザはリサイズによるオーバーヘッドを受けない綺麗なアーキテクチャを作ることができます。
具体的には、下図で右下の「Origin response」に画像のリサイズ機能を持ったLambda@Edgeを配置します。
(下図はオフィシャルから拝借)![cloudfront-events-that-trigger-lambda-functions.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196414/42cfd882-1f5c-793a-7079-33cbefbcd4dd.png)
そんな一見便利そうに見えるLambda@Edgeで