- 1. 【AWS-CDK】Solutions Constructsを使って手軽に認証付きWebAPIを構築
- 2. Stack Overflow Developer Survey 2020の要点整理
- 3. AWSのリソースイベントを検知する(Amazon EventBridge)
- 4. S3サーバーサイド暗号化SSE with Python boto3
- 5. AWSのECSでコンテナにWEBターミナル接続
- 6. AWSハンズオン実践メモ 〜サーバーレスアーキテクチャで翻訳 Web API を構築する〜
- 7. railsで開発中にAWSから高額請求されたが、、
- 8. 水樹奈々さんの公式サイトがダウンしないのは AWS を使っているからだった。
- 9. EventBridge+LambdaによるAMI作成通知を実装するCloudFormationテンプレート作成
- 10. AWS RDSでマルチAZ配置できない場合の対処法
- 11. httpd.confのDocumentRootを修正して再起動しても起動出来なくなった。
- 12. [AWS] S3サーバアクセスログについて
- 13. MacのTouch Barにmfaコードをコピーするボタンを作る
- 14. AWS Client VPN が SAML 対応したので Okta で試してみた
- 15. SAM CLI の Docker内(–use-container) ビルドをProxy環境下で実施する方法
- 16. CodePipelineのレビューコメントはどこに表示されるのか
- 17. 【AWS SAA】VPC内のEC2インスタンスがインターネットに接続できない原因の備忘録
- 18. Node.js でAWS Lambdaを量産する為のサンプルソースをgithubに公開してみた
- 19. 【AWS】EC2, Lighsail Apache設定ファイルの場所
- 20. よく使うRedshift運用系SQL
【AWS-CDK】Solutions Constructsを使って手軽に認証付きWebAPIを構築
## Solutions ConstructsでAWSインフラ構築
先日、[AWS Solutions Constructs](https://aws.amazon.com/jp/blogs/news/aws-solutions-constructs-a-library-of-architecture-patterns-for-the-aws-cdk/)が発表されました。これはAWS-CDKにおいて、抽象化されたリソースを表す`Constructs`のよく使う組み合わせをWell-Architected準拠の設定込みで一発で構築できるライブラリです。例えば`Lambda + DynamoDB`や`CloudFront + S3`などの組み合わせのパターンが25個(2020/7月現在)提供されています。+ https://docs.aws.amazon.com/solutions/latest/constructs/api-reference.html
これをつかってパパっとAWS上にWebAPIを構築したいと思います。
## 注意
2020/7/6現在、Solutions
Stack Overflow Developer Survey 2020の要点整理
# この記事の目的
世界のディベロッパーのトレンドを追う上で、非常に重要な資料であるStack Overflow Developer Surveyの最新版である2020年版の要点を整理すること。自分の理解のためだけでなく、毎年出されているにもかかわらず、日本語での情報共有が少ない本調査の要点を日本語で整理することで、多くの日本人の開発者が世界のトレンドを理解することを期待する。原文
https://insights.stackoverflow.com/survey/2020# 調査概要
・2020年2月に世界中の65,000人以上のディベロッパーにアンケートを実施(注:回答者はアメリカ、インド、ヨーロッパに集中)。
・コロナウイルスが流行る前に調査が実施されたため、仕事や賃金のデータは現時点での情報と異なる可能性があることに注意。# キーポイント
(1)最も愛された言語はRust, Typescript, Pythonの順番。Rustは五年連続で一位。
(2)回答者の8割がDevOpsが重要だと考えている。
(3)回答者の9割が、プログラミングで壁に当たった時、Stack
AWSのリソースイベントを検知する(Amazon EventBridge)
今回は「iam操作を検知」してみます。
何度か「ap-northeast-1」で試してみても上手くいかなかったんですが以下を読む限りiamのイベントは「us-east-1」のEventBridgeにカスタムイベントを追加しないと取れないとのことでした。https://aws.amazon.com/jp/premiumsupport/knowledge-center/iam-cloudwatch-sns-rule/
EventBridgeの設定
![iam-bdg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110457/ae7735ea-ea7e-b498-c309-5c26c210b200.png)検知後Lambdaのログ出力
![cwl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110457/b72fde28-4b72-c587-a52b-234611d3e50e.png)重要度の高いイベントを検
S3サーバーサイド暗号化SSE with Python boto3
S3に書き込むデータを暗号化するのを、boto3(Python)で行いたいと思います。
参考
https://qiita.com/ot-nemoto/items/66cc783e8d8714f88bd8#%E9%9D%9E%E6%9A%97%E5%8F%B7%E5%8C%96%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%81%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%82%B5%E3%82%A4%E3%83%89%E6%9A%97%E5%8F%B7%E5%8C%96%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89SSE サーバーサイド暗号化の種類は以下の通りです。
### Default encryption (デフォルト暗号化)1. SSE with AES-256
2. SS
AWSのECSでコンテナにWEBターミナル接続
ECSを使用するとデバッグ環境でコンテナに接続するのが面倒なので、コンテナにWebターミナルであるGoTTYを入れてみる方法を考えてみました。
あくまでもデバッグ目的で使用します。# 自分のアプリのDockerファイルにgottyを設定
Dockerfileのgotty設定部分 (alpineを使用しています)
“`dockerfile
# GoTTY
RUN addgroup -S gotty && adduser -S -g gotty gotty \
&& mkdir -p /gotty \
&& chown -R gotty /gotty && chgrp -R gotty /gotty
RUN wget -qO- https://github.com/yudai/gotty/releases/download/v0.0.12/gotty_linux_amd64.tar.gz | tar zx -C /gotty/
RUN echo ‘port = “8080”‘ >> /home/gotty/.gotty
RUN echo ‘credential =
AWSハンズオン実践メモ 〜サーバーレスアーキテクチャで翻訳 Web API を構築する〜
# はじめに
AWS公式の[ハンズオンシリーズ](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/?trk=aws_blog)の中から、翻訳 Web API の構築を通して、サーバーレスアーキテクチャの基本を学ぶ[ハンズオン](https://pages.awscloud.com/event_JAPAN_Hands-on-for-Beginners-Serverless-2019_LP.html?trk=aws_introduction_page)を実施しました。本記事は自身のハンズオン学習メモとして投稿します。
# 目次
– [ハンズオンの目的](#ハンズオンの目的)
– [本編](#本編)
– [おわりに](#おわりに)# ハンズオンの目的
– AWS Lambda, Amazon API Gateway, Amazon DynamoDB の基本を学ぶ
– 上記のサービスを組み合わせて、サーバーレスな Web API を作成する>翻訳 Web API の構築を通して、サーバーレ
railsで開発中にAWSから高額請求されたが、、
はじめに以下の記事にあるように、railsでアプリを開発中に初期設定のミスが原因で高額請求に至った。
https://qiita.com/381704/items/d5216295eadd67eb9e8c完全に注意不足であり、しっかり利用してしまったあとなので支払うしかないと思っていたが、駄目元でAWSのサポートセンターに以下のようなメールを送ってみた。(本文を載せるのは抵抗があったが、証拠&同じ状況の人の希望になればと思い残しておく)
2日後にAWSサポートより返信が来た。返信内容には、現在料金が発生しているRDSのインスタンスとスナップショットの削除をすることとあり、その後に返金が可能かの相談にはいるということだ。
内容通り、RDSの削除
水樹奈々さんの公式サイトがダウンしないのは AWS を使っているからだった。
こんにちは、 くわブロ です。
### 水樹奈々さん、結婚!
ネットニュースだけでなくテレビ局の報道でも、水樹奈々さんの結婚でワッショイワッショイ状態です。
当方は職業がIT系なので、水樹奈々さんのファンの方よりも、「公式サイトはダウンしていないかな?」と**事務所の情シスの方へ思いを馳せて**しまいます。(ファンの方、すいません。)水樹奈々さんの [公式サイト](https://www.mizukinana.jp/) を見に行ったところサクサク見れますし、これだけアクセス激増している状況でもダウンしていないので **AWSクラウドでこんな構成を組んでいるんじゃないかな?** と予想してみたらビンゴでした。(この記事書いている最中も似たことをツイートしてる人が居て、ちょっと笑いました。みんな情シス目線。)
### 予想していた構成図
静的コンテンツ配信の鉄板とも言える構成。
**ユーザー → Route53(DNS) → CloudFront(CDN) → S3(静的Webサイト)**
画像などの静的コンテンツをS3に配置する&ホスティングして、前段キャッシュでClou
EventBridge+LambdaによるAMI作成通知を実装するCloudFormationテンプレート作成
EventBridge+LambdaによるAMI作成通知を実装するCloudFormationテンプレートを作成しました。
## 今回参考にさせていただいた記事
[AMIの作成時間が知りたかったのでSNS Topicで通知させてみた](https://dev.classmethod.jp/articles/ami-create-time-sns/)
## CloudFormationテンプレートによる実装概要
CloudFormationテンプレートでスタックを作成すると下記のような構成が出来上がります。
CloudTrailについてはCloudFormationテンプレートに含んでいませんので別途有効化が必要となります。![概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74171/fcff9e85-2cee-a33b-a941-8ebf759737fc.png)
この構成は下記のCloudFormationテンプレートで構築しています。
– AMI作成時のSNS通知用CloudF
AWS RDSでマルチAZ配置できない場合の対処法
###はじめに
既存のAWS RDSのマルチAZ配置に変更したところ…
以下のようなエラーが出たので、解決方法を載せておきます!““
DB Subnet Group doesn’t meet availability zone coverage requirement.
Please add subnets to cover at least 2 availability zones.
““
###解決方法
このエラーは、以下の意味になります。
『サブネットグループに少なくとも2つのアベイラビリティーゾーンを設定してください!』
だから、解決方法としては、追加すればOKです##サブネットグループの追加方法
AWSマネージメントコンソールでRDSを開いて、サプネットグループをクリックしてください
httpd.confのDocumentRootを修正して再起動しても起動出来なくなった。##【はじめに】
Amazon EC2 LinuxからApacheのDocumentRootを変更時に
勝手にドツボにハマったので、対処方法を備忘録として残します。またこれからAWS周りを勉強していく中で
作業中にハマったものをアウトプットとして残していこうと思います。##【開発環境】
Amazon EC2 Linux
Windows 10 HOME
Apache/2.4.43
Tera Term 4.1.105## httpd.confの編集
下記ファイルを編集していきます。
“`
sudo vi /etc/httpd/conf/httpd.conf
“`“`httpd.conf
DocumentRoot “/var/www/html”
↓
DocumentRoot “/var/www/html/sample/public”
“`
DocumentRootを変更。:wq (で保存)
“`
sudo service httpd restart
“`
Apacheを再起動すると。。“`
Redirecting to /bin/system
[AWS] S3サーバアクセスログについて
# S3アクセスログ
– バケットに対する詳細ログが記録される
– アクセスログはセキュリティやアクセス監査に役立つ
– S3の請求についての理解にも役立つ# ベストエフォート型のサーバーログ配信
– ログは記録された時間から数時間以内に配信される
– 配信されない場合もある
– ログの目的はトラフィックの特性を理解すること
– ログの完全性や適時性は保証されない> https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/ServerLogs.html#LogDeliveryBestEffort
# バケットのログ記録ステータスの変更が有効になるまでには時間がかかる
– ログ取得有効化してから数時間以内のログは記録されたりされなかったりする
> https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/ServerLogs.html#BucketLoggingStatusChanges
# アクセスログの取得
– アクセスログ取得はデフォルトで `無効`
MacのTouch Barにmfaコードをコピーするボタンを作る
昨今、mfaが必須と言われていますが、毎回スマホのロックを解除してコードを見るのが面倒じゃないですか?
MacのTouch Barにmfaコードをクリップボードにコピーするボタンを配置する方法をご紹介します。# OATH Toolkitの導入
まずは、CLIにてmfaコードを扱えるようにOath Toolkit (https://www.nongnu.org/oath-toolkit/) を導入します。“`
$ brew install oath-toolkit
“`# mfaの設定
AWSや、googleにmfa認証の設定画面へ行く。以下AWSの場合の例です。
仮想MFAデバイスの設定画面にて、シークレットキーの表示で表示される32文字のキーを覚える。
![Image 2020-07-07 08-32-07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130299/48f32df7-793b-13d4-6685-4d45f5e327f2.jpeg)※ 基本的に仮想MFAデ
AWS Client VPN が SAML 対応したので Okta で試してみた
# はじめに
\_s\_\_o\_ です。2020 年 5 月 19 日付けで AWS Client VPN が SAML 認証に対応しました。
[参考] [AWS Client VPN で SAML 2.0 経由のフェデレーション認証のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2020/05/aws-client-vpn-supports-federated-authentication-via-saml-2/)
Client VPN の ID 認証は、これまでは AWS Directory Service の利用が必須でした。ID 認証のためだけに AWS Directory Service を立て、さらには ID 管理のためだけに AWS EC2 で Windows を立て……など、あまり費用対効果が良いとは言いがたいものでした (ちなみに、MFA を有効にする場合は、AWS Directory Service に加えて Radius サーバも別途必要。。。)。
そのため、この機能追加は、非常に嬉しいも
SAM CLI の Docker内(–use-container) ビルドをProxy環境下で実施する方法
2017年頃からサーバレスに浸っている、小西啓介です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/40049/f960c804-b36c-2893-1ae5-eed795f20606.png)
# SAMでは、Lambdaに近い環境でビルドできる
SAM(Serverless Application Model) CLI のビルドコマンド(`sam build`)には、
Lambda用の `npm` や `pip` などで、アーキテクチャ(WindowsかLinux等)に依存するモジュールが有る場合に対応する
オプション (`–use-container`)がある。このオプションを使用すると、通常、実行環境(windows等)で行うビルド処理を、Lambda(Amazon Linux) に近い
Docker環境内で行うようなるため、コンパイルを伴うようなモジュールでも問題なく、Lambda用のリソースを作成することが可能となる。# Proxyの憂鬱
ここにも、
CodePipelineのレビューコメントはどこに表示されるのか
#はじめに
CodePipelineで”Manual approval”のステージを追加すると、承認/却下のレビュー時にコメントを記入することができます。
例えば、コメントに承認者の名前や却下理由等を記載したとして、過去のレビューコメントを参照したい場合にはどこで確認すればいいのかがわからなかったため探ってみました。##Manual approvalステージとは
CodePipelineのプロセスの中で、承認/却下するステージを追加することができます。これがManual approvalステージです。
以下のような画面となっていて、「レビュー」ボタンを押下するとコメントを記入する画面が表示されます。
##コメントの追加
では、以下のように、「承認します。」とコメントを入れて承認してみます。
【AWS SAA】VPC内のEC2インスタンスがインターネットに接続できない原因の備忘録
#はじめに
AWS SAAの模擬試験問題で「VPC 内のEC2 インスタンスがインターネットに接続できない原因」が出てきた。その問題解決方法について備忘録として今回載せたい。#主な原因
下記の設定ミスが、主な原因とのこと。
①セキュリティグループ
②ネットワークアクセスコントロールリスト (ACL)
③ルートテーブル
④パブリックIPアドレス#①セキュリティグループのチェック
セキュリティグループの設定で、インターネットアクセス許可が設定されていない可能性がある。
本稼働環境では、特定のIP アドレスや特定のアドレス範囲にのみインスタンスへのアクセスを許可。
テスト目的では、0.0.0.0/0のカスタムIPアドレスを指定し、すべてのIPアドレスにSSHまたは RDPを使用したインスタンスへのアクセスを許可。
イメージ画像①
Node.js でAWS Lambdaを量産する為のサンプルソースをgithubに公開してみた# AWS LambdaをNode.jsで量産アレコレ
## 概要
AWS LambdaをNode.jsで書こうと思ったときに、良く思うのが、、、– AWS SDKがPromise前提で入れ子が深くなりがち
– 継承使って汎用共通処理とオーバーライド使いたいなぁ~である。
コールドスタート対策などで、javaでの実装は圧倒的に不利ってことで、java屋がNode.jsでLambdaを書こうと思うと、~~きっと同じ事を思うに違いない。~~(偏見)
という事で、上記が出来る汎用ソースをgithubに公開してみました。
(参考投稿)
[Lambdaのコールドスタートを改めて整理する](https://qiita.com/ny7760/items/700ae917da2c5b5e3f8a)## index.js の処理構造
![indexのイメージ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660954/37a78f07-3911-41ee-1e6e-3c8c76016bb6.jpeg)
【AWS】EC2, Lighsail Apache設定ファイルの場所
#EC2
“`
cd /etc/apache2
“`#Lightsail
“`
cd /opt/bitnami/apache
“`
よく使うRedshift運用系SQL
よく使うRedshift運用系SQLや運用Tips。
GGなのですぐ忘れる + いちいちググるのに疲れたのでメモ。
随時更新。# [1] クエリ状況系
## ◆Runningクエリ確認“`sql
select pid, trim(user_name), starttime, substring(query,1,20)
from stv_recents
where status=’Running’;
“`
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/cancel_query.html##◆クエリ実行履歴
`STL_QUERY`
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_STL_QUERY.html
###クエリの全体を確認したい場合
`STL_QUERY` の querytxt カラムは、SQLが長いと途中で切れてしまう。
全体をチェックしたい場合は、`STL_QUERYTEXT` で query(クエリID)を指定して抽出。`