継続的ブログ

主にweb系の技術について書いています

Intellij IDEAでGolang(Windows)

環境

  • Windows(64bit)
  • Go 1.4.2
  • Intellij IDEA 14.1.2(Community Edition)
  • go-lang-idea-plugin 0.9.3

Goのインストール

Downloads - The Go Programming Language

  1. 「go1.4.2.windows-amd64.msi」をダウンロード
  2. インストール

msi環境変数の設定を自動でやってくれる。

  • GOROOT: C:\Go\
  • Path: ;C:\Go\bin

Intellij IDEAのインストール

IntelliJ IDEA :: Download Latest Version of IntelliJ IDEA

  1. 無料のCommunity Editionをダウンロード
  2. インストール

プラグインのインストール

以前はjarを落としてインストールしていたらしいが、最近廃止されたとのこと。
リポジトリを登録してインストールします。

  1. Intellij IDEAを起動
  2. Welcomeページ右下の「Configure」から、「Plugins」をクリック
  3. 「Browse repositories...」をクリック
  4. 「Manage repositories...」をクリック
  5. 「+」をクリックし、下記リポジトリを登録する(私はAlphaにしました)
  6. Browse Repositoriesページに戻り、『Go』というプラグインが追加されているので、検索等して見つける
  7. インストール
  8. Intellij IDEAの再起動

Alpha: https://plugins.jetbrains.com/plugins/alpha/list
Nightly: https://plugins.jetbrains.com/plugins/nightly/list

SDKの設定

  1. Intellij IDEAを起動
  2. Welcomeページ右下の「Configure」から、「Project Defaults」、「Project Structure」をクリック
  3. 「SDKs」をクリック
  4. 「+」をクリックし、「Go SDK」をクリック
  5. GOROOTのパス(デフォルトだとC:\GO)を選択
  6. 「OK」で保存

参考

基礎からわかる Go言語

基礎からわかる Go言語

AWS IAMポリシーについて

Managed PoliciesとInline Policiesの2種類がある。

Managed Policies

  • 複数のユーザ、グループ、ロールに付与することが出来る。
  • Managed Policesには、AWS Managed PoliciesとCustomer Managed Policiesの2種類がある。

AWS Managed Policies

  • AWS側で作成・管理されるポリシー。
  • 大まかなポリシーが予め定義されている。
  • 細かい設定をする必要がない場合は、楽。
  • 自分では変更できない。
  • AWSが管理しているため、自動でポリシーが更新されるので注意。

Customer Managed Policies

  • ユーザーが作成し、自由に設定できるポリシー。
  • 特定IPからのみ操作を受け付けるといった設定をする場合、AWS Managed Policiesは変更ができないため、こちらを利用する。

Inline Policies

  • 特定のIAMユーザ、IAMグループ、IAMロールに直接付与されるポリシー。
  • 基本的にManaged Policiesを利用するので、こちらを利用することはほとんどない。
  • Managed Policiesはそのポリシーを適用している全てのIAMユーザ、IAMグループ、IAMロールに影響するので、特定のユーザのみに権限を付与したい場合等は、利用する。
  • 乱用すると管理が難しくなるので注意。

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド

定数クラスを作る

Unity(C#)で定数クラスを作る際に、参考にしたサイトと学んだことをメモ。

学んだこと

  • 一つの巨大な定数クラスを作るのではなく、種類ごとにクラスを分ける
  • 特定の1クラスからしか使わないようなものは、そのクラスの定数にした方が疎結合になって良い(場合が多い)

どちらも基本的なことだけど、とても大事ですね。
実際、巨大な定数クラス、特定の1クラスからしか使わないようなものも定数クラスにまとめてるもの、どちらも見たことがあるので。

定数クラスは便利ですが、まとめることで定数クラスに依存してしまうので、適切に使っていきたいですね。

参考

GitHub Organizationの作り方

GitHubでOrganizationを作ることになったのだが、「個人アカウントから作ったら、個人アカウントが消えちゃうんじゃないの?」とか「Usernameに組織名入力して、会員登録すればいいの?」とか思ったのでメモ。

Organizationの作り方

まず、Organizationの作り方は2通りあります。

今回は前者の「新規に作成する」でやりました。
「既存のアカウントを変換する」は下記ページも参考にするといいかもしれません。

GitHub Organization アカウントを作った | プログラミング生放送

手順

  1. 個人アカウントでログイン
  2. 右上の「+」ボタンをクリック
  3. 「New organization」をクリック
  4. 項目入力

あとはチーム作ったり、メンバー招待したり。
デフォルトで「Owners」というチームが出来ていて、Organizationの作成者はこの「Owners」というチームに所属されます。
まあ、その名の通り管理者権限を持ったチームみたいな感じです。
みんなこの「Owners」に参加させても微妙なので、チームを作って、適切な権限を与えて、管理しましょう。

Permission levels for an organization repository - User Documentation

おまけ

  • 自分のアカウント名でOrganizationを作成して、自分のアカウントを残したままにしたい場合

下記ページの下の方。
結局自分のアカウント名を変更してから、作成するみたいです。

Creating a new organization account - User Documentation

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

EC2の初期設定

パッケージ更新

$ sudo yum update

rootパスワード設定

$ sudo passwd

日本語設定

$ sudo vi /etc/sysconfig/i18n

LANG="ja_JP.UTF-8

タイムゾーン設定

$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime

$ sudo vi /etc/sysconfig/clock

ZONE="Asia/Tokyo"
UTC=false

$ sudo reboot

ec2-userのパスワードを設定し、sudoでパスワード要求設定

$ sudo passwd ec2-user

$ sudo visudo -f /etc/sudoers.d/cloud-init

ec2-user ALL = (ALL) ALL

SSHの設定変更

$ sudo vi /etc/ssh/sshd_config

Port xxx

$ service sshd restart

Security GroupでPortでの接続を許可しておくこと。

AWSでVPC設定してみたメモ

AWSで構築する際、今までデフォルトVPCでやってたけど、どんなに小さなシステムでも、ちゃんとVPC作っとこうと思ったのでメモ。

構築手順

今回はEC2一つだけのVPCを作成します。
RDS使用する際は、「private subnet」を作って、基本EC2からのみアクセスできるようにした方が良いでしょう。
てか、近いうちその構成で作ることになると思うので、その時また。

作成を始める前に

ダッシュボードで忘れずにリージョンを選択しておきましょう。

VPCネットワークを作成する

  1. VPC Dashboardの「Your VPCs」をクリック
  2. 「Create VPC」をクリック
  3. 項目入力
  4. 「Yes, Create」をクリック
項目 説明 今回設定した値
Name tag 設定を識別するための名前 Test
CIDR block 10.0.0.0/16とか。(/28 〜 /16) 10.0.0.0/16
Tenancy Default, Dedicated Default

Tenancyの「Dedicated」は、EC2インスタンスを起動するホストサーバを指定(占有)できるらしい。 ホストサーバを他システムと共有することが許されない場合に使用するとのこと。ちなみに利用料は割高になります。

Subnetを作成する

  1. VPC Dashboardの「Subnets」をクリック
  2. 「Create Subnet」をクリック
  3. 項目入力
  4. 「Yes, Create」をクリック
項目 説明 今回設定した値
Name tag 設定を識別するための名前 Test_Subnet
VPC Subnetを作成するVPC Test
Availability Zone Subnetを作成するAZ ap-northeast-1a
CIDR block Subnetに割り当てるネットワークの範囲 10.0.0.0/24

Internet Gatewayを作成する

  1. VPC Dashboardの「Internet Gateways」をクリック
  2. 「Create Internet Gateway」をクリック
  3. 「Name tag」に適当な名前を入力
  4. 「Yes, Create」をクリック
  5. 「Attach to VPC」をクリック
  6. 紐付けたいVPCのIDを選択
  7. 「Yes, Attach」をクリック

Route Tableを作成する

  1. VPC Dashboardの「Route Tables」をクリック
  2. 「Create Route Table」をクリック
  3. 項目入力
  4. 「Yes, Create」をクリック
項目 説明 今回設定した値
Name tag 設定を識別するための名前 Test_RouteTable
VPC Route Tableを作成するVPCのID Test

Internet Gatewayをルーティング先に指定する

  1. VPC Dashboardの「Route Tables」をクリック
  2. Route Tableの一覧から今回作成したRoute Tableを選択
  3. 下部の詳細から、Routesタブを選択
  4. 「Edit」をクリック
  5. 「Add another route」をクリック
  6. 各項目を入力し、「save」をクリック
Destination Target
0.0.0.0/0 作成したInternet Gateway

Security Groupを作成する

  1. EC2 Dashboardの「Security Groups」をクリック
  2. 「Create Security Group」をクリック
  3. 項目入力
  4. Security Group rulesを設定
項目 今回設定した値
Security group name Test_SecurityGroup
Description Test_SecurityGroup
VPC Test

Security GroupはVPCごとに作成する。

EC2の作成

  1. EC2 Dashboardの「Instances」をクリック
  2. 「Lanuch Instance」をクリック
  3. 各項目設定

今回変わるのは詳細設定Security Groupのところです。

  • 詳細設定
項目 今回設定した値
Network Test
Subnet Test_Subnet

Subnetを指定した場合、EC2インスタンスのプライベートIPを指定することができます。
詳細設定の下部に「Network Interfaces」という項目が出現するので、Primary IPに割り当てたいアドレスを入力します。 何も入力しなければ、Subnet内の空いているIPアドレスが自動で割り当てられるので、今回は空欄にしました。
あと、Elastic IPを利用するので、「Auto-assign Public IP」は設定していません。

  • Security Group
    先程作成しておいたSecurity Groupを選択

参考

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド