- 1. 【AWS】コンソール上で「amazon-linux-extras list」が動かないとき
- 2. AWS Cloud Practitioner について勉強してわからないことをまとめた ~モジュール2~
- 3. AWS App Runner と ECS それぞれで同じアプリをデプロイして比較してみる
- 4. API Gateway のアクセスログを取得してみた
- 5. aws S3 互換ストレージ MinIO 入門 〜 mc.exe を試しに動かしてみる
- 6. API Gateway から SQS に連携してみた
- 7. AWS SAM – Black Belt
- 8. AWS サービスを操作する方法&IAMロールの利用について
- 9. 超簡単!Dockerを使ってサクッとAWS ECR + AppRunnerにPython + Flask環境
- 10. 【備忘録】サーバーレスなお問い合わせフォームを実装してみた
- 11. SQLServerのバックアップをAmazon S3に保存する
- 12. EC2インスタンスの複製と再デプロイ
- 13. MacからのSSH接続でWARNING: UNPROTECTED PRIVATE KEY FILE!と表記されてEC2にログインできない!
- 14. 【AWS】EFSの構築 + EC2からのアクセス確認まで
- 15. AthenaとQuicksightでログ分析する時のつまづきと解消
- 16. EC2起動時に、自身も監視するCloud Watch Alarmを自動で作成する
- 17. AmplifyでGraphQLを使いつつ、Lambdaを非認証ユーザーで叩く(Typescript)
- 18. Minioを用いてAWSアカウントなしでS3接続(javaSDK)を確認する方法
- 19. awsをterraformで構築するには(基本編)
- 20. VPC-S3の環境で、不正なデータ送信をAlarmする環境を、CloudFormationで構築する
【AWS】コンソール上で「amazon-linux-extras list」が動かないとき
AWSの扱い方を学習したくて、Udemyの「[AmazonWebServiceマスターコースVPC編](https://airitechjp.udemy.com/course/amazon-web-service-vpc/)」を受講してました。
セクション4の動画15にて
WindowsPowerShellから、AWSのEC2サーバーにSSH接続をした後、nginxをamazon-linux-extrasコマンドでインストールしようとしたところ、画面が固まってしまいました。“`
sudo amazon-linux-extras list
(固まってしまう、、、)
“`
`which amazon-linux-extras`で確認しても、ソフトウェアはインストールされているし、helpコマンドとinfoコマンドは問題なく動きます。
しかし、installコマンドとlistコマンドはなぜか固まってしまいます。EC2インスタンスやVPCを作り直してもダメだったので、3~4時間くらい格闘したのですが、、、
なんと解決方法は***待つ***ことでした、笑4分くらい待ったら、正し
AWS Cloud Practitioner について勉強してわからないことをまとめた ~モジュール2~
## はじめに
[「AWS Cloud Practitioner について勉強してわからないことをまとめた ~モジュール1~」](https://qiita.com/dai_chi/items/9744c7935d00206ffc3a)の続きです。
僕自身が学んでいて不明だった箇所を纏めておきました。
ぜひともこれから学ぶ方への参考になればとおもいます。参考:[AWS Cloud Practitioner Essentials(Japanese)](https://explore.skillbuilder.aws/learn/course/1875/play/27620/aws-cloud-practitioner-essentials-japanese-ri-ben-yu-shi-xie-ban)
## Amazon Elastic Compute Cloud (Amazon EC2)
サイズ変更可能で安全なコンピュティングキャパシティーを Amazon EC2 インスタンスとしてクラウド内で提供する。#### 従来のオンプレミスのリソース
– ハードウェアを購入するために
AWS App Runner と ECS それぞれで同じアプリをデプロイして比較してみる
こんにちは、Masuyama です。
[別な記事](https://zenn.dev/tmasuyama1114/articles/60c1309d0fb1a8)では、AWS App Runner を使って手軽にコンテナ式アプリをデプロイできることを学びました。
その時は確かに少ないステップでデプロイできることは分かっていただけたと思うのですが、別なサービス (ECSとか) でデプロイする時との違いが分かりにくかったかもしれません。そこで、App Runner と ECS の**それぞれで同じコンテナアプリをデプロイ**し、App Runner がどれだけ簡単かを分かっていただこうかと思います。
前回は Workshop に従いましたが、今回はPython の軽量 Web フレームワークの一つである **Flask** を App Runner でデプロイしてみましょう。—-
# 0. 前準備 (共通手順)
App Runner 版、ECS 版のどちらでも共通となる **コンテナイメージの準備** だけは共通手順として実施します。## 0-1. ECR 作成
コンテナ
API Gateway のアクセスログを取得してみた
# はじめに
[前回の記事](https://qiita.com/sugimount-a/items/6b9b7bb39eca9592bf5a)では、API Gateway から直接 SQS に連携する方法を確認しました。Lambda を挟んでいない分シンプルになったメリットがありますが、Lambda 側でアクセスログを出すことが出来ません。そこで、API Gateway 側でアクセスログを出力することが出来ます。リクエストの Body などを含めた出力もできますので確認していきましょう。
# API Gateway の IAM Role 設定
AWS アカウントの中で、リージョン単位で共有される CloudWatch Logs の出力に使う IAM Role の設定が必要です。
API Gateway 用の IAM Role を作成し、ARN を設定しておきます。
![image-20220110003713646.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/47b94
aws S3 互換ストレージ MinIO 入門 〜 mc.exe を試しに動かしてみる
## S3 の aws コマンドの代わりとなる mc コマンドを試す
MinIO は aws クラウドのストレージ S3 と互換性があるサービスですが aws のクラウドを使う必要はなく、自分のサーバーにインストールして簡易的な オブジェクト ストレージ(ファイル サーバー)を構築できます。
ここでは、S3 の aws コマンドの代わりとなる MinIO のクライアント mc を学習するための環境を Windows で簡単に作る方法を紹介します。たとえば、__バケットを作成する__ __aws__ __mb__ __コマンドに相当する__ __mc__ __mb__ __コマンド__ を簡単に試すことができるようになります。ほかにも、mc ls コマンドで一覧することや mc cp コマンドでアップロード・ダウンロ
API Gateway から SQS に連携してみた
# はじめに
API Gateway には、AWS Service の Integrate 機能があります。例えば、フロントエンドから API Gateway を通じて SQS にデータを格納した場合、API Gateway → Lambda → SQS という構成が考えられます。この構成でも問題はないのですが、よりシンプルに API Gateway → SQS といった形で直接 SQS にデータを格納できます。シンプルなアーキテクチャにすることで、より堅牢で安定したサービス提供に貢献できるメリットがあります。
今回の記事では、直接 API Gateway → SQS へデータを格納する構築手順を確認してみましょう。
# IAM Role の作成
まず、API Gateway に設定する IAM Role を作成していきます。IAM Role の作成画面で API Gateway を選択します。
![image-20220109203906856.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
AWS SAM – Black Belt
# 背景
下記記事で Step Functions の構築には SAM がかなり便利ということを実感したので、もう少し深堀りして学習すべく、Black Belt の資料を見てみる。
https://dev.classmethod.jp/articles/aws-sam-step-functions/
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model from Amazon Web Services Japan# 読んでみる
## AWS SAM とは
### Serverless な Application
… 何らかの「イベント」に応じて Lambda 関数を起動し処理を行う性質を持つ### サーバーレスを取り巻く主なコンポーネント
– 外部 I/F
– REST API: Amazon API Gateway
– GraphQL: AWS AppSync
– ストリーム
– 流入
AWS サービスを操作する方法&IAMロールの利用について
AWSを操作する方法は下記三つあります
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2398199/f7a4e3f6-8872-d83a-fca0-e57ab2d32f5d.png)各IAMユーザは「アクセスキー/シークレットアクセスキー」のペアを作成.保持することができます。
ただし、「アクセスキー/シークレットアクセスキー」はAWS CLI,AWS SDKの認証情報として
利用することができますが。
認証情報の更新問題や流出の危険性などから推奨されていません。
その代わりに、IAMロールの利用が推奨されています。
IAMロールには、IAMユーザと同様に、
AWSの各種リソースに対するアクセス可否を設定できます。
IAMロールは、EC2インスタンスなどに割り当てることができ、
IAMロールを割り当てられたEC2インスタンス上のプログラムは
「アクセスキー/シークレットアクセスキー」がなくても
IAMロールに許可されているAWSのリソースにアクセスできます。
ただし
IAMロール
超簡単!Dockerを使ってサクッとAWS ECR + AppRunnerにPython + Flask環境
タイトルは昔の記事をパクりました。以下の記事でプロニチをGCP(Cloud Run)からAWS(App Runner)に移行するにあたりApp Runner周りをまとめてみました。所々、固有名詞でpronichiとなっていますが私のプロジェクト名になるので参考にする方は任意で変更してください。
https://qiita.com/morita-toyscreation/items/dc55b25ab4047c473837
# 事前準備
1. AWS Command Line 導入
2. DockerイメージとFlask作成## AWS Command Line 導入
既に導入済だと思いますが念の為記載
AWS Command Line をインストール・更新“`bash
$ curl “https://awscli.amazonaws.com/AWSCLIV2.pkg” -o “AWSCLIV2.pkg”
$ sudo installer -pkg AWSCLIV2.pkg -target /
“`AWS Command Line 初期設定
予めIAMでユーザー作
【備忘録】サーバーレスなお問い合わせフォームを実装してみた
##背景
友達が申し込みフォームを利用してイベントの参加を募っていたが、申し込みの後、アドレスに返事がなくて文句言われてるのを聞いて、自動返信も大切なんだなぁと思い、作ろうと思いました。#サーバーレスなお問い合わせフォームって何?
AWS上のサービスを利用し、サーバーレス(サーバーを構築しないで)実装してみました。
AWSで言うとEC2を利用せずに、アプリを構築したイメージです。
Webサーバーを「S3」と「Lambda」、「API Gateway」、メールサーバーを「SES」で設定をしました。##やり方
下記サイトを見たらできました。
ネットの海は宝物庫S3 静的ウェブサイトにサーバーレスなお問い合わせフォームを実装してみた(Amazon SES + AWS Lambda + API Gateway)
https://dev.classmethod.jp/articles/serverless-mailform-s3-website-hosting/筆者が作ってみたサイト
http://portfolio-regards.s3-website-ap-northe
SQLServerのバックアップをAmazon S3に保存する
#はじめに
こんにちは、山田です。今年の目標として、学んだこと実装したことを記事に書いていきたいと思います。
今回は、現在関わらせていただいている案件でSQLServerのバックアップをS3に保存を実装したので、その手順について記載していこうと思います。
よろしくお願いいたします。#構成図
今回使用するAWSリソースは下記の通りです。|AWSリソース|個数|
|—|—|
|VPC|1|
|Subnet|2|
|Internet Gateway(IGW)|1|
|EC2|1|
|RDS(SQLServer)|1|
|S3|1|全体構成図は下記の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096361/fe4b60ca-57d6-a93e-3a16-bc9279ebab09.png)
① Internet Gateway(IGW)を介して、PublicSubnetに配置しているEC2にログインする。
②「SQL Server Management Stud
EC2インスタンスの複製と再デプロイ
EC2インスタンスの複製方法と、その際に発生した問題と解決方法についてご紹介していきます!
##初めに
###何故EC2インスタンスを複製する必要があったのか?
・最初は問題なくEC2インスタンスにアプリをデプロイできたが、VPCのIPv4アドレスを/16で切ってしまっていたことで、その後サブネット作成時にIPv4アドレス選定の計算がめんどくさくなった。
→VPCのIPv4アドレスを/20で切って、サブネットを/24で切っておくと、後にサブネットを追加で作成する際にネットワークの切り分けが楽。###何故サブネットのIPv4アドレスを/24で切っておくといいのか?
簡単にいうと、サブネットマスクを/20と/24で切った場合では、別サブネットを作成する際に選べるアドレスが以下のようになります。・例 172.31.32.0/24
→末尾の0のみが可変できる数字になる。
つまり、別のサブネットを作成する際、`172.31.32.0`の`32を33や34のように一つずらすだけ`でネットワークを切り分けることができるので計算が楽なんです!・例 172.31.32.0/20
この場合
MacからのSSH接続でWARNING: UNPROTECTED PRIVATE KEY FILE!と表記されてEC2にログインできない!
#エラー内容
AWSで新しくEC2、キーペアを作成。
仮想サーバにSSHでアクセス、ログインしようとするが、“`terminal
ssh -i ~.pem ec2-user@~(EC2のIPアドレス)
“`以下のエラーが表示された。
“`terminal
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘~.pem’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “~.pem”: bad permissions
【AWS】EFSの構築 + EC2からのアクセス確認まで
## きっかけ
– Lambdaで/tmp上限の500MBを超えるファイルを扱う必要があり、その動作確認のため。## 構築Step
1. SSH可能なVPC,EC2の構築
1. EFS構築
1. EC2からEFSへのアクセス準備、動作確認### 1. SSH可能なVPC,EC2の構築
– 適当なVPCを作成
![スクリーンショット 2022-01-09 0.13.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479886/9878ac22-3513-ac69-fa49-575d98f6abdc.png)– VPCでDNSホスト名設定を有効化
![スクリーンショット 2022-01-09 0.13.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479886/185f0600-848f-ae12-c66f-cdba98b66629.png)– 適当なサブネットを作成
![スクリーンショット 202
AthenaとQuicksightでログ分析する時のつまづきと解消
Apache HTTPサーバーのアクセスログをS3に配置してAthenaでテーブル作成、QuickSightで可視化をしようと試み、つまづいたポイントと解消方法を恥ずかしげもなくメモとして残します。
###サンプルのログ
下記のようなログをサンプルに試みました。“`
xx.xx.xx.xx – – [dd/Sep/202x:08:00:31] “POST /category.screen?categoryId=STRATEGY&JSESSIONID=xxxxx HTTP 1.1” 200 2571 “http://www.samplesample.com” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.28) Gecko/20120306 YFF3 Firefox/3.6.28 ( .NET CLR 3.5.30729; .NET4.0C)” 830
“`
###データの構造が知りたい
まずApacheのログには何が書かれているのだろうか、データを分析しようとすると対象となるデータの構造を抑えなければなりま
EC2起動時に、自身も監視するCloud Watch Alarmを自動で作成する
## What’s This
userdata使用で、起動時にcloudwatch alarmを作りました。要件的には、以下
“`
・OSはUbuntu(AWS公式イメージ)
・自分のCPUメトリクスを監視するalarm
・アラーム名に自身のインスタンスIDを付与
・例 ec2-i-aaaaaaa-cpu-alarm
“`## Userdata
Credentials情報はベタ張りなので、もっとセキュアな方法があるかも
アラーム名に自身のインスタンスIDを付与するのは、環境変数使って通しました“`
#!/bin/bash
curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip”
sudo apt install unzip
unzip awscliv2.zip
sudo ./aws/install
export InstanceId=`curl http://169.254.169.254/latest/meta-data/instance-id -w “
AmplifyでGraphQLを使いつつ、Lambdaを非認証ユーザーで叩く(Typescript)
## 概要
AWS Amplifyにて非認証ユーザーで外部のAPIを叩いて、JSONを引っ張ってくるところを作りたかったが、色々詰まったのでシェア## 環境
– “aws-amplify”: “^4.3.12”,
– “typescript”: “~4.1.5”
– “vue”: “^3.0.0”## Amplifyの各環境を作る
“`ruby:cmd
amplify configure
amplify init
amplify add api
amplify add function
“`このあたりは[この辺](https://amplify-sns.workshop.aws/ja/)を見れば詰まらないと思う。
ファンクション名は`readList`とした。## Authを設定する
ここからがポイント。
まず、認証の方法だが、非認証ユーザーでのアクセスを許可する場合は、API KeyとIAMがあるが、
API Keyは日付制限(最長365日)があるので、IAMとする。“`ruby:cmd
amplify add auth
“`すると、問が出てるく
Minioを用いてAWSアカウントなしでS3接続(javaSDK)を確認する方法
#概要
この記事では、AWSのアカウントなしでもAWS S3 接続を確認できる方法を記事にしてみました。
Minio自体は、AWS S3 と互換性があるマルチクラウドオブジェクトストレージのOSSとして知られています。
現場の業務上 S3 に対してJavaを用いて接続する必要があり自宅で無料で接続確認がしたくてminioを採用しました。
使用方法をwebで調べたのですが、出てくるのはdockerを用いて簡単に構築することができることやMinioが提供しているライブラリを用いて接続する方法しかなく、AWS SDKで接続する方法が見つからなかったので今回挑戦し成功したので記事にしてみました。minioって何?っていう方は以下の記事や公式のサイトを見ると理解できると思います。
https://min.io/
https://dev.classmethod.jp/articles/s3-compatible-storage-minio/aws s3って何?という方は以下の記事や公式のサイトを見ると理解できると思います。
https://aws.amazon.com/jp/s3/
htt
awsをterraformで構築するには(基本編)
#プロバイダーを決める
“`
terraform {
required_version = “>= 1.0.1”
required_providers {
aws = “>= 3.0”
}
}provider “aws” {
access_key = var.aws_access_key
secret_key = var.aws_secret_key
region = var.aws_region
}
“`#変数定義
terraform.tfvarsにて“`
aws_access_key=”xxxxxxxx”
aws_secret_key=”xxxxxxxx”
aws_region=”xxxxxxxx”
“`variables.tfの中で
“`
variable “aws_access_key” {
type = string
}variable “aws_secret_key” {
type = string
}variable “aws_region” {
type = string
VPC-S3の環境で、不正なデータ送信をAlarmする環境を、CloudFormationで構築する
# はじめに
以前作成した、[VPCの内部から不正なデータ送信のアラームを送信する環境](https://qiita.com/a_b_/items/e7d0d60d356355dcf5b5)と、[S3の不正アクセスを検出する環境](https://qiita.com/a_b_/items/2d2c6de3c4c7353c4dca)を、一つにしたCloudFormationを作成しました。# 構成
今回も、複数の環境を想定して、「共通で使うリソース」と「個別の環境で使うリソース」で分けて作成しました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/11a360b7-ebf5-401d-5b96-0696f1d5a551.png)
以前と少し異なる点は、VPCとCloudTrailにアタッチさせるIAMロール(CloudWatch Logs出力権限)を共通にしました。
それ以外のリソース等は、以前([VPC](https://qiita.com/a_b_/items/e