- 0.1. NoMethodError (undefined method `upload’ for nil:NilClass):の解決法。
- 0.2. terraformでiam roleにpolicyをアタッチする時のmanaged_policy_arnsとは
- 0.3. AWS CLIで複数アカウントを使い分ける。
- 0.4. AWS SQS 一人スキルアップセミナー
- 0.5. 話題のAWS App RunnerをPython3 × Flaskで試してみる
- 0.6. AWS Application Migration Serviceによるサーバー移行とCloudEndureとの比較
- 0.7. AWS CLIでEC2のIAMRole作成方法
- 0.8. AWS App Runner を CLI から試す
- 0.9. Fargateでphp-fpmのログを出力する
- 0.10. Elastic IP をEC2インスタンスに関連付けるとhttpリクエストができなくなった話
- 0.11. TerraformでAWS App Runnerを爆速構築してみる
- 0.12. 【AWS】EC2インスタンスのユーザーデータの設定方法
- 0.13. AWS主要サービス選択検討表(サービス公開、ストレージ(画像の保存先など)、データベース)
- 0.14. 【AWS】1か月の勉強でクラウドプラクティショナー900点取った合格体験記
- 1. はじめに
- 2. 試験結果
- 3. 受験前の状態
NoMethodError (undefined method `upload’ for nil:NilClass):の解決法。
AWSのS3の導入過程でで画像を投稿すると、上記のエラーが。
環境変数のキーを確認しても間違いは無かったです。
“`
def create
@item = Item.new(item_params)
if @item.save #<=ここでエラーが出ます redirect_to root_path else render action: :new end end ``` エラーが文をコピーして検索すると、同じようなエラーの記述がありました。環境変数を使えるようにするためのコマンドsource ~/.zshrcを忘れていただけでした。
terraformでiam roleにpolicyをアタッチする時のmanaged_policy_arnsとは
#はじめに
terraformを使ってAWSのIAMを管理する際、ロールに管理ポリシーをアタッチする際にはaws_iam_role_policy_attachmentを使用していましたが、aws_iam_roleのmanaged_policy_arns引数を利用してもアタッチができるため、両者の違いは何か調べてみました。#aws_iam_role_policy_attachmentを用いたポリシーのアタッチ
aws_iam_role_policy_attachmentを用いてロールにポリシーをアタッチする方法は以下の通り。
“`hcl
resource “aws_iam_role” “role” {
name = “test-role”assume_role_policy = <
AWS CLIで複数アカウントを使い分ける。
# はじめに
開発用環境、本番環境など複数の環境を管理している方も多いかと思いますが、同じ端末で複数環境のアカウントを使い分ける方法を記載します。# AWS CLIのインストール
以下から自分の環境に合ったAWS CLIのインストーラをダウンロードしてインストールします。– [AWS コマンドラインインターフェイス](https://aws.amazon.com/jp/cli/)
以下コマンドを実行し、バージョン表示が出ればインストール完了です。
“`shell:aws_cliバージョン確認
aws –version
“`“`shell:表示例
aws-cli/2.1.38 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
“`# IAMユーザの作成
AWSにIAMユーザを作成していないようであれば作成しておきましょう。`IAM`から新規ユーザを作成するだけですが、`aws cli`で使うので作成時に「**プログラムによるアクセス**」はチェックするようにしましょう。
![capture_19042021_08
AWS SQS 一人スキルアップセミナー
# 初めに
AWSの資格勉強で SQS について問われることが多かったのですが、実際に触ったことがなく、どういった操作方法なのか気になっていました。また、試験で勉強したことがあるという段階からステップアップしたかったということもあり使ってみました。
# やったこと
SQS経由でテストデータをDynamoDBに登録することをしました。
**EC2 → SQS → Lambda → DynamoDB**
– EC2
– メッセージを SQS に送信する
– SQS
– EC2からメッセージを受信し Lambda のトリガーとなるキューと、デッドレターキューを用意する
– Lambda
– SQSのメッセージの受信をトリガーに DynamoDB にテストデータを登録し、メッセージを削除する# EC2での操作
AWS CLIを 使って SQS にメッセージを送信します。
## メッセージを送信
送信のコマンドは `aws sqs send-message` です。
– `–queue-url`
– キューのURLを渡す– `–message-b
話題のAWS App RunnerをPython3 × Flaskで試してみる
https://www.youtube.com/watch?v=HJsULvSJWes
## 概要
つい先日AWSから発表されたApp Runnerを試してみたのでメモ書き。
巷では「GCPの[Cloud Run](https://cloud.google.com/run)に似た感じのもの」と言われているみたいですが、僕はそちらのサービスを使った事がないため、今回はなかなか新鮮でした。
実際の体験やドキュメント読んだ上でざっくり説明するなら、
アプリのソースコードを渡すだけで簡単にデプロイ可能かつ、面倒なインフラ設定(ネットワーク、オートスケーリング、ロードバランシング、SSL、CI/CDなど)は全てAWS側が勝手にやってくれるサービス
といった感じでしょうか。(違ったらごめんなさい…。イメージ的にはLambdaに似てるかも)
通常、何かアプリをデプロイしようと思ったら諸々の手順を踏む必要があったりしますが、App Runnerを使う場合、
– GitHubと連携してソースコードをインポート
– ちょっとした設定(C
AWS Application Migration Serviceによるサーバー移行とCloudEndureとの比較
## はじめに
新しい移行用サービスである AWS Application Migration Service (AWS MGN) がリリースされました。
東京リージョンでも利用可能になっています。https://aws.amazon.com/jp/application-migration-service/
2019年に CloudEndure が AWS により買収され、CloudEndure Migration および CloudEndure Disaster Recovery が AWS サービスとして利用可能でしたが、専用のコンソールを介してアクセスする必要がありました。AWS MGN は CloudEndure Migration に基づいた後継サービスとなっており、AWS コンソールに完全に統合されています。
## どの移行サービスを使えばいい?
以下のページに記載されているとおり、まずは AWS MGN の利用を検討してください。https://aws.amazon.com/jp/application-migration-service/when-to-c
AWS CLIでEC2のIAMRole作成方法
CLIでEC2のIAMRoleを作成する際に初心者がハマったポイントの備忘録です。
AWSの公式ドキュメント以外に記事があまり見当たらなかったので、まとめてみました。##コンソールとCLIの違い
CLIでEC2のIAMRoleを作成するにあたって、最初は以下の手順で作成しようとしてました。
Policy作成
Roleの作成
RoleにPolicyをアタッチ作成時にエラーが出てきて困惑。。。
>A client error (MalformedPolicyDocument) occurred when calling the CreateRole operation: Has prohibited field Resource調べてみると、***インスタンスプロファイル***を意識しないとCLIでは作成できないっぽい
コンソールでの作成では自動的にインスタンスプロファイルが作成されるとのこと。インスタンスプロファイルも知らなかったので、調べました。
(知らないことが多すぎる、、、)作成するIAMRoleはEC2のRoleだよと関連づけるものがインスタンスプロファイルな
AWS App Runner を CLI から試す
既に各所で話題ですが、マネージドなウェブアプリのデプロイサービス(で良いのかな)、App Runner が AWS からリリースされました。n番煎じになりそうですが、この記事では、AWS CLI から App Runner を試してみます。
## バージョン
なお、記事投稿時点 で最新の AWS CLI v2 系 では、App Runner がまだサポートされていないため、v1 系 の AWS CLI で試しています。じきに v2 系 にも App Runner のサポートがマージされると思いますが、おそらく v1 と似た手順で使えるものと思われます。v1 系 では、[1.19.75](https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst#11975) で App Runner への対応が取り込まれています。
“`
C:\Users\yoichi> aws –version
aws-cli/1.19.78 Python/3.6.0 Windows/10 botocore/1.20.78
“`## 事前準備
Fargateでphp-fpmのログを出力する
はまったので。下記が必要。
#php-fpmの設定
“`
[global]
error_log = /proc/self/fd/2
log_limit = 8192
daemonize = no[www]
access.log = /proc/self/fd/2clear_env = no
catch_workers_output = yes
decorate_workers_output = no
“`– error_logをstdoutにリダイレクト
– daemonizeをnoにしておかないとフォアグラウンドプロセスにならない。
– access_logもstdoutにリダイレクト
– catch_workers_outputをyesにすると php://stdout と php://stderr をerror_logに出力する。
– decorate_workers_outputをnoにすると余計なprefixを削除してくれる。
– clear_envをnoにしないとIAMRoleを使ったS3へのアップロードに失敗する。(clear_envがyesの場合は認
Elastic IP をEC2インスタンスに関連付けるとhttpリクエストができなくなった話
Elastic IP をEC2インスタンスに関連付けるとEC2のパブリック IPv4 アドレスが変わってしまいますので、httpリクエストのパラメータのURLにパブリック IPv4 アドレスが含まれている場合は注意が必要です。きちんとドメインを取得していればそもそも関係のない話ではありますが、そのままEC2を試すだけといった時には起こりうるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630191/cd7e91cd-aee9-aabe-4130-30b53f9b8e95.png)
TerraformでAWS App Runnerを爆速構築してみる
# はじめに
2021/5/19に突如登場したAWSの新サービス。
これまで ECS Fargate や Lambda といった実行基盤と同じような感じで、高い抽象度で数クリックでお手軽に構築できることがウリだ。しかも、なんと[ローンチのその日のうちに Terraform がキャッチアップしてる](https://github.com/hashicorp/terraform-provider-aws/blob/main/CHANGELOG.md#3410-may-19-2021)ではないか!
これは、これまでそこそこ大変だったコンテナ環境の構築がどれくらいお手軽になったのか試さないワケにはいかないだろう!
# コンテンツとコンテナの準備
今回は、自分で作った Nginx の Web サービスを公開するという前提にしてみよう。
なので、テキトーなコンテンツを作って Nginx のコンテナに詰め込むようにする。“`contents/index.html
はじめてのTer
【AWS】EC2インスタンスのユーザーデータの設定方法
#プログラミング勉強日記
2021年5月22日
[昨日の記事](https://qiita.com/mzmz__02/items/766f7240bc9ca67054a7)でユーザーデータについて扱ったが、スクリプトの書き方を備忘録として残す。#設定するスクリプト
ユーザーデータはEC2インスタンス作成の`ステップ3: インスタンスの詳細設定`の下の方にある`高度な詳細`をクリックすると出てくる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/642821/741cc240-95b6-b5b0-aa8e-24b8ce51d091.png)
“`:httpsをインストールしてEC2起動後にWebサーバーを起動する
yum install -y httpd
/etc/init.d/httpd start
“`“`:ホスト名を変更する
sed -i ‘s/^HOSTNAME=[a-zA-Z0-9\.\-]*$/HOSTNAME=ホスト名/g’
“`“`:ネットワー
AWS主要サービス選択検討表(サービス公開、ストレージ(画像の保存先など)、データベース)
#はじめに
以下表は、
[AWS の基礎 – 主要概念](https://aws.amazon.com/jp/getting-started/fundamentals-core-concepts/?e=gs2020&p=gsrc)
の『パフォーマンス効率化』=>『設定』を表にしたものです。
何を使うか選択する時に結構役立つのではないかと思い表にしてみました。
以下記述はAWSのものからほとんど変更していません。すみません、
表の方が自分はわかりやすいなと感じ、、、作成しました。
もう少し用語削ぎ落とす予定です、、#表
★特定のサービスにさらに絞り込む、AWS の同じタイプの各種サービスにおける主な違いは、その管理レベルとのことです。
★同じものには絵文字つけました!
★最終的に使用するサービスの箇所には『:red_circle:』を付けました!※サービス名ないものはサービス名見つけられなかったというものです。| カテゴリ | サービスのタイプ |管理レベル|設定方法の決定|詳細|
| —- | —- | —- | —- | —- |
| :ro
【AWS】1か月の勉強でクラウドプラクティショナー900点取った合格体験記
はじめに
この4月から2年目エンジニアになりましたshionです。
本日、AWSクラウドプラクティショナーを受験・合格したので
その勢いでこれまでに行った勉強を書いていきます。試験結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771526/f6e4ae9a-5e08-2fc0-ca2f-81b0d2563e79.png)
まさか9割行くと思っていなかったので大満足。受験前の状態
・昨年7月から実務についた未経験文系バックエンドエンジニア
└一年間どういうことをしていたかは[こちら](https://qiita.com/shion01/items/04ee0825251026f87ee7)
・インフラは苦手
└新卒研修で一番点が低かった分野…もちろん実務で関わったこともない
・AWSは軽く触ったことがあるが、体系的な知識は0
└先輩に言われるがまま、何もわからずパイプラインを実行していただけ
自分で何かを考
nginxにてアプリが表示されない
デプロイ準備も終わり、後はIPアドレスを入力して表示させて完了!という段階で、IPアドレスを入力したのですがウェルカムページが表示されました。
状況としてはrailsで作成アプリをnginxを使ってAWSにデプロイしようとしていました。![スクリーンショット 2021-05-21 18.11.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340120/fe6b9f0e-4a30-6a0e-963e-a0ef49475dbb.png)
nginxの設定など見返してみたのですが、特に問題なく…。
途方に暮れていた中で、スーパーリロード(command + shift + r)で解決するということを聞き、試してみると無事表示されました!かなり初歩的な内容となりますが、同じ現象で困っている方がいらっしゃれば一度試してみてはいかがでしょうか。
【AWS合格体験記】ソリューションアーキテクトプロフェショナル
## 概要
– AWSクラウドプラクティショナー
– AWS SAA
– AWS SAPの3つを取得するまで実施したこと、どんな内容について出題されるか(覚えている範囲)をまとめます。
## クラウドプラクティショナー (2020/12/12 取得)
### 試験概要
– 合格ライン 700点以上
– 時間90分
– 問題数65問### 勉強資料
– Udemy これだけでOK! AWS認定クラウドプラクティショナー試験突破講座(豊富な試験問題290問付き)[https://www.udemy.com/course/ok-aws-e/]
– 本 (AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー )![スクリーンショット 2021-05-22 16.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1260517/967bcfa0-d71c-ee58-5a17-9a25c1c14a38.png)
### 試験で問われる内容
– 主要なサービスの仕様(どうい
AWS SUMMIT ONLINE セキュリティ関連セッションまとめ
## 概要
[AWS SUMMIT ONLINE](https://summits-japan.virtual.awsevents.com/)のうち、セキュリティ関連セッションをまとめました。
(基本的には、資料からの抜粋ですが、サマリに関しては内容を変更しています)視聴前・視聴後のご参考になれば幸いです。
なお、[AWS Summit Online 2021 は 5/31 までオンデマンドで公開中](https://aws.amazon.com/jp/events/summits/online/japan/)です。
(各セッションの資料も DL 可です)
また、アンケートに回答することで 25 USD の AWS クレジットを獲得できます。お忘れなく。
## 内容
### 【基本の AWS サービス】ユーザーエクスペリエンスとセキュリティを最適化する AWS エッジネットワークサービス(AWS-33)
Link: [【基本の AWS サービス】ユーザーエクスペリエンスとセキュリティを最適化する AWS エッジネットワークサービス(AWS-33) – Summits
会社のITインフラをゼロから試行錯誤してみる(ドメイン取得とネームサーバー設定)
# Overview
– AWS Route53でドメイン取得
– とりあえずSESでメールアドレス確保して送受信環境構築# はじめに
具体的な構築はなるべくコマンドラインで記載していきます。
普段の業務ではGUIベースで構築することが多いので同じことをやりたくないだけで特に意味はありません。## 使用ツール
AWS CloudShellという超絶便利なサービスがあるので活用していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/902999/a6007f5f-15ab-3d74-28be-91d5cf3c3933.png)下記キャプチャーの右端のコンソールっぽいアイコン。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/902999/cdd23f48-c55a-b084-d841-b962a9a7f674.png)# 1.ドメイン取得
Route53でも取得可能ですが
【AWS】VPCもろもろ
## はじめに
こんにちは。rattsl(@rattsl)です。
今回はAWS VPCについてハンズオンで色々いじったのでメモとして残します。
またネットワークの基礎的な知識もないため、間違えて認識している部分があったらご指摘ください。## ネットワーク基礎
### IPアドレス
– 重複が許されない一意の32bit数値データのこと。
– ネットワーク機器やwebサイトを特定するために利用する。
– TCP/IPプロトコル通信でリクエストする。
– 利用範囲は`0.0.0.0 ~ 255.255.255.255`ネットワーク機器に直接IPアドレスが割り振られているのではなく、NIC(ネットワークインターフェースカード)に割り当てられ、ホストにアタッチされている。
IPアドレスの数値データは3桁(255)の10進数で表されているが、実際は2進数でコンピュータ側が解釈し32bitデータに置き換えられている。
| 10進法 | 2進法 | 32bit |
|:-:|:-:|:-:|
| 16 | 10000 | 00010000 |### IPアドレスの枯渇問題とIPv
AWS セキュリティ関連サービス概要
### AWS WAF
SQLインジェクションやクロスサイトスクリプティングから保護する### AWS Shield
DDoS攻撃から保護する### Amazon GuardDuty
悪意のあるアクティビティや不正なアクティビティから保護する