- 1. 【AWS】用語を整理しながら学ぶAWS – part3
- 2. AWS LambdaでAPI開発するときのパターン集
- 3. AWSのIAMユーザーでCostExplorerやBillingにアクセスできないとき
- 4. aws cliでs3に再帰的にファイルをアップロードする時の記述
- 5. Serverless Frameworkを使用して AWS Lambdaにデプロイ
- 6. AWS Lambda boto3でCognitoのユーザーを削除する
- 7. AWS Lambda boto3でWAFのIP setsを更新する
- 8. SmallTrainを使って簡単な転移学習を実行
- 9. 【Rails】AWSデプロイ中にCould not find aws-eventstream-1.1.0 in any of the sources Run `bundle install` to install missing gems.
- 10. AWS ElasticsearchService のインデックス自動削除
- 11. Python3 PermissonError解決策
- 12. AWS GlueのCrawler(クローラ)をAWS CDKで生成する
- 13. 【実験】AWS Workspacesで3つのサブネットにそれぞれ配置できるか?
- 14. serverless framework DE typescript for AWS Lambda開発
- 15. AWS でサーバー構築、アプリをデプロイ①
- 16. TerraformでAmazon API Gatewayを構築する(リソースポリシー編)
- 17. 【AWS】Windows10にAWS-CLI ver.2をインストールしてみた
- 18. ancestryはawsにデプロイしただけでは使えない
- 19. Athenaからクエリ出来てCSVダウンロードやS3から直接ダウンロード禁止する
- 20. サルでもできる!? Rails6アプリをAWS EC2にデプロイするまでの全手順【後半】(独自ドメイン, HTTPS化, S3, CloudFront)
【AWS】用語を整理しながら学ぶAWS – part3
# はじめに
この記事では
AWSのあんなことやこんなことについてまとめた記事です。
ベストプラクティスや間違いがあれば、書き直していく予定です。
今回は
NATゲートウェイの設定
サーバの設定
他、重要な用語について整理してみました。参考図書:[さわって学ぶクラウドインフラAmazon Web Services 基礎からのネットワーク&サーバー構築](https://www.amazon.co.jp/dp/B084QQ7TCF/ref=cm_sw_r_tw_dp_U_x_-vD5EbQCMD1A9)
——————————–
# NATゲートウェイとはNetworkAddressTranslation
要はアドレスの読み替えです。> グローバルアドレスからローカルアドレスへの読み替え
> AWSで例えるとパブリックIPからプライベートIPへの変換
> Ciscoなどでは静的か動的かというところまで分かれるのでここでは割愛よく、インフラエンジニアのお姉さんに
NAPTのことをNATだと注意されましたが
実際のところ、近年で
AWS LambdaでAPI開発するときのパターン集
# 結論
AWS LambdaでAPI開発をする場合は以下の4パターンが考えられます。それぞれにメリットデメリットがあるので、要件やメンバーのスキルセットなどをもとに選択することになると思います。###① Functions(別ソース)パターン
![functions pattern.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234396/a37a57da-4ab4-b301-72d9-ca3b41abfaea.png)###② Functions(同一ソース)パターン
![functions pattern2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234396/0f854adb-be5a-a915-2004-4e9c453e331b.png)###③ WebFrameworkパターン
![proxy integration pattern.png](https://qiita-image-sto
AWSのIAMユーザーでCostExplorerやBillingにアクセスできないとき
## 困っていたこと
IAMユーザで請求情報にアクセスできない
↓
毎回ルートユーザになって確認## 問題点
– めんどくさいアカウント切り替えが本当に手間だった
– セキュリティ的にまずい
ルートユーザ使うのはNG
## 解決策
Googleで検索したところ、3秒で解決。
#### やり方
①ルートユーザでログインし、AWSコンソールから「マイアカウント」に移動
②[IAM ユーザー/ロールによる請求情報へのアクセス] の横の[編集] をクリック
③[IAMアクセス有効化]チェックボックスをオンにし、[保存]をクリック
④IAMユーザで請求情報にアクセス可能に
下記リンク参照
[AWS公式ドキュメント アクセス許可の管理の概要](https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/control-access-billing.html)## まとめ
なんで今までやらなかったんだろう。。。。
aws cliでs3に再帰的にファイルをアップロードする時の記述
たまにしか使わなくて毎回忘れるのでメモとして残します。
# 再帰的にアップロードする記述
“`bash
aws s3 cp ローカルのディレクトリ名 s3://バケット名/フォルダ名 –recursive
“`アップロードのときにpublic read付ける場合は`–acl public-read`をつける
“`bash
aws s3 cp ローカルのディレクトリ名 s3://バケット名/フォルダ名 –recursive –acl public-read
“`# バケットから再帰的にダウンロードする記述
“`bash
aws s3 cp s3://バケット名/フォルダ名 ローカルのディレクトリ名 –recursive
“`# バケットからバケットへ再帰的にコピーする記述
応用してバケットからバケットへも出来ます。“`bash
aws s3 cp s3://送信元バケット名/フォルダ名 s3://送信先バケット名/フォルダ名 –recursive
“`# ついでにファイル数とかの確認
アップロードしたファイルの数があってるか等の確認に使
Serverless Frameworkを使用して AWS Lambdaにデプロイ
## 環境
* Mac OS Catalina 10.15.7
* AWS Lambda
* Serverless Framework standalone (
* Framework Core: 2.11.1 (standalone)
* Plugin: 4.1.2
* SDK: 2.3.2
* Components: 3.3.0## Serverless Framework スタンドアロンのインストール
nodeのバージョン依存に関係なく使用するため、npmでのインストールではなくスタンドアロンを使用した
[Get started with Serverless Framework Open Source & AWS](https://www.serverless.com/framework/docs/getting-started/) に記載の通り“`
curl -o- -L https://slss.io/install | bash
“`## AWSのクレデンシャルの設定
[AWS – Credentials](https:
AWS Lambda boto3でCognitoのユーザーを削除する
# はじめに
AWS LambdaでCognitoのユーザーを削除します。
ランタイムは`python`です。
環境変数`COGNITO_MAX_RESULTS`には、`50`を指定します。
ユーザープールの数が50以下である事を想定しています。
Cognitoからユーザーを削除する場合、ループ処理となり、たまにコケることがあるため、リトライ処理を追加しています。**Lambdaのスクリプト**
“`python:Lambda
import os
import boto3cognito = boto3.client(‘cognito-idp’, region_name=’ap-northeast-1′)
def handler(event, context):
user_pool_name = ‘ユーザープール名’
user_ids = [‘ユーザーID’]# Cognitoからユーザーを削除する
response = delCognitoUser(user_pool_name, user_ids)return respo
AWS Lambda boto3でWAFのIP setsを更新する
# はじめに
AWS LambdaでWAFのIP setsを更新します。
ランタイムは`python`です。
WAFは`CLOUDFRONT`のものとなるため、AWSリージョンはバージニア北部の`us-east-1`となります。
WAFのIP Setsの更新は、渡したIPアドレスのリストで上書きされるので、登録・更新・削除が同じメソッドとなります。
リスト`ip_adresses`は重複していても問題なく、WAFに登録されます。**Lambdaのスクリプト**
“`python:Lambda
import boto3waf = boto3.client(‘wafv2′,region_name=’us-east-1’)
def handler(event, context):
ip_set_name = ‘IP Sets名’
ip_adresses = [‘IPアドレス’]response = update_ip_addresses(ip_set_name, ip_adresses)
return response
def
SmallTrainを使って簡単な転移学習を実行
今回は先日オープンソース化したGeek Guild社が提供しているSmallTrainを使って
簡単な転移学習を実行したレビューをします。
(本記事はGeekGuild様より依頼を受けて書いています)記事作成にあたり公式HPに記載されているチュートリアルを参考にしています。
* [さあ、はじめよう](https://www.smalltrain.org/docs/getting-started/)
* [チュートリアル](https://www.smalltrain.org/docs/tutorials/)## 作成するモデルの概要
SmallTrainの学習デモを応用して自作の熊の画像認識を行うモデル、熊: 0 , 哺乳類(猫,鹿,犬,馬): 1 , 乗り物(飛行機,車,船,トラック): 2 として認識するモデルを作成します。## 環境構築
今回はAWSのGPUインスタンス上で実行しています。
方法については以下を参照してください。* [AWSでGPUインスタンスを使う準備](https://www.smalltrain.org/docs/tutorials/tu
【Rails】AWSデプロイ中にCould not find aws-eventstream-1.1.0 in any of the sources Run `bundle install` to install missing gems.
#EC2内でDBを作成しようとしたところエラーが出て詰まったので忘備録として書きます#
EC2内でデータベースを作成しようと下記のコマンドを実行したところ
“`ターミナル(EC2内で実行)
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ rails db:create RAILS_ENV=production
Could not find aws-eventstream-1.1.0 in any of the sources
Run `bundle install` to install missing gems.
“`
とエラー
どうやらどのソースでもaws-eventstream-1.1.0が見つかりませんでした`bundle install`を実行して、不足しているgemをインストールします。と言われているよう…
まずGemfileをのぞくが
“`Gemfile
gem “aws-sdk-s3”, require: false
“`一番下に記述はしっかりあることを確認。
Gemfile.lockをのぞきにいくが
63行目に以下の記述は
AWS ElasticsearchService のインデックス自動削除
(ただのメモです)
IMSで30日でインデックス削除するインデックスポリシーを作成し、インデックステンプレートでインデックス作成時に自動でアタッチするようにするKibanaやKibanaのDev Toolsで操作
### インデックスポリシー作成
インデックスポリシー名:all_delete
内容:30日で削除![スクリーンショット 0002-11-27 8.42.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/b325df19-5406-bd36-6ac1-335b2732bc1e.png)
“`json
{
“policy”: {
“policy_id”: “all_delete”,
“description”: “Demonstrate a hot-warm-delete workflow.”,
“last_updated_time”: 1606349256304,
“schema_versio
Python3 PermissonError解決策
今回python3で簡易アプリケーションを作成後AWS EC2でデプロイしようとした時に発生したエラーについて原因と解決策を書いてみました
* * *
## エラー内容Djangoの管理サイトからPostsアプリケーションで投稿を行うと
![スクリーンショット 2020-11-27 7.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/368036/54d26fa3-04b0-6682-dd99-396d6c789290.png)
PermissonError
![スクリーンショット 2020-11-27 6.41.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/368036/39a352bd-d3af-7fb0-0cf7-4708694f510a.png)* * *
## 原因[Filezilla](https://filezilla-project.org/ “Filezilla”)
AWS GlueのCrawler(クローラ)をAWS CDKで生成する
# 概要
* S3にたくさん投入したデータをAthenaでサクッと分析・集計できるようにする際、Glue Crawlerが非常に便利。
* CDKで構築した例はまだあまりなかったので記事化。# S3の設定について
* [先日の記事](https://qiita.com/Kit-Ok/items/fcc9a0b4e135168c1d36)で考察したが、S3はいまのところ手動設定したものを利用しても良いように思う。# Glueの設定について
* 上記の理由より、S3はすでにあるものを利用する形にする。
* Roleについては、[公式](https://docs.aws.amazon.com/ja_jp/glue/latest/dg/crawler-prereqs.html)(日本語が怪しいですが)の通り、マネージドポリシーの`AWSGlueServiceRole`を付与し、さらにインラインポリシーで`対象のS3パスへのGetObject・PutObjectを許可`するようにします。
* [CDKのConstructは「High Level Construct」「Low Level
【実験】AWS Workspacesで3つのサブネットにそれぞれ配置できるか?
# AWS Workspacesで3つのサブネットにそれぞれ配置できるか?
On-PremにあるAD環境をAWSにリフトアップしてみようと検証を試みた記録です
## 前提条件
* 同一認証基盤を利用したい
* ネットワークセグメントが3つある## 検証環境のイメージ
以下のような構成で検証を進めました。
機能としてはセカンダリといいつつつ、
ターシャリ(3番目)もアタッチ可能なVPCのセカンダリCIDRを使います。
[Associating a secondary IPv4 CIDR block with your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#add-ipv4-cidr)![AWS Integration ap-northeast-1 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182636/0d0951a7-aa4c-6add-19b3-2ccb9e
serverless framework DE typescript for AWS Lambda開発
###既に作ったserverlessプロジェクトにTypescriptを入れたい
現在AWSでSlack Botを動かすために、開発環境を作れるserverless絶賛勉強中です。
プロジェクトを作る時にtypescript対応するのは見つかったのですが、
もう作っちゃったプロジェクトに追加する方法は見当たらなかったのでまとめます。プロジェクト作成時の場合はcreateするときに`-t aws-nodejs-typescript`というテンプレートを指定すればいいらしい。次はそっちでやってみます。
参考:[ServerlessでTypeScriptの開発環境を作る](https://qiita.com/iewori/items/837dbe4edb77426a11d9)#serverlessプラグインを追加
https://www.serverless.com/plugins/serverless-plugin-typescript/
serverless-plugin-typescriptという素敵なプラグインを見つけたので使います。>**Features**
・Ze
AWS でサーバー構築、アプリをデプロイ①
# 概要
簡単にAWSでサーバー構築をしてアプリケーションをデプロイさせる
今回は ネットワークの構築 まで進めようと思います!# リージョンの変更
“`
右上のリージョンから 「アジアパシフィック(東京)ap-northeast-1」 に変更
“`# VPC領域の作成
VPC とは(Virtual Private Cloud)の略
VPC を作成すると ユーザー毎に隔離されたネットワーク空間が作れますAWS上のVPC領域はプレフィックス長が16以上を指定する必要があるので
CIDR ブロックは 10.0.0.0/16 にする必要がある“`
トップ画面 から 「VPC」 を選択
「名前タグ-オプション」 :好きな名前を入力
「IPv4 CIDR ブロック」: 今回は 「10.0.0.0/16」
「IPv6 CIDR ブロック」: 「IPv6 CIDR ブロックなし」 を選択
「テナンシー」:デフォルト を選択(専有にすると追加料金がかかる)
「VPCを作成」 を選択
“`# サブネットの分割
CIDRブロックを更に小さく分割して使うのが一般的であり、細
TerraformでAmazon API Gatewayを構築する(リソースポリシー編)
# はじめに
API Gateway+Terraform記事第4弾。
[TerraformのAWSプロバイダの3.16.0](https://github.com/hashicorp/terraform-provider-aws/blob/master/CHANGELOG.md#3160-november-18-2020)で2020/11/18にリソースポリシーの Terraform リソースが使えるようになったので、今回は、IPアドレスによる制限をさっそく試してみる。# Terraform
とはいっても、普通にIAMポリシーを書くだけである。Condition(IpAddress)を使って許可をしてするよう、こんな感じで定義しよう。
“`HCL
resource “aws_api_gateway_rest_api_policy” “test” {
rest_api_id = aws_api_gateway_rest_api.test.id
policy = data.aws_iam_policy_document.test.json
}data “a
【AWS】Windows10にAWS-CLI ver.2をインストールしてみた
#はじめに
AWSを勉強するために、ノートPCにAWS-CLIをインストールしてみたので、備忘として残しておきます。###PCスペック
* OS:Windows 10 Home(バージョン 20H2(OSビルド 19042.630))
* CPU:Intel Core i7-10510U 1.80GHz(2.30GHz)
* RAM:16.0GB#目次
1. インストール
2. 設定#1. インストール
基本的には以下の公式サイトの通りインストールを進めればOKです。
[Windows での AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html)##前提条件
インストールする前に事前に以下の確認が必要です。
* 64ビットバージョンのWindows XP以降のOS
* ソフトウェアインストール用の管理者権限##MSIインストーラをダウンロードする
最新版のインストーラをダウンロードしま
ancestryはawsにデプロイしただけでは使えない
# 1.どんな状態だったか
ancestryを利用して、カテゴリー機能を実装、ローカルでは動くのに本番環境で反映されないという状態# 2原因
ancestryを使うためには、本番環境でもローカルと同じ様に
db migrateし、seedを読み込まなくてはならない# 3解決方法
まずdb migrateします“`
$ cd var/www/app名/current
$ rake db:migrate RAILS_ENV=production
“`
上手くいかない時はdbをドロップしもう一度クリエイトし直す“`
$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop$ rake db:create RAILS_ENV=production
“`
もう一度migrateします。次にseedを反映させます。
“`
$ rake db:seed RAILS_ENV=production
“`
以上になります。# 4最後に
自動デプロイをして
Athenaからクエリ出来てCSVダウンロードやS3から直接ダウンロード禁止する
ただのメモです。
AthenaとGlueのリストと読み取り権限ポリシー作ってアタッチ
S3の読み取り権限ポリシーを、calledviaを使いAthenaからだけ許可する形で作成してアタッチ
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“s3:PutObject”,
“s3:GetObject”,
“s3:ListBucketMultipartUploads”,
“s3:AbortMultipartUpload”,
“s3:CreateBucket”,
“s3:ListBucket”,
“s
サルでもできる!? Rails6アプリをAWS EC2にデプロイするまでの全手順【後半】(独自ドメイン, HTTPS化, S3, CloudFront)
この記事では,画像投稿機能の付いた `Rails 6` のアプリを `AWS EC2` にデプロイするまでの全過程を解説します。
[【前半】](https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36) でRailsアプリのデプロイはひとまず完了しましたが,まだまだすべきことがたくさんあります。続きも気を抜かずに頑張りましょう!
章 | タイトル
— | —
| [【前半】](https://qiita.com/take18k_tech/items/5710ad9d00ea4c13ce36)
1章 | はじめに
2章 | VPC
3章 | RDS
4章 | EC2
5章 | サーバー構築
6章 | デプロイ(Capistrano)
| 【後半】 <-- こちら 7章 | 独自ドメイン 8章 | HTTPS化(ACM, ALB) 9章 | デプロイ関連事項 10章 | S3 11章 | CloudFront 12章 | 削除方法 ## 7. 独自ドメイン Railsアプリを公開することができましたが,現状では2